diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-01-28 19:28:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-28 19:28:42 +0100 |
commit | 6992a234c6e474dbe95e446bd1cdc50bdb452414 (patch) | |
tree | 17abc9faf9e43147ee195b0dbe9259eb361b3a6d /vespajlib/src/main/java/com/yahoo/tensor/DirectIndexedAddress.java | |
parent | 140ed00756d8b45ee622fdd61d2df91dd133133a (diff) | |
parent | c824e1209fdd979612ccead027889eb6294b4652 (diff) |
Merge pull request #30084 from vespa-engine/bratseth/tensor-cleanupv8.294.50
Minor cleanup
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/DirectIndexedAddress.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/DirectIndexedAddress.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/DirectIndexedAddress.java b/vespajlib/src/main/java/com/yahoo/tensor/DirectIndexedAddress.java index 37752361876..4379d50520c 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/DirectIndexedAddress.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/DirectIndexedAddress.java @@ -7,19 +7,25 @@ package com.yahoo.tensor; * long stride = addr.getStride(dimension) * i = 0...size_of_dimension * double value = tensor.get(base + i * stride); + * + * @author baldersheim */ public final class DirectIndexedAddress { + private final DimensionSizes sizes; - private final int [] indexes; + private final int[] indexes; private long directIndex; + private DirectIndexedAddress(DimensionSizes sizes) { this.sizes = sizes; indexes = new int[sizes.dimensions()]; directIndex = 0; } + static DirectIndexedAddress of(DimensionSizes sizes) { return new DirectIndexedAddress(sizes); } + /** Sets the current index of a dimension */ public void setIndex(int dimension, int index) { if (index < 0 || index >= sizes.size(dimension)) { @@ -29,10 +35,13 @@ public final class DirectIndexedAddress { directIndex += getStride(dimension) * diff; indexes[dimension] = index; } + /** Retrieve the index that can be used for direct lookup in an indexed tensor. */ public long getDirectIndex() { return directIndex; } + /** returns the stride to be used for the given dimension */ public long getStride(int dimension) { return sizes.productOfDimensionsAfter(dimension); } + } |