diff options
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/functions/DynamicTensor.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/functions/DynamicTensor.java | 19 |
1 files changed, 19 insertions, 0 deletions
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()); |