diff options
author | Arne Juul <arnej@yahooinc.com> | 2023-03-17 10:33:18 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2023-03-17 13:43:26 +0000 |
commit | efb6f7921c239a3c48eaf472189ae4e058e231b9 (patch) | |
tree | aa34acb395e18f450f675c5b3b1d39a63ed7e8d9 /vespajlib | |
parent | 09c6802922df60c9ddea8fbe044006f2c645a9c7 (diff) |
expose embedded expressions from DynamicTensor
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/abi-spec.json | 1 | ||||
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/functions/DynamicTensor.java | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/vespajlib/abi-spec.json b/vespajlib/abi-spec.json index 011e7e4a31d..e45b13a6eb0 100644 --- a/vespajlib/abi-spec.json +++ b/vespajlib/abi-spec.json @@ -1730,6 +1730,7 @@ "methods" : [ "public com.yahoo.tensor.TensorType type(com.yahoo.tensor.evaluation.TypeContext)", "public java.util.List arguments()", + "public abstract java.util.List cellGeneratorFunctions()", "public com.yahoo.tensor.functions.TensorFunction withArguments(java.util.List)", "public com.yahoo.tensor.functions.PrimitiveTensorFunction toPrimitive()", "public java.lang.String toString(com.yahoo.tensor.functions.ToStringContext)", diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/DynamicTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/DynamicTensor.java index 558b01baa02..61d3acf6338 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/functions/DynamicTensor.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/DynamicTensor.java @@ -10,6 +10,7 @@ import com.yahoo.tensor.evaluation.EvaluationContext; import com.yahoo.tensor.evaluation.Name; import com.yahoo.tensor.evaluation.TypeContext; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -33,6 +34,8 @@ public abstract class DynamicTensor<NAMETYPE extends Name> extends PrimitiveTens @Override public List<TensorFunction<NAMETYPE>> arguments() { return List.of(); } + public abstract List<TensorFunction<NAMETYPE>> cellGeneratorFunctions(); + @Override public TensorFunction<NAMETYPE> withArguments(List<TensorFunction<NAMETYPE>> arguments) { if (arguments.size() != 0) @@ -71,6 +74,14 @@ public abstract class DynamicTensor<NAMETYPE extends Name> extends PrimitiveTens this.cells = ImmutableMap.copyOf(cells); } + public List<TensorFunction<NAMETYPE>> cellGeneratorFunctions() { + var result = new ArrayList<TensorFunction<NAMETYPE>>(); + for (var fun : cells.values()) { + fun.asTensorFunction().ifPresent(tf -> result.add(tf)); + } + return result; + } + @Override public Tensor evaluate(EvaluationContext<NAMETYPE> context) { Tensor.Builder builder = Tensor.Builder.of(type()); @@ -115,6 +126,14 @@ public abstract class DynamicTensor<NAMETYPE extends Name> extends PrimitiveTens this.cells = List.copyOf(cells); } + public List<TensorFunction<NAMETYPE>> cellGeneratorFunctions() { + var result = new ArrayList<TensorFunction<NAMETYPE>>(); + for (var fun : cells) { + fun.asTensorFunction().ifPresent(tf -> result.add(tf)); + } + return result; + } + @Override public Tensor evaluate(EvaluationContext<NAMETYPE> context) { IndexedTensor.BoundBuilder builder = (IndexedTensor.BoundBuilder)Tensor.Builder.of(type()); |