diff options
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/impl/TensorAddressAny3.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/impl/TensorAddressAny3.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/impl/TensorAddressAny3.java b/vespajlib/src/main/java/com/yahoo/tensor/impl/TensorAddressAny3.java index c22ff47b3c4..998a6a073fe 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/impl/TensorAddressAny3.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/impl/TensorAddressAny3.java @@ -13,9 +13,9 @@ import static java.lang.Math.abs; */ final class TensorAddressAny3 extends TensorAddressAny { - private final int label0, label1, label2; + private final long label0, label1, label2; - TensorAddressAny3(int label0, int label1, int label2) { + TensorAddressAny3(long label0, long label1, long label2) { this.label0 = label0; this.label1 = label1; this.label2 = label2; @@ -36,18 +36,19 @@ final class TensorAddressAny3 extends TensorAddressAny { @Override public TensorAddress withLabel(int labelIndex, long label) { return switch (labelIndex) { - case 0 -> new TensorAddressAny3(Convert.safe2Int(label), label1, label2); - case 1 -> new TensorAddressAny3(label0, Convert.safe2Int(label), label2); - case 2 -> new TensorAddressAny3(label0, label1, Convert.safe2Int(label)); + case 0 -> new TensorAddressAny3(label, label1, label2); + case 1 -> new TensorAddressAny3(label0, label, label2); + case 2 -> new TensorAddressAny3(label0, label1, label); default -> throw new IllegalArgumentException("No label " + labelIndex); }; } @Override public int hashCode() { - return abs(label0) | - (abs(label1) << (1*32 - Integer.numberOfLeadingZeros(abs(label0)))) | - (abs(label2) << (2*32 - (Integer.numberOfLeadingZeros(abs(label0)) + Integer.numberOfLeadingZeros(abs(label1))))); + long hash = abs(label0) | + (abs(label1) << (1*64 - Long.numberOfLeadingZeros(abs(label0)))) | + (abs(label2) << (2*64 - (Long.numberOfLeadingZeros(abs(label0)) + Long.numberOfLeadingZeros(abs(label1))))); + return (int) hash; } @Override |