diff options
author | Jon Bratseth <bratseth@oath.com> | 2020-01-06 10:25:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-06 10:25:30 +0100 |
commit | b95af9b717705fff28272a1ea5e0adcf97597402 (patch) | |
tree | 254fe25f613fa3727cce888e03ffcd48bbc8ab93 /vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java | |
parent | 234be16d4d01656ee7b9bdc0917d31bef9772f69 (diff) | |
parent | f9f76ab6dc479dfbbaa2b7520cdb0d163be9b7dd (diff) |
Merge pull request #11637 from vespa-engine/bratseth/tensor-short-form-tostring
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 b255f18cdd4..ad82dd6c3ac 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java @@ -204,12 +204,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 @@ -217,20 +223,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 |