summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-01-03 11:01:02 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-01-03 11:01:02 +0100
commitfcaf3de39b725ece9d57e3c764bf0fae36206d5d (patch)
tree4f424b7a35507da40263211a8e0aa476a6d3dc52 /vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
parent869e9e83274e037cae548ac5eb3c72881e90859a (diff)
More tensor short forms in Tensor.toString()
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
index ba3a35e8eda..985dbd11bcb 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
@@ -209,12 +209,18 @@ public abstract class IndexedTensor implements Tensor {
@Override
public String toString() {
if (type.rank() == 0) return Tensor.toStandardString(this);
- if (type.dimensions().stream().anyMatch(d -> d.size().isEmpty())) return Tensor.toStandardString(this);
+ if (type.dimensions().stream().anyMatch(d -> d.size().isEmpty()))
+ return Tensor.toStandardString(this);
Indexes indexes = Indexes.of(dimensionSizes);
StringBuilder b = new StringBuilder(type.toString()).append(":");
- for (int index = 0; index < size(); index++) {
+ indexedBlockToString(this, indexes, b);
+ return b.toString();
+ }
+
+ static void indexedBlockToString(IndexedTensor tensor, Indexes indexes, StringBuilder b) {
+ for (int index = 0; index < tensor.size(); index++) {
indexes.next();
// start brackets
@@ -222,20 +228,19 @@ public abstract class IndexedTensor implements Tensor {
b.append("[");
// value
- if (type.valueType() == TensorType.Value.DOUBLE)
- b.append(get(index));
- else if (type.valueType() == TensorType.Value.FLOAT)
- b.append(get(index)); // TODO: Use getFloat
+ if (tensor.type().valueType() == TensorType.Value.DOUBLE)
+ b.append(tensor.get(index));
+ else if (tensor.type().valueType() == TensorType.Value.FLOAT)
+ b.append(tensor.getFloat(index));
else
- throw new IllegalStateException("Unexpected value type " + type.valueType());
+ throw new IllegalStateException("Unexpected value type " + tensor.type().valueType());
// end bracket and comma
for (int i = 0; i < indexes.nextDimensionsAtEnd(); i++)
b.append("]");
- if (index < size() - 1)
+ if (index < tensor.size() - 1)
b.append(", ");
}
- return b.toString();
}
@Override