diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-08 14:33:17 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-08 14:33:17 +0100 |
commit | df287b9364b8088192146df70f5f4814ff6c94c1 (patch) | |
tree | 8ee439c76b6640ce22f121790d10895dd8bdf30c /vespajlib/src/main/java/com/yahoo/tensor/DimensionSizes.java | |
parent | 5ccaab5e304bbedc2589610f12ea9fc83d1522ab (diff) |
Always serialize dynamic tensors in verbose form
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/DimensionSizes.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/DimensionSizes.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/DimensionSizes.java b/vespajlib/src/main/java/com/yahoo/tensor/DimensionSizes.java index c0d817459d0..d81c02fb75f 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/DimensionSizes.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/DimensionSizes.java @@ -18,6 +18,21 @@ public final class DimensionSizes { } /** + * Create sizes from a type containing bound indexed dimensions only. + * + * @throws IllegalStateException if the type contains dimensions which are not bound and indexed + */ + public static DimensionSizes of(TensorType type) { + Builder b = new Builder(type.rank()); + for (int i = 0; i < type.rank(); i++) { + if ( type.dimensions().get(i).type() != TensorType.Dimension.Type.indexedBound) + throw new IllegalArgumentException(type + " contains dimensions without a size"); + b.set(i, type.dimensions().get(i).size().get()); + } + return b.build(); + } + + /** * Returns the length of this in the nth dimension * * @throws IllegalArgumentException if the index is larger than the number of dimensions in this tensor minus one |