summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2019-07-01 13:19:01 +0200
committerGitHub <noreply@github.com>2019-07-01 13:19:01 +0200
commitdd76185fd1639d22393d600a248b18b44ad534aa (patch)
tree41c4d5d9248d7fdeb77de0bfceecd88f8aff5b81
parent0c246c495f47ca037eba8ec33b3d10f10fb5a309 (diff)
parent733b7c1d374e6cfa4dc6b0f2e39d269448ea85e6 (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.cpp14
-rw-r--r--eval/src/vespa/eval/eval/llvm/llvm_wrapper.cpp3
-rw-r--r--eval/src/vespa/eval/eval/test/tensor_conformance.cpp4
-rw-r--r--eval/src/vespa/eval/eval/value.h2
-rw-r--r--eval/src/vespa/eval/tensor/default_tensor_engine.cpp16
-rw-r--r--searchlib/src/tests/fef/object_passing/object_passing_test.cpp4
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);