summaryrefslogtreecommitdiffstats
path: root/eval/src/tests/tensor
diff options
context:
space:
mode:
authorHaavard <havardpe@yahoo-inc.com>2017-02-27 12:05:40 +0000
committerHaavard <havardpe@yahoo-inc.com>2017-02-27 12:05:40 +0000
commit6753465db4726d1b6a126f40217632fd61d77b21 (patch)
tree026b7360668297aecddd1f90257d57131fe0b39f /eval/src/tests/tensor
parentf03d03c6402fa7c0b96e21b8664733c6ec3feeb1 (diff)
interpreted functions now always take lazy parameters
Diffstat (limited to 'eval/src/tests/tensor')
-rw-r--r--eval/src/tests/tensor/tensor_performance/tensor_performance_test.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/eval/src/tests/tensor/tensor_performance/tensor_performance_test.cpp b/eval/src/tests/tensor/tensor_performance/tensor_performance_test.cpp
index 64bec6d1186..c7d4006b749 100644
--- a/eval/src/tests/tensor/tensor_performance/tensor_performance_test.cpp
+++ b/eval/src/tests/tensor/tensor_performance/tensor_performance_test.cpp
@@ -42,16 +42,16 @@ struct Params {
}
};
-void inject_params(const Function &function, const Params &params,
- InterpretedFunction::Context &ctx)
+InterpretedFunction::SimpleObjectParams make_params(const Function &function, const Params &params)
{
- ctx.clear_params();
+ InterpretedFunction::SimpleObjectParams fun_params({});
EXPECT_EQUAL(params.map.size(), function.num_params());
for (size_t i = 0; i < function.num_params(); ++i) {
auto param = params.map.find(function.param_name(i));
ASSERT_TRUE(param != params.map.end());
- ctx.add_param(*(param->second));
+ fun_params.params.push_back(*(param->second));
}
+ return fun_params;
}
std::vector<ValueType> extract_param_types(const Function &function, const Params &params) {
@@ -70,23 +70,23 @@ double calculate_expression(const vespalib::string &expression, const Params &pa
const NodeTypes types(function, extract_param_types(function, params));
const InterpretedFunction interpreted(tensor::DefaultTensorEngine::ref(), function, types);
InterpretedFunction::Context context(interpreted);
- inject_params(function, params, context);
- const Value &result = interpreted.eval(context);
+ auto fun_params = make_params(function, params);
+ const Value &result = interpreted.eval(context, fun_params);
EXPECT_TRUE(result.is_double());
return result.as_double();
}
DoubleValue dummy_result(0.0);
-const Value &dummy_ranking(InterpretedFunction::Context &) { return dummy_result; }
+const Value &dummy_ranking(InterpretedFunction::Context &, InterpretedFunction::LazyParams &) { return dummy_result; }
double benchmark_expression_us(const vespalib::string &expression, const Params &params) {
const Function function = Function::parse(expression);
const NodeTypes types(function, extract_param_types(function, params));
const InterpretedFunction interpreted(tensor::DefaultTensorEngine::ref(), function, types);
InterpretedFunction::Context context(interpreted);
- inject_params(function, params, context);
- auto ranking = [&](){ interpreted.eval(context); };
- auto baseline = [&](){ dummy_ranking(context); };
+ auto fun_params = make_params(function, params);
+ auto ranking = [&](){ interpreted.eval(context, fun_params); };
+ auto baseline = [&](){ dummy_ranking(context, fun_params); };
return BenchmarkTimer::benchmark(ranking, baseline, 5.0) * 1000.0 * 1000.0;
}