diff options
author | Lester Solbakken <lesters@yahoo-inc.com> | 2017-11-14 12:40:22 +0100 |
---|---|---|
committer | Lester Solbakken <lesters@yahoo-inc.com> | 2017-11-14 12:40:22 +0100 |
commit | fe52b637bde1e2e1b11b6158666f9002e1c3cd0a (patch) | |
tree | a1b42074993cdd48aa102dc01d02ef392cbd563f /searchlib | |
parent | 58357a693f9ff78477e1d1a99ecbfad59a331420 (diff) |
Fix 'Cannot combine two tensors using ldexp'
Also, make 'ldexp' in Java comparable to C++, as the library call in
C++ does an implicit cast to int.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/TensorValue.java | 1 | ||||
-rw-r--r-- | searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java | 2 |
2 files changed, 2 insertions, 1 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 935aadc4559..45988ef0776 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 @@ -123,6 +123,7 @@ public class TensorValue extends Value { case atan2: return value.atan2(argument); case pow: return value.pow(argument); case fmod: return value.fmod(argument); + case ldexp: return value.ldexp(argument); default: throw new UnsupportedOperationException("Cannot combine two tensors using " + function); } } diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java index fc4a511b307..c3c1c371a68 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/Function.java @@ -39,7 +39,7 @@ public enum Function implements Serializable { atan2(2) { public double evaluate(double x, double y) { return atan2(x,y); } }, fmod(2) { public double evaluate(double x, double y) { return x % y; } }, - ldexp(2) { public double evaluate(double x, double y) { return x*pow(2,y); } }, + ldexp(2) { public double evaluate(double x, double y) { return x*pow(2,(int)y); } }, max(2) { public double evaluate(double x, double y) { return max(x,y); } }, min(2) { public double evaluate(double x, double y) { return min(x,y); } }, pow(2) { public double evaluate(double x, double y) { return pow(x,y); } }; |