aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eval/src/tests/instruction/generic_join/generic_join_test.cpp12
-rw-r--r--eval/src/vespa/eval/instruction/generic_join.h22
2 files changed, 17 insertions, 17 deletions
diff --git a/eval/src/tests/instruction/generic_join/generic_join_test.cpp b/eval/src/tests/instruction/generic_join/generic_join_test.cpp
index 994e67934e7..181f44d0f2e 100644
--- a/eval/src/tests/instruction/generic_join/generic_join_test.cpp
+++ b/eval/src/tests/instruction/generic_join/generic_join_test.cpp
@@ -64,9 +64,9 @@ TEST(GenericJoinTest, dense_join_plan_can_be_created) {
auto lhs = ValueType::from_spec("tensor(a{},b[6],c[5],e[3],f[2],g{})");
auto rhs = ValueType::from_spec("tensor(a{},b[6],c[5],d[4],h{})");
auto plan = DenseJoinPlan(lhs, rhs);
- std::vector<size_t> expect_loop = {30,4,6};
- std::vector<size_t> expect_lhs_stride = {6,0,1};
- std::vector<size_t> expect_rhs_stride = {4,1,0};
+ SmallVector<size_t> expect_loop = {30,4,6};
+ SmallVector<size_t> expect_lhs_stride = {6,0,1};
+ SmallVector<size_t> expect_rhs_stride = {4,1,0};
EXPECT_EQ(plan.lhs_size, 180);
EXPECT_EQ(plan.rhs_size, 120);
EXPECT_EQ(plan.out_size, 720);
@@ -80,9 +80,9 @@ TEST(GenericJoinTest, sparse_join_plan_can_be_created) {
auto rhs = ValueType::from_spec("tensor(b[6],c[5],d[4],g{},h{})");
auto plan = SparseJoinPlan(lhs, rhs);
using SRC = SparseJoinPlan::Source;
- std::vector<SRC> expect_sources = {SRC::LHS,SRC::BOTH,SRC::RHS};
- std::vector<size_t> expect_lhs_overlap = {1};
- std::vector<size_t> expect_rhs_overlap = {0};
+ SmallVector<SRC> expect_sources = {SRC::LHS,SRC::BOTH,SRC::RHS};
+ SmallVector<size_t> expect_lhs_overlap = {1};
+ SmallVector<size_t> expect_rhs_overlap = {0};
EXPECT_EQ(plan.sources, expect_sources);
EXPECT_EQ(plan.lhs_overlap, expect_lhs_overlap);
EXPECT_EQ(plan.rhs_overlap, expect_rhs_overlap);
diff --git a/eval/src/vespa/eval/instruction/generic_join.h b/eval/src/vespa/eval/instruction/generic_join.h
index d55718a0ff1..a33a92684d2 100644
--- a/eval/src/vespa/eval/instruction/generic_join.h
+++ b/eval/src/vespa/eval/instruction/generic_join.h
@@ -40,9 +40,9 @@ struct DenseJoinPlan {
size_t lhs_size;
size_t rhs_size;
size_t out_size;
- std::vector<size_t> loop_cnt;
- std::vector<size_t> lhs_stride;
- std::vector<size_t> rhs_stride;
+ SmallVector<size_t> loop_cnt;
+ SmallVector<size_t> lhs_stride;
+ SmallVector<size_t> rhs_stride;
DenseJoinPlan(const ValueType &lhs_type, const ValueType &rhs_type);
~DenseJoinPlan();
template <typename F> void execute(size_t lhs, size_t rhs, const F &f) const {
@@ -57,9 +57,9 @@ struct DenseJoinPlan {
**/
struct SparseJoinPlan {
enum class Source { LHS, RHS, BOTH };
- std::vector<Source> sources;
- std::vector<size_t> lhs_overlap;
- std::vector<size_t> rhs_overlap;
+ SmallVector<Source> sources;
+ SmallVector<size_t> lhs_overlap;
+ SmallVector<size_t> rhs_overlap;
bool should_forward_lhs_index() const;
bool should_forward_rhs_index() const;
SparseJoinPlan(const ValueType &lhs_type, const ValueType &rhs_type);
@@ -75,11 +75,11 @@ struct SparseJoinState {
bool swapped;
const Value::Index &first_index;
const Value::Index &second_index;
- const std::vector<size_t> &second_view_dims;
- std::vector<string_id> full_address;
- std::vector<string_id*> first_address;
- std::vector<const string_id*> address_overlap;
- std::vector<string_id*> second_only_address;
+ const SmallVector<size_t> &second_view_dims;
+ SmallVector<string_id> full_address;
+ SmallVector<string_id*> first_address;
+ SmallVector<const string_id*> address_overlap;
+ SmallVector<string_id*> second_only_address;
size_t lhs_subspace;
size_t rhs_subspace;
size_t &first_subspace;