diff options
author | Lester Solbakken <lesters@oath.com> | 2021-04-16 11:05:42 +0200 |
---|---|---|
committer | Lester Solbakken <lesters@oath.com> | 2021-04-16 11:05:42 +0200 |
commit | 1ace3a92c4166064976e81f5852509cb77617ef5 (patch) | |
tree | 5d22eb0fe082fbd5ed94c550f0de3d92b48748d9 | |
parent | 3aef0ca8a0ffa0423b0e2299e5fa139770d21793 (diff) |
Fix max reduce of negative numbers in a tensor
-rw-r--r-- | searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java | 1 | ||||
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java | 8 |
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; } } |