From 913f34b83a52ae90a6b88fcb1b7ad7acf8402731 Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Thu, 3 Dec 2020 11:21:09 +0000 Subject: be a Value directly * move to vespalib::eval namespace * do not inherit via DenseTensorView --- .../tensor/dense/mutable_dense_tensor_view.cpp | 11 +++++------ .../eval/tensor/dense/mutable_dense_tensor_view.h | 22 ++++++++++++---------- 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 #include -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(); } }; } -- cgit v1.2.3