diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-03 11:01:02 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-03 11:01:02 +0100 |
commit | fcaf3de39b725ece9d57e3c764bf0fae36206d5d (patch) | |
tree | 4f424b7a35507da40263211a8e0aa476a6d3dc52 /vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java | |
parent | 869e9e83274e037cae548ac5eb3c72881e90859a (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.java | 23 |
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 |