diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-13 14:38:24 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-13 14:38:24 +0100 |
commit | fdcf0682eb4ed0471431adaf4a6be70628b9c84d (patch) | |
tree | 929006dbc7398704f1ee496c3e9df020ef23c21d /vespajlib | |
parent | 7fad0f3d7b5dcd171655d101c05cf51f758bfc83 (diff) |
Convert tensor update to sparse
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/abi-spec.json | 1 | ||||
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java | 6 | ||||
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/tensor/Tensor.java | 7 |
3 files changed, 10 insertions, 4 deletions
diff --git a/vespajlib/abi-spec.json b/vespajlib/abi-spec.json index f631b3e1c58..66eb4b1f4e6 100644 --- a/vespajlib/abi-spec.json +++ b/vespajlib/abi-spec.json @@ -1107,6 +1107,7 @@ "public varargs abstract com.yahoo.tensor.Tensor$Builder cell(float, long[])", "public com.yahoo.tensor.Tensor$Builder cell(com.yahoo.tensor.Tensor$Cell, double)", "public com.yahoo.tensor.Tensor$Builder cell(com.yahoo.tensor.Tensor$Cell, float)", + "public com.yahoo.tensor.Tensor$Builder cell(com.yahoo.tensor.Tensor$Cell)", "public abstract com.yahoo.tensor.Tensor build()" ], "fields": [] diff --git a/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java index 67c6930ce35..2b393d8a637 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/MixedTensor.java @@ -253,8 +253,12 @@ public class MixedTensor implements Tensor { } public Tensor.Builder block(TensorAddress sparsePart, double[] values) { + int denseSubspaceSize = (int)denseSubspaceSize(); + if (values.length < denseSubspaceSize) + throw new IllegalArgumentException("Block should have " + denseSubspaceSize + + " values, but has only " + values.length); double[] denseSubspace = denseSubspace(sparsePart); - System.arraycopy(values, 0, denseSubspace, 0, (int)denseSubspaceSize()); + System.arraycopy(values, 0, denseSubspace, 0, denseSubspaceSize); return this; } diff --git a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java index 08d4f1c08b7..71bdee36c27 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java @@ -516,9 +516,10 @@ public interface Tensor { default Builder cell(Cell cell, double value) { return cell(cell.getKey(), value); } - default Builder cell(Cell cell, float value) { - return cell(cell.getKey(), value); - } + default Builder cell(Cell cell, float value) { return cell(cell.getKey(), value); } + + /** Adds the given cell to this tensor */ + default Builder cell(Cell cell) { return cell(cell.getKey(), cell.getValue()); } Tensor build(); |