From a63198a370bb0c43bfa9381ccfb6d5c0c22ee357 Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Thu, 25 Feb 2021 21:04:26 +0000 Subject: change create_view API to take ConstArrayRef argument --- eval/src/tests/eval/simple_value/simple_value_test.cpp | 3 ++- eval/src/tests/streamed/value/streamed_value_test.cpp | 3 ++- eval/src/vespa/eval/eval/fast_value.cpp | 2 +- eval/src/vespa/eval/eval/fast_value.hpp | 8 ++++---- eval/src/vespa/eval/eval/simple_value.cpp | 7 ++++--- eval/src/vespa/eval/eval/simple_value.h | 2 +- eval/src/vespa/eval/eval/value.cpp | 2 +- eval/src/vespa/eval/eval/value.h | 4 ++-- eval/src/vespa/eval/streamed/streamed_value_index.cpp | 6 +++--- eval/src/vespa/eval/streamed/streamed_value_index.h | 2 +- 10 files changed, 21 insertions(+), 18 deletions(-) (limited to 'eval') diff --git a/eval/src/tests/eval/simple_value/simple_value_test.cpp b/eval/src/tests/eval/simple_value/simple_value_test.cpp index f7bda441bfd..1f0df71d306 100644 --- a/eval/src/tests/eval/simple_value/simple_value_test.cpp +++ b/eval/src/tests/eval/simple_value/simple_value_test.cpp @@ -108,7 +108,8 @@ TEST(SimpleValueTest, simple_value_can_be_built_and_inspected) { } std::unique_ptr value = builder->build(std::move(builder)); EXPECT_EQ(value->index().size(), 6); - auto view = value->index().create_view({0}); + std::vector view_dims = { 0 }; + auto view = value->index().create_view(view_dims); Handle query_handle("b"); string_id query = query_handle.id(); string_id label; diff --git a/eval/src/tests/streamed/value/streamed_value_test.cpp b/eval/src/tests/streamed/value/streamed_value_test.cpp index 965970e47e3..44c30d226bd 100644 --- a/eval/src/tests/streamed/value/streamed_value_test.cpp +++ b/eval/src/tests/streamed/value/streamed_value_test.cpp @@ -108,7 +108,8 @@ TEST(StreamedValueTest, streamed_value_can_be_built_and_inspected) { } std::unique_ptr value = builder->build(std::move(builder)); EXPECT_EQ(value->index().size(), 6); - auto view = value->index().create_view({0}); + std::vector view_dims = { 0 }; + auto view = value->index().create_view(view_dims); Handle query_handle("b"); string_id query = query_handle.id(); string_id label; diff --git a/eval/src/vespa/eval/eval/fast_value.cpp b/eval/src/vespa/eval/eval/fast_value.cpp index 96d0fa84149..4b39fc48d9b 100644 --- a/eval/src/vespa/eval/eval/fast_value.cpp +++ b/eval/src/vespa/eval/eval/fast_value.cpp @@ -30,7 +30,7 @@ struct CreateFastValueBuilderBase { //----------------------------------------------------------------------------- std::unique_ptr -FastValueIndex::create_view(const std::vector &dims) const +FastValueIndex::create_view(ConstArrayRef dims) const { if (map.addr_size() == 0) { return TrivialIndex::get().create_view(dims); diff --git a/eval/src/vespa/eval/eval/fast_value.hpp b/eval/src/vespa/eval/eval/fast_value.hpp index 33624fb920e..69a496e9bff 100644 --- a/eval/src/vespa/eval/eval/fast_value.hpp +++ b/eval/src/vespa/eval/eval/fast_value.hpp @@ -59,9 +59,9 @@ struct FastFilterView : public Value::Index::View { return true; } - FastFilterView(const FastAddrMap &map_in, const std::vector &match_dims_in) - : map(map_in), match_dims(match_dims_in), - extract_dims(), query(match_dims.size()), pos(FastAddrMap::npos()) + FastFilterView(const FastAddrMap &map_in, ConstArrayRef match_dims_in) + : map(map_in), match_dims(match_dims_in.begin(), match_dims_in.end()), + extract_dims(), query(match_dims.size()), pos(FastAddrMap::npos()) { auto my_pos = match_dims.begin(); for (size_t i = 0; i < map.addr_size(); ++i) { @@ -142,7 +142,7 @@ struct FastValueIndex final : Value::Index { FastValueIndex(size_t num_mapped_dims_in, const std::vector &labels, size_t expected_subspaces_in) : map(num_mapped_dims_in, labels, expected_subspaces_in) {} size_t size() const override { return map.size(); } - std::unique_ptr create_view(const std::vector &dims) const override; + std::unique_ptr create_view(ConstArrayRef dims) const override; }; inline bool is_fast(const Value::Index &index) { diff --git a/eval/src/vespa/eval/eval/simple_value.cpp b/eval/src/vespa/eval/eval/simple_value.cpp index 313c4f3008d..c44ca320470 100644 --- a/eval/src/vespa/eval/eval/simple_value.cpp +++ b/eval/src/vespa/eval/eval/simple_value.cpp @@ -83,8 +83,9 @@ struct SimpleFilterView : public Value::Index::View { return true; } - SimpleFilterView(const Map &map_in, const std::vector &match_dims_in, size_t num_dims) - : map(map_in), match_dims(match_dims_in), extract_dims(), query(match_dims.size()), pos(map.end()) + SimpleFilterView(const Map &map_in, ConstArrayRef match_dims_in, size_t num_dims) + : map(map_in), match_dims(match_dims_in.begin(), match_dims_in.end()), + extract_dims(), query(match_dims.size()), pos(map.end()) { auto my_pos = match_dims.begin(); for (size_t i = 0; i < num_dims; ++i) { @@ -208,7 +209,7 @@ SimpleValue::estimate_extra_memory_usage() const } std::unique_ptr -SimpleValue::create_view(const std::vector &dims) const +SimpleValue::create_view(ConstArrayRef dims) const { if (dims.empty()) { return std::make_unique(_index); diff --git a/eval/src/vespa/eval/eval/simple_value.h b/eval/src/vespa/eval/eval/simple_value.h index 6f5ccd30041..a43f51f6e13 100644 --- a/eval/src/vespa/eval/eval/simple_value.h +++ b/eval/src/vespa/eval/eval/simple_value.h @@ -45,7 +45,7 @@ public: const ValueType &type() const override { return _type; } const Value::Index &index() const override { return *this; } size_t size() const override { return _index.size(); } - std::unique_ptr create_view(const std::vector &dims) const override; + std::unique_ptr create_view(ConstArrayRef dims) const override; static Value::UP from_spec(const TensorSpec &spec); static Value::UP from_value(const Value &value); static Value::UP from_stream(nbostream &stream); diff --git a/eval/src/vespa/eval/eval/value.cpp b/eval/src/vespa/eval/eval/value.cpp index bfa77d1a604..9cd5ef45765 100644 --- a/eval/src/vespa/eval/eval/value.cpp +++ b/eval/src/vespa/eval/eval/value.cpp @@ -47,7 +47,7 @@ TrivialIndex::size() const } std::unique_ptr -TrivialIndex::create_view(const std::vector &) const +TrivialIndex::create_view(ConstArrayRef) const { return std::make_unique(); } diff --git a/eval/src/vespa/eval/eval/value.h b/eval/src/vespa/eval/eval/value.h index 88b394add9c..ee850cdd47e 100644 --- a/eval/src/vespa/eval/eval/value.h +++ b/eval/src/vespa/eval/eval/value.h @@ -53,7 +53,7 @@ struct Value { // create a view able to look up dense subspaces based on // labels from a subset of the mapped dimensions. - virtual std::unique_ptr create_view(const std::vector &dims) const = 0; + virtual std::unique_ptr create_view(ConstArrayRef dims) const = 0; virtual ~Index() {} }; @@ -81,7 +81,7 @@ private: public: static const TrivialIndex &get() { return _index; } size_t size() const override; - std::unique_ptr create_view(const std::vector &dims) const override; + std::unique_ptr create_view(ConstArrayRef dims) const override; }; template diff --git a/eval/src/vespa/eval/streamed/streamed_value_index.cpp b/eval/src/vespa/eval/streamed/streamed_value_index.cpp index d47f0138522..57845911026 100644 --- a/eval/src/vespa/eval/streamed/streamed_value_index.cpp +++ b/eval/src/vespa/eval/streamed/streamed_value_index.cpp @@ -20,9 +20,9 @@ struct StreamedFilterView : Value::Index::View std::vector view_dims; std::vector to_match; - StreamedFilterView(LabelBlockStream labels, std::vector view_dims_in) + StreamedFilterView(LabelBlockStream labels, ConstArrayRef view_dims_in) : label_blocks(std::move(labels)), - view_dims(std::move(view_dims_in)), + view_dims(view_dims_in.begin(), view_dims_in.end()), to_match() { to_match.reserve(view_dims.size()); @@ -88,7 +88,7 @@ struct StreamedIterationView : Value::Index::View } // namespace std::unique_ptr -StreamedValueIndex::create_view(const std::vector &dims) const +StreamedValueIndex::create_view(ConstArrayRef dims) const { LabelBlockStream label_stream(_num_subspaces, _labels_ref, _num_mapped_dims); if (dims.empty()) { diff --git a/eval/src/vespa/eval/streamed/streamed_value_index.h b/eval/src/vespa/eval/streamed/streamed_value_index.h index e94462c89f4..8bbe388df77 100644 --- a/eval/src/vespa/eval/streamed/streamed_value_index.h +++ b/eval/src/vespa/eval/streamed/streamed_value_index.h @@ -27,7 +27,7 @@ public: // index API: size_t size() const override { return _num_subspaces; } - std::unique_ptr create_view(const std::vector &dims) const override; + std::unique_ptr create_view(ConstArrayRef dims) const override; }; } // namespace -- cgit v1.2.3