summaryrefslogtreecommitdiffstats
path: root/eval
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-09-25 08:17:00 +0000
committerArne Juul <arnej@verizonmedia.com>2020-09-28 12:06:35 +0000
commit4390afc15f1de2600a89ed14cffef1881dbf6e62 (patch)
tree772c5beb47a88a5b3189933abdae1c401609f3a5 /eval
parent416681c8a5a80bf3ddb960aafc9c3db98363b049 (diff)
add DoubleValueBuilder
Diffstat (limited to 'eval')
-rw-r--r--eval/src/vespa/eval/eval/CMakeLists.txt1
-rw-r--r--eval/src/vespa/eval/eval/double_value_builder.cpp20
-rw-r--r--eval/src/vespa/eval/eval/double_value_builder.h30
3 files changed, 51 insertions, 0 deletions
diff --git a/eval/src/vespa/eval/eval/CMakeLists.txt b/eval/src/vespa/eval/eval/CMakeLists.txt
index 84cebe8cfd0..d108c516e73 100644
--- a/eval/src/vespa/eval/eval/CMakeLists.txt
+++ b/eval/src/vespa/eval/eval/CMakeLists.txt
@@ -6,6 +6,7 @@ vespa_add_library(eval_eval OBJECT
call_nodes.cpp
compile_tensor_function.cpp
delete_node.cpp
+ double_value_builder.cpp
fast_forest.cpp
function.cpp
gbdt.cpp
diff --git a/eval/src/vespa/eval/eval/double_value_builder.cpp b/eval/src/vespa/eval/eval/double_value_builder.cpp
new file mode 100644
index 00000000000..b90bf294d9d
--- /dev/null
+++ b/eval/src/vespa/eval/eval/double_value_builder.cpp
@@ -0,0 +1,20 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "double_value_builder.h"
+
+namespace vespalib::eval {
+
+DoubleValueBuilder::DoubleValueBuilder(const eval::ValueType &type,
+ size_t num_mapped_in,
+ size_t subspace_size_in,
+ size_t)
+ : _value(0.0)
+{
+ assert(type.is_double());
+ assert(num_mapped_in == 0);
+ assert(subspace_size_in == 1);
+}
+
+DoubleValueBuilder::~DoubleValueBuilder() = default;
+
+}
diff --git a/eval/src/vespa/eval/eval/double_value_builder.h b/eval/src/vespa/eval/eval/double_value_builder.h
new file mode 100644
index 00000000000..27bac1436f9
--- /dev/null
+++ b/eval/src/vespa/eval/eval/double_value_builder.h
@@ -0,0 +1,30 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#pragma once
+
+#include "value.h"
+
+namespace vespalib::eval {
+
+/**
+ * A trivial builder for DoubleValue objects
+ **/
+class DoubleValueBuilder : public ValueBuilder<double>
+{
+private:
+ double _value;
+public:
+ DoubleValueBuilder(const ValueType &type, size_t num_mapped_in,
+ size_t subspace_size_in, size_t expected_subspaces);
+ ~DoubleValueBuilder() override;
+ ArrayRef<double>
+ add_subspace(const std::vector<vespalib::stringref> &) override {
+ return ArrayRef<double>(&_value, 1);
+ }
+ std::unique_ptr<Value>
+ build(std::unique_ptr<ValueBuilder<double>>) override {
+ return std::make_unique<DoubleValue>(_value);
+ }
+};
+
+} // namespace