diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2020-12-03 19:06:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-03 19:06:59 +0100 |
commit | 52ed0fb674ceca2ca1617bc1526a5101f91d6a75 (patch) | |
tree | 5aa693847051ca2240215d00f2f118862b9bea0b /eval | |
parent | fd7e517902ef54db9c60c8bad2b9d091130402ba (diff) | |
parent | ae914e3a26518b6c098fb5b2569f0cab9cf77a73 (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.h | 2 | ||||
-rw-r--r-- | eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.cpp | 11 | ||||
-rw-r--r-- | eval/src/vespa/eval/tensor/dense/mutable_dense_tensor_view.h | 23 |
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>(); } }; } |