diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-27 16:51:25 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-27 16:51:25 +0200 |
commit | b8552a194770a887c27ae09924013f1dd5872aab (patch) | |
tree | bd53f718b295f49abedb8e7a757fbdc2f5779eb2 /vespajlib | |
parent | 77bb8f5117b7a0f78b2dc99a3937430339e4291d (diff) |
Prefix index variables by %
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java index aaed607aaa1..d3a2dc9169c 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Generate.java @@ -145,17 +145,15 @@ public class Generate<NAMETYPE extends TypeContext.Name> extends PrimitiveTenso @Override public Tensor getTensor(String name) { - Optional<Integer> index = type.indexOfDimension(name); - if (index.isPresent()) // this is the name of a dimension - return Tensor.from(indexes.indexesForReading()[index.get()]); + if (name.startsWith("%")) // this is the name of a dimension + return Tensor.from(indexes.indexesForReading()[dimensionIndexFrom(name)]); else return context.getTensor(name); } @Override public TensorType getType(NAMETYPE name) { - Optional<Integer> index = type.indexOfDimension(name.name()); - if (index.isPresent()) // this is the name of a dimension + if (name.name().startsWith("%")) // this is the name of a dimension return TensorType.empty; else return context.getType(name); @@ -163,13 +161,18 @@ public class Generate<NAMETYPE extends TypeContext.Name> extends PrimitiveTenso @Override public TensorType getType(String name) { - Optional<Integer> index = type.indexOfDimension(name); - if (index.isPresent()) // this is the name of a dimension + if (name.startsWith("%")) // this is the name of a dimension return TensorType.empty; else return context.getType(name); } + private int dimensionIndexFrom(String nameWithPercentage) { + String name = nameWithPercentage.substring(1); + return type.indexOfDimension(name) + .orElseThrow(() -> new IllegalArgumentException("No dimension '" + name + "' in " + type)); + } + } } |