summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLester Solbakken <lesters@yahoo-inc.com>2017-11-14 11:25:07 +0100
committerLester Solbakken <lesters@yahoo-inc.com>2017-11-14 11:25:07 +0100
commit58357a693f9ff78477e1d1a99ecbfad59a331420 (patch)
tree144fc10fd849ca2b4eb1bc03ad5ecbb4fe865690
parent21192547ac52e1ed45dffdd50ec99e02c04ac8cd (diff)
Fix 'Cannot combine two tensors using fmod'
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/TensorValue.java1
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/Tensor.java1
2 files changed, 2 insertions, 0 deletions
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 42bf7b75141..935aadc4559 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
@@ -122,6 +122,7 @@ public class TensorValue extends Value {
case max: return value.max(argument);
case atan2: return value.atan2(argument);
case pow: return value.pow(argument);
+ case fmod: return value.fmod(argument);
default: throw new UnsupportedOperationException("Cannot combine two tensors using " + function);
}
}
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
index cb9ed1f5eb8..bdf976819bb 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
@@ -172,6 +172,7 @@ public interface Tensor {
default Tensor min(Tensor argument) { return join(argument, (a, b) -> (a < b ? a : b )); }
default Tensor atan2(Tensor argument) { return join(argument, Math::atan2); }
default Tensor pow(Tensor argument) { return join(argument, Math::pow); }
+ default Tensor fmod(Tensor argument) { return join(argument, (a, b) -> ( a % b )); }
default Tensor larger(Tensor argument) { return join(argument, (a, b) -> ( a > b ? 1.0 : 0.0)); }
default Tensor largerOrEqual(Tensor argument) { return join(argument, (a, b) -> ( a >= b ? 1.0 : 0.0)); }
default Tensor smaller(Tensor argument) { return join(argument, (a, b) -> ( a < b ? 1.0 : 0.0)); }