summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorLester Solbakken <lesters@oath.com>2021-05-03 09:30:29 +0200
committerLester Solbakken <lesters@oath.com>2021-05-03 09:30:29 +0200
commitf39354394d5839f7ab0af90225ab82de92f79f2e (patch)
tree47052d8b500aefb0e528c24350c58f9c880078de /vespajlib
parentecdb31279ac8df4abfa4a568b3cd9c263f06adb8 (diff)
Return 0.0 rather than nan for non-existing tensor cells in Java
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java4
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java2
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java4
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/Tensor.java2
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java7
5 files changed, 7 insertions, 12 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
index 67eace78c45..24578f035a3 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
@@ -106,7 +106,7 @@ public abstract class IndexedTensor implements Tensor {
return getFloat((int)toValueIndex(indexes, dimensionSizes));
}
- /** Returns the value at this address, or NaN if there is no value at this address */
+ /** Returns the value at this address, or 0.0 if there is no value at this address */
@Override
public double get(TensorAddress address) {
// optimize for fast lookup within bounds:
@@ -114,7 +114,7 @@ public abstract class IndexedTensor implements Tensor {
return get((int)toValueIndex(address, dimensionSizes, type));
}
catch (IllegalArgumentException e) {
- return Double.NaN;
+ return 0.0;
}
}
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
index 9d04e10bacb..996fad8a19d 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
@@ -32,7 +32,7 @@ public class MappedTensor implements Tensor {
public long size() { return cells.size(); }
@Override
- public double get(TensorAddress address) { return cells.getOrDefault(address, Double.NaN); }
+ public double get(TensorAddress address) { return cells.getOrDefault(address, 0.0); }
@Override
public boolean has(TensorAddress address) { return cells.containsKey(address); }
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java
index e686a42d530..6307acb88b4 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java
@@ -54,10 +54,10 @@ public class MixedTensor implements Tensor {
public double get(TensorAddress address) {
long cellIndex = index.indexOf(address);
if (cellIndex < 0 || cellIndex >= cells.size())
- return Double.NaN;
+ return 0.0;
Cell cell = cells.get((int)cellIndex);
if ( ! address.equals(cell.getKey()))
- return Double.NaN;
+ return 0.0;
return cell.getValue();
}
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
index 8d014edd68f..4f0a08ac202 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
@@ -67,7 +67,7 @@ public interface Tensor {
/** Returns the number of cells in this */
long size();
- /** Returns the value of a cell, or NaN if this cell does not exist/have no value */
+ /** Returns the value of a cell, or 0.0 if this cell does not exist */
double get(TensorAddress address);
/** Returns true if this cell exists */
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java b/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
index da24aef50bc..343cec7fe84 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/functions/Slice.java
@@ -64,12 +64,7 @@ public class Slice<NAMETYPE extends Name> extends PrimitiveTensorFunction<NAMETY
PartialAddress subspaceAddress = subspaceToAddress(tensor.type(), context);
if (resultType.rank() == 0) { // shortcut common case
- var key = subspaceAddress.asAddress(tensor.type());
- if (tensor.has(key)) {
- return Tensor.from(tensor.get(key));
- } else {
- return Tensor.from(0.0);
- }
+ return Tensor.from(tensor.get(subspaceAddress.asAddress(tensor.type())));
}
Tensor.Builder b = Tensor.Builder.of(resultType);