aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-02-07 11:36:29 +0100
committerJon Bratseth <bratseth@oath.com>2018-02-07 11:36:29 +0100
commit7a93c547d5ace99b5099900cd72ee4c3d039fddd (patch)
tree23048a709993d7149d736871b3d7b4f96497f0f1
parent7793bb9696fb1248ec03eed5ee7b3f5372404a5b (diff)
Switch between number and tensor treatment based on type().rank
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java2
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/TensorValue.java2
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java4
3 files changed, 4 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java
index 6b9d6c3e3ac..843248961c2 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/ConstantTensorTransformer.java
@@ -52,7 +52,7 @@ public class ConstantTensorTransformer extends ExpressionTransformer<RankProfile
private ExpressionNode transformConstantReference(ReferenceNode node, RankProfileTransformContext context) {
Value value = context.constants().get(node.getName());
- if (value == null || !(value instanceof TensorValue)) {
+ if (value == null || value.type().rank() == 0) {
return node;
}
TensorValue tensorValue = (TensorValue)value;
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/TensorValue.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/TensorValue.java
index c6e456f285d..ee66dcc5a03 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/TensorValue.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/TensorValue.java
@@ -26,7 +26,7 @@ public class TensorValue extends Value {
}
@Override
- public TensorType type() { return TensorType.empty; }
+ public TensorType type() { return value.type(); }
@Override
public double asDouble() {
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java
index 9cd4f4dced9..06d5ad187d8 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/transform/ConstantDereferencer.java
@@ -45,8 +45,8 @@ public class ConstantDereferencer extends ExpressionTransformer<TransformContext
private ExpressionNode transformConstantReference(ReferenceNode node, TransformContext context) {
Value value = context.constants().get(node.getName());
- if (value == null || (value instanceof TensorValue)) {
- return node; // not a value constant reference
+ if (value == null || value.type().rank() > 0) {
+ return node; // not a number constant reference
}
return new ConstantNode(value.freeze());
}