summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
diff options
context:
space:
mode:
authorLester Solbakken <lesters@oath.com>2019-02-20 14:30:31 +0100
committerLester Solbakken <lesters@oath.com>2019-02-20 14:30:31 +0100
commitc85a3fee56c13f82d14d480e7569432e1f352316 (patch)
tree1ba19b8b498a7c4e0004939a8139fcfbd8d75875 /vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
parent085b6922c07f4626c61e2ed2e6dde6beec0855de (diff)
TensorRemoveUpdate support for mixed tensors
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
index f44b3ce13b7..22ceed22d3e 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
@@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
import java.util.function.DoubleBinaryOperator;
/**
@@ -71,6 +72,19 @@ public class MappedTensor implements Tensor {
}
@Override
+ public Tensor remove(Set<TensorAddress> addresses) {
+ Tensor.Builder builder = Tensor.Builder.of(type());
+ for (Iterator<Tensor.Cell> i = cellIterator(); i.hasNext(); ) {
+ Tensor.Cell cell = i.next();
+ TensorAddress address = cell.getKey();
+ if ( ! addresses.contains(address)) {
+ builder.cell(address, cell.getValue());
+ }
+ }
+ return builder.build();
+ }
+
+ @Override
public int hashCode() { return cells.hashCode(); }
@Override