summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/tensor
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-03-16 11:00:36 +0000
committerArne Juul <arnej@yahooinc.com>2023-03-16 11:05:35 +0000
commitd883fa1f9fff36baf7231e6e9f8958017a705657 (patch)
treea99d74c943de8eb2d0b6c47746e39b612aa4c5c6 /vespajlib/src/main/java/com/yahoo/tensor
parent9ec2f1a8888610e961ba4c6894abb096a8373850 (diff)
* make InputRecorder handle slice with embedded expressions
* special handling for Generate and Slice in BindingExtractor
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
index a9a6df6ed4d..87e24306031 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
@@ -11,6 +11,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.Iterator;
import java.util.List;
import java.util.Objects;
@@ -47,6 +48,14 @@ public class Slice<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMETY
@Override
public List<TensorFunction<NAMETYPE>> arguments() { return List.of(argument); }
+ public List<TensorFunction<NAMETYPE>> selectorFunctions() {
+ var result = new ArrayList<TensorFunction<NAMETYPE>>();
+ for (var dimVal : subspaceAddress) {
+ dimVal.index().ifPresent(fun -> fun.asTensorFunction().ifPresent(tf -> result.add(tf)));
+ }
+ return result;
+ }
+
@Override
public Slice<NAMETYPE> withArguments(List<TensorFunction<NAMETYPE>> arguments) {
if (arguments.size() != 1)