summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2020-12-03 19:06:59 +0100
committerGitHub <noreply@github.com>2020-12-03 19:06:59 +0100
commit52ed0fb674ceca2ca1617bc1526a5101f91d6a75 (patch)
tree5aa693847051ca2240215d00f2f118862b9bea0b /eval
parentfd7e517902ef54db9c60c8bad2b9d091130402ba (diff)
parentae914e3a26518b6c098fb5b2569f0cab9cf77a73 (diff)
Merge pull request #15636 from vespa-engine/arnej/less-mutable-dense-tensor-view
Arnej/less mutable dense tensor view
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/eval/typed_cells.h2
-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.h23
3 files changed, 19 insertions, 17 deletions
diff --git a/eval/src/vespa/eval/eval/typed_cells.h b/eval/src/vespa/eval/eval/typed_cells.h
index a478a419f95..b65fa2b40e4 100644
--- a/eval/src/vespa/eval/eval/typed_cells.h
+++ b/eval/src/vespa/eval/eval/typed_cells.h
@@ -4,7 +4,7 @@
#include <assert.h>
#include <vespa/vespalib/util/arrayref.h>
-#include <vespa/eval/eval/value_type.h>
+#include <vespa/eval/eval/cell_type.h>
namespace vespalib::eval {
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..6b1011033a0 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,28 @@
#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);
+ assert(cells_in.type == _type.cell_type());
+ _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>(); }
};
}