aboutsummaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2021-09-24 15:04:59 +0000
committerArne H Juul <arnej@yahooinc.com>2021-09-24 15:04:59 +0000
commite27b4c52acc35799036d632884d4bed4952d875a (patch)
tree2f16b2408f52a7be549d6f16d471b5b2573c8c9f /eval
parent168e1857e8dc44fa79d077452f37a891af933681 (diff)
make compatible_types internal
Diffstat (limited to 'eval')
-rw-r--r--eval/src/tests/instruction/dense_hamming_distance/dense_hamming_distance_test.cpp2
-rw-r--r--eval/src/vespa/eval/instruction/dense_hamming_distance.cpp17
-rw-r--r--eval/src/vespa/eval/instruction/dense_hamming_distance.h3
3 files changed, 11 insertions, 11 deletions
diff --git a/eval/src/tests/instruction/dense_hamming_distance/dense_hamming_distance_test.cpp b/eval/src/tests/instruction/dense_hamming_distance/dense_hamming_distance_test.cpp
index 8b753105401..8eaa0e72ad5 100644
--- a/eval/src/tests/instruction/dense_hamming_distance/dense_hamming_distance_test.cpp
+++ b/eval/src/tests/instruction/dense_hamming_distance/dense_hamming_distance_test.cpp
@@ -23,7 +23,7 @@ const ValueBuilderFactory &prod_factory = FastValueBuilderFactory::get();
struct FunInfo {
using LookFor = DenseHammingDistance;
void verify(const LookFor &fun) const {
- EXPECT_FALSE(fun.result_is_mutable());
+ EXPECT_TRUE(fun.result_is_mutable());
}
};
diff --git a/eval/src/vespa/eval/instruction/dense_hamming_distance.cpp b/eval/src/vespa/eval/instruction/dense_hamming_distance.cpp
index 469bccbcaf0..e9a4b8ec428 100644
--- a/eval/src/vespa/eval/instruction/dense_hamming_distance.cpp
+++ b/eval/src/vespa/eval/instruction/dense_hamming_distance.cpp
@@ -14,6 +14,7 @@ using namespace tensor_function;
namespace {
+
size_t binary_hamming_distance(const void *lhs, const void *rhs, size_t sz) {
const uint64_t *words_a = static_cast<const uint64_t *>(lhs);
const uint64_t *words_b = static_cast<const uint64_t *>(rhs);
@@ -43,6 +44,14 @@ void int8_hamming_to_double_op(InterpretedFunction::State &state, uint64_t vecto
state.pop_pop_push(state.stash.create<DoubleValue>(result));
}
+bool compatible_types(const ValueType &lhs, const ValueType &rhs) {
+ return ((lhs.cell_type() == CellType::INT8) &&
+ (rhs.cell_type() == CellType::INT8) &&
+ lhs.is_dense() &&
+ rhs.is_dense() &&
+ (lhs.nontrivial_indexed_dimensions() == rhs.nontrivial_indexed_dimensions()));
+}
+
} // namespace <unnamed>
DenseHammingDistance::DenseHammingDistance(const TensorFunction &dense_child,
@@ -61,14 +70,6 @@ DenseHammingDistance::compile_self(const ValueBuilderFactory &, Stash &) const
return InterpretedFunction::Instruction(op, lhs_type.dense_subspace_size());
}
-bool DenseHammingDistance::compatible_types(const ValueType &lhs, const ValueType &rhs) {
- return ((lhs.cell_type() == CellType::INT8) &&
- (rhs.cell_type() == CellType::INT8) &&
- lhs.is_dense() &&
- rhs.is_dense() &&
- (lhs.nontrivial_indexed_dimensions() == rhs.nontrivial_indexed_dimensions()));
-}
-
const TensorFunction &
DenseHammingDistance::optimize(const TensorFunction &expr, Stash &stash)
{
diff --git a/eval/src/vespa/eval/instruction/dense_hamming_distance.h b/eval/src/vespa/eval/instruction/dense_hamming_distance.h
index f3b8193da84..efc70d74d21 100644
--- a/eval/src/vespa/eval/instruction/dense_hamming_distance.h
+++ b/eval/src/vespa/eval/instruction/dense_hamming_distance.h
@@ -15,8 +15,7 @@ public:
DenseHammingDistance(const TensorFunction &lhs_child,
const TensorFunction &rhs_child);
InterpretedFunction::Instruction compile_self(const ValueBuilderFactory &factory, Stash &stash) const override;
- bool result_is_mutable() const override { return false; }
- static bool compatible_types(const ValueType &lhs, const ValueType &rhs);
+ bool result_is_mutable() const override { return true; }
static const TensorFunction &optimize(const TensorFunction &expr, Stash &stash);
};