summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2018-03-01 19:58:11 +0000
committerArne Juul <arnej@yahoo-inc.com>2018-03-01 19:58:13 +0000
commit69a3176e35617093bbced10ec43c6f80f95255ea (patch)
tree68d58d7eae9b543d3b0d16b091e189ea78aae3ca /eval
parent04e32ca9c3c986d11eaac8ed9f2beccfa91c947e (diff)
fix operand ordering
* also improve test to detect this bug
Diffstat (limited to 'eval')
-rw-r--r--eval/src/tests/tensor/dense_inplace_join_function/dense_inplace_join_function_test.cpp3
-rw-r--r--eval/src/vespa/eval/tensor/dense/dense_inplace_join_function.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/eval/src/tests/tensor/dense_inplace_join_function/dense_inplace_join_function_test.cpp b/eval/src/tests/tensor/dense_inplace_join_function/dense_inplace_join_function_test.cpp
index c59f4956675..5208426dbfe 100644
--- a/eval/src/tests/tensor/dense_inplace_join_function/dense_inplace_join_function_test.cpp
+++ b/eval/src/tests/tensor/dense_inplace_join_function/dense_inplace_join_function_test.cpp
@@ -26,7 +26,7 @@ EvalFixture::ParamRepo make_params() {
.add("x5", spec({x(5)}, N()))
.add_mutable("_d_A", spec(17.0))
.add_mutable("_d_B", spec(42.0))
- .add_mutable("_x5", spec({x(5)}, N()))
+ .add_mutable("_x5", spec({x(5)}, Seq({9, 8, 7, 6, 5})))
.add_mutable("_x5_A", spec({x(5)}, Seq({10, 11, 12, 13, 14})))
.add_mutable("_x5_B", spec({x(5)}, Seq({16, 18, 20, 22, 24})))
.add_mutable("_x5_C", spec({x(5)}, Seq({30, 35, 40, 45, 50})))
@@ -68,6 +68,7 @@ void verify_not_optimized(const vespalib::string &expr) {
TEST("require that mutable dense concrete tensors are optimized") {
TEST_DO(verify_left_optimized("_x5_A+_x5_B", 1));
+ TEST_DO(verify_left_optimized("_x5y3+_x5y3", 1));
TEST_DO(verify_left_optimized("_x5_A-_x5_B", 1));
TEST_DO(verify_left_optimized("_x5-x5", 1));
TEST_DO(verify_right_optimized("x5-_x5", 1));
diff --git a/eval/src/vespa/eval/tensor/dense/dense_inplace_join_function.cpp b/eval/src/vespa/eval/tensor/dense/dense_inplace_join_function.cpp
index 639246b057c..2e37406664c 100644
--- a/eval/src/vespa/eval/tensor/dense/dense_inplace_join_function.cpp
+++ b/eval/src/vespa/eval/tensor/dense/dense_inplace_join_function.cpp
@@ -50,7 +50,7 @@ void my_inplace_right_join_op(eval::InterpretedFunction::State &state, uint64_t
ArrayRef<double> right_cells = getMutableCells(rhs);
auto lhs_iter = left_cells.cbegin();
for (double &cell: right_cells) {
- cell = function(cell, *lhs_iter);
+ cell = function(*lhs_iter, cell);
++lhs_iter;
}
assert(lhs_iter == left_cells.cend());