diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2019-07-01 13:19:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-01 13:19:01 +0200 |
commit | dd76185fd1639d22393d600a248b18b44ad534aa (patch) | |
tree | 41c4d5d9248d7fdeb77de0bfceecd88f8aff5b81 | |
parent | 0c246c495f47ca037eba8ec33b3d10f10fb5a309 (diff) | |
parent | 733b7c1d374e6cfa4dc6b0f2e39d269448ea85e6 (diff) |
Merge pull request #9853 from vespa-engine/havardpe/remove-error-value-constant
remove error_value constant
-rw-r--r-- | eval/src/tests/eval/function/function_test.cpp | 14 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp | 3 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/test/tensor_conformance.cpp | 4 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/value.h | 2 | ||||
-rw-r--r-- | eval/src/vespa/eval/tensor/default_tensor_engine.cpp | 16 | ||||
-rw-r--r-- | searchlib/src/tests/fef/object_passing/object_passing_test.cpp | 4 |
6 files changed, 12 insertions, 31 deletions
diff --git a/eval/src/tests/eval/function/function_test.cpp b/eval/src/tests/eval/function/function_test.cpp index 6c3839b6cc9..c2561a86d6f 100644 --- a/eval/src/tests/eval/function/function_test.cpp +++ b/eval/src/tests/eval/function/function_test.cpp @@ -14,20 +14,14 @@ std::vector<vespalib::string> params({"x", "y", "z", "w"}); double as_number(const Function &f) { auto number = as<Number>(f.root()); - if (number) { - return number->value(); - } else { - return error_value; - } + ASSERT_TRUE(number); + return number->value(); } vespalib::string as_string(const Function &f) { auto string = as<String>(f.root()); - if (string) { - return string->value(); - } else { - return "<error>"; - } + ASSERT_TRUE(string); + return string->value(); } struct OperatorLayer { diff --git a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp index 71ca74f4167..cac24c6514f 100644 --- a/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp +++ b/eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp @@ -17,6 +17,7 @@ #include <vespa/eval/eval/check_type.h> #include <vespa/vespalib/stllike/hash_set.h> #include <vespa/vespalib/util/approx.h> +#include <limits> double vespalib_eval_ldexp(double a, double b) { return std::ldexp(a, b); } double vespalib_eval_min(double a, double b) { return std::min(a, b); } @@ -318,7 +319,7 @@ struct FunctionBuilder : public NodeVisitor, public NodeTraverser { for (size_t i = 0; i < num_children; ++i) { discard(); } - push_double(error_value); + push_double(std::numeric_limits<double>::quiet_NaN()); } void make_call_1(llvm::Function *fun) { diff --git a/eval/src/vespa/eval/eval/test/tensor_conformance.cpp b/eval/src/vespa/eval/eval/test/tensor_conformance.cpp index 7e512bb5bf1..1e1bd828d41 100644 --- a/eval/src/vespa/eval/eval/test/tensor_conformance.cpp +++ b/eval/src/vespa/eval/eval/test/tensor_conformance.cpp @@ -38,8 +38,8 @@ struct Eval { double _number; TensorSpec _tensor; public: - Result() : _type(Type::ERROR), _number(error_value), _tensor("error") {} - Result(const TensorEngine &engine, const Value &value) : _type(Type::ERROR), _number(error_value), _tensor("error") { + Result() : _type(Type::ERROR), _number(0.0), _tensor("error") {} + Result(const TensorEngine &engine, const Value &value) : _type(Type::ERROR), _number(0.0), _tensor("error") { if (value.is_double()) { _type = Type::NUMBER; } diff --git a/eval/src/vespa/eval/eval/value.h b/eval/src/vespa/eval/eval/value.h index 15df44efbac..6701173bcd3 100644 --- a/eval/src/vespa/eval/eval/value.h +++ b/eval/src/vespa/eval/eval/value.h @@ -12,8 +12,6 @@ namespace eval { class Tensor; -constexpr double error_value = 31212.0; - /** * An abstract Value. **/ diff --git a/eval/src/vespa/eval/tensor/default_tensor_engine.cpp b/eval/src/vespa/eval/tensor/default_tensor_engine.cpp index a265ae5ae85..dc658d0b2da 100644 --- a/eval/src/vespa/eval/tensor/default_tensor_engine.cpp +++ b/eval/src/vespa/eval/tensor/default_tensor_engine.cpp @@ -81,9 +81,6 @@ const Value &to_default(const Value &value, Stash &stash) { } const Value &to_value(std::unique_ptr<Tensor> tensor, Stash &stash) { - if (!tensor) { - return stash.create<DoubleValue>(eval::error_value); - } if (tensor->type().is_tensor()) { return *stash.create<Value::UP>(std::move(tensor)); } @@ -91,9 +88,6 @@ const Value &to_value(std::unique_ptr<Tensor> tensor, Stash &stash) { } Value::UP to_value(std::unique_ptr<Tensor> tensor) { - if (!tensor) { - return std::make_unique<DoubleValue>(eval::error_value); - } if (tensor->type().is_tensor()) { return tensor; } @@ -343,13 +337,9 @@ DefaultTensorEngine::reduce(const Value &a, Aggr aggr, const std::vector<vespali return fallback_reduce(a, aggr, dimensions, stash); } } else { - if (dimensions.empty()) { - Aggregator &aggregator = Aggregator::create(aggr, stash); - aggregator.first(a.as_double()); - return stash.create<DoubleValue>(aggregator.result()); - } else { - return stash.create<DoubleValue>(eval::error_value); - } + Aggregator &aggregator = Aggregator::create(aggr, stash); + aggregator.first(a.as_double()); + return stash.create<DoubleValue>(aggregator.result()); } } diff --git a/searchlib/src/tests/fef/object_passing/object_passing_test.cpp b/searchlib/src/tests/fef/object_passing/object_passing_test.cpp index 3ae5932889a..ce9585f11cb 100644 --- a/searchlib/src/tests/fef/object_passing/object_passing_test.cpp +++ b/searchlib/src/tests/fef/object_passing/object_passing_test.cpp @@ -84,9 +84,7 @@ struct Fixture { double eval(const vespalib::string &feature) { BlueprintResolver::SP resolver(new BlueprintResolver(factory, indexEnv)); resolver->addSeed(feature); - if (!resolver->compile()) { - return vespalib::eval::error_value; - } + ASSERT_TRUE(resolver->compile()); MatchDataLayout mdl; MatchData::UP md = mdl.createMatchData(); QueryEnvironment queryEnv(&indexEnv); |