aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-12-10 09:21:53 +0000
committerArne Juul <arnej@verizonmedia.com>2020-12-10 09:21:53 +0000
commit08e5ee0f980a25f88489586bf3b6f445f9723597 (patch)
tree50b025edb343f44782cf29468c8eb565bef2234e /searchlib
parent2050d83063418bca2c04f73918c7548dbaddb5ed (diff)
move class to the only place it is used
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/features/CMakeLists.txt1
-rw-r--r--searchlib/src/vespa/searchlib/features/dense_tensor_attribute_executor.h2
-rw-r--r--searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.cpp14
-rw-r--r--searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.h29
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_iterator.h1
6 files changed, 45 insertions, 3 deletions
diff --git a/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp b/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp
index 3385ac5a6bc..b5d4fb3130f 100644
--- a/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp
+++ b/searchlib/src/tests/tensor/dense_tensor_store/dense_tensor_store_test.cpp
@@ -8,7 +8,6 @@ LOG_SETUP("dense_tensor_store_test");
#include <vespa/eval/eval/value.h>
#include <vespa/eval/eval/value_type.h>
#include <vespa/eval/eval/test/value_compare.h>
-#include <vespa/eval/tensor/dense/mutable_dense_tensor_view.h>
using search::tensor::DenseTensorStore;
using vespalib::eval::SimpleValue;
diff --git a/searchlib/src/vespa/searchlib/features/CMakeLists.txt b/searchlib/src/vespa/searchlib/features/CMakeLists.txt
index 7bb4849bb87..aff5e91703b 100644
--- a/searchlib/src/vespa/searchlib/features/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/features/CMakeLists.txt
@@ -35,6 +35,7 @@ vespa_add_library(searchlib_features OBJECT
matchesfeature.cpp
matchfeature.cpp
max_reduce_prod_join_replacer.cpp
+ mutable_dense_tensor_view.cpp
native_dot_product_feature.cpp
nativeattributematchfeature.cpp
nativefieldmatchfeature.cpp
diff --git a/searchlib/src/vespa/searchlib/features/dense_tensor_attribute_executor.h b/searchlib/src/vespa/searchlib/features/dense_tensor_attribute_executor.h
index d6e92a89619..890d806893a 100644
--- a/searchlib/src/vespa/searchlib/features/dense_tensor_attribute_executor.h
+++ b/searchlib/src/vespa/searchlib/features/dense_tensor_attribute_executor.h
@@ -4,7 +4,7 @@
#include <vespa/searchlib/fef/featureexecutor.h>
#include <vespa/eval/eval/value.h>
-#include <vespa/eval/tensor/dense/mutable_dense_tensor_view.h>
+#include "mutable_dense_tensor_view.h"
namespace search::tensor { class ITensorAttribute; }
namespace search::features {
diff --git a/searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.cpp b/searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.cpp
new file mode 100644
index 00000000000..913a386418b
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.cpp
@@ -0,0 +1,14 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "mutable_dense_tensor_view.h"
+
+namespace vespalib::eval {
+
+MutableDenseTensorView::MutableDenseTensorView(const ValueType &type_in)
+ : _type(type_in),
+ _cells()
+{
+ assert(_type.is_dense());
+}
+
+}
diff --git a/searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.h b/searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.h
new file mode 100644
index 00000000000..6b1011033a0
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/features/mutable_dense_tensor_view.h
@@ -0,0 +1,29 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#pragma once
+
+#include <vespa/eval/eval/value.h>
+#include <cassert>
+
+namespace vespalib::eval {
+
+/**
+ * A dense tensor with a cells reference that can be modified.
+ */
+class MutableDenseTensorView : public Value {
+private:
+ const ValueType _type;
+ TypedCells _cells;
+public:
+ MutableDenseTensorView(const ValueType &type_in);
+ void setCells(TypedCells 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>(); }
+};
+
+}
diff --git a/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_iterator.h b/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_iterator.h
index 9b8ad6295b3..eec45ea1af0 100644
--- a/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_iterator.h
+++ b/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_iterator.h
@@ -5,7 +5,6 @@
#include "searchiterator.h"
#include "nearest_neighbor_distance_heap.h"
#include <vespa/eval/eval/value.h>
-#include <vespa/eval/tensor/dense/mutable_dense_tensor_view.h>
#include <vespa/searchlib/fef/termfieldmatchdata.h>
#include <vespa/searchlib/tensor/dense_tensor_attribute.h>
#include <vespa/searchlib/tensor/distance_function.h>