summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2020-06-12 13:51:49 +0000
committerHåvard Pettersen <havardpe@oath.com>2020-06-12 13:51:49 +0000
commitf4f2fa8f1596ff212e63f2b075c006986d6eb098 (patch)
tree87ac70b00deb2a471eaa0667cb3dff31535e20f1 /eval
parent38d3d076ebee23e014858daad173c72f142d8ac5 (diff)
better handling of Inv
Diffstat (limited to 'eval')
-rw-r--r--eval/src/tests/eval/inline_operation/inline_operation_test.cpp3
-rw-r--r--eval/src/vespa/eval/eval/inline_operation.h3
2 files changed, 4 insertions, 2 deletions
diff --git a/eval/src/tests/eval/inline_operation/inline_operation_test.cpp b/eval/src/tests/eval/inline_operation/inline_operation_test.cpp
index 2aa159f46d7..d43743d9f68 100644
--- a/eval/src/tests/eval/inline_operation/inline_operation_test.cpp
+++ b/eval/src/tests/eval/inline_operation/inline_operation_test.cpp
@@ -146,7 +146,8 @@ TEST(InlineOperationTest, op2_typifier_forwards_return_value_correctly) {
TEST(InlineOperationTest, inline_op1_example_works) {
op1_t ignored = nullptr;
InlineOp1<Inv> op(ignored);
- EXPECT_EQ(op(1.0), 1.0);
+ EXPECT_EQ(op(2.0), 0.5);
+ EXPECT_EQ(op(4.0f), 0.25f);
EXPECT_EQ(op(8.0), 0.125);
}
diff --git a/eval/src/vespa/eval/eval/inline_operation.h b/eval/src/vespa/eval/eval/inline_operation.h
index 860f2330f57..1d3cb559b4a 100644
--- a/eval/src/vespa/eval/eval/inline_operation.h
+++ b/eval/src/vespa/eval/eval/inline_operation.h
@@ -23,7 +23,8 @@ template <> struct InlineOp1<Exp> {
};
template <> struct InlineOp1<Inv> {
InlineOp1(op1_t) {}
- template <typename A> constexpr auto operator()(A a) const { return (1/a); }
+ template <typename A> constexpr auto operator()(A a) const { return (1.0/a); }
+ constexpr auto operator()(float a) const { return (1.0f/a); }
};
template <> struct InlineOp1<Sqrt> {
InlineOp1(op1_t) {}