summaryrefslogtreecommitdiffstats
path: root/eval/src
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-12-03 11:21:09 +0000
committerArne Juul <arnej@verizonmedia.com>2020-12-03 11:23:26 +0000
commit913f34b83a52ae90a6b88fcb1b7ad7acf8402731 (patch)
tree857247b38131d80ac8f28aff8fa844a6cd3a5de4 /eval/src
parent055dbdc3cbc9fcfb0e95246953f356835caa6fb6 (diff)
be a Value directly
* move to vespalib::eval namespace * do not inherit via DenseTensorView
Diffstat (limited to 'eval/src')
-rw-r--r--eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.cpp11
-rw-r--r--eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.h22
2 files changed, 17 insertions, 16 deletions
diff --git a/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.cpp b/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.cpp
index ae3e8ad9023..913a386418b 100644
--- a/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.cpp
+++ b/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.cpp
@@ -2,14 +2,13 @@
#include "mutable_dense_tensor_view.h"
-using vespalib::eval::ValueType;
+namespace vespalib::eval {
-namespace vespalib::tensor {
-
-MutableDenseTensorView::MutableDenseTensorView(ValueType type_in)
- : DenseTensorView(_type),
- _type(type_in)
+MutableDenseTensorView::MutableDenseTensorView(const ValueType &type_in)
+ : _type(type_in),
+ _cells()
{
+ assert(_type.is_dense());
}
}
diff --git a/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.h b/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.h
index 5e4a48462d7..f7efd651ab4 100644
--- a/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.h
+++ b/eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.h
@@ -2,25 +2,27 @@
#pragma once
-#include "dense_tensor_view.h"
+#include <vespa/eval/eval/value.h>
#include <cassert>
-namespace vespalib::tensor {
+namespace vespalib::eval {
/**
- * A mutable view to a dense tensor where all dimensions are indexed.
+ * A dense tensor with a cells reference that can be modified.
*/
-class MutableDenseTensorView : public DenseTensorView
-{
+class MutableDenseTensorView : public Value {
private:
- eval::ValueType _type;
-
+ const ValueType _type;
+ TypedCells _cells;
public:
- MutableDenseTensorView(eval::ValueType type_in);
- MutableDenseTensorView(MutableDenseTensorView &&) = default;
+ MutableDenseTensorView(const ValueType &type_in);
void setCells(TypedCells cells_in) {
- initCellsRef(cells_in);
+ _cells = cells_in;
}
+ const ValueType &type() const final override { return _type; }
+ TypedCells cells() const final override { return _cells; }
+ const Index &index() const final override { return TrivialIndex::get(); }
+ MemoryUsage get_memory_usage() const final override { return self_memory_usage<MutableDenseTensorView>(); }
};
}