summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLester Solbakken <lesters@oath.com>2021-04-16 11:05:42 +0200
committerLester Solbakken <lesters@oath.com>2021-04-16 11:05:42 +0200
commit1ace3a92c4166064976e81f5852509cb77617ef5 (patch)
tree5d22eb0fe082fbd5ed94c550f0de3d92b48748d9
parent3aef0ca8a0ffa0423b0e2299e5fa139770d21793 (diff)
Fix max reduce of negative numbers in a tensor
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java1
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java8
2 files changed, 5 insertions, 4 deletions
diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java
index bf6a72c5028..05719838f0f 100644
--- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java
+++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java
@@ -234,6 +234,7 @@ public class EvaluationTestCase {
"sum(tensor0, y)", "{ {x:0,y:0}:1.0, {x:1,y:0}:3.0, {x:0,y:1}:5.0, {x:1,y:1}:7.0 }");
tester.assertEvaluates("{ {}:16 }",
"sum(tensor0, x, y)", "{ {x:0,y:0}:1.0, {x:1,y:0}:3.0, {x:0,y:1}:5.0, {x:1,y:1}:7.0 }");
+ tester.assertEvaluates("{ {}: -1 }", "reduce(tensor0, max)", "tensor(x[2]):[-2,-1]");
// tensor join
tester.assertEvaluates("{ {x:0,y:0}:15, {x:1,y:0}:35 }", "join(tensor0, tensor1, f(x,y) (x*y))", "{ {x:0}:3, {x:1}:7 }", "{ {y:0}:5 }");
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java
index 263bb6c9025..86f23487efb 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java
@@ -236,7 +236,7 @@ public class Reduce<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMET
private static class MaxAggregator extends ValueAggregator {
- private double maxValue = Double.MIN_VALUE;
+ private double maxValue = Double.NEGATIVE_INFINITY;
@Override
public void aggregate(double value) {
@@ -251,7 +251,7 @@ public class Reduce<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMET
@Override
public void reset() {
- maxValue = Double.MIN_VALUE;
+ maxValue = Double.NEGATIVE_INFINITY;
}
}
@@ -290,7 +290,7 @@ public class Reduce<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMET
private static class MinAggregator extends ValueAggregator {
- private double minValue = Double.MAX_VALUE;
+ private double minValue = Double.POSITIVE_INFINITY;
@Override
public void aggregate(double value) {
@@ -305,7 +305,7 @@ public class Reduce<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMET
@Override
public void reset() {
- minValue = Double.MAX_VALUE;
+ minValue = Double.POSITIVE_INFINITY;
}
}