diff options
author | Arne Juul <arnej@verizonmedia.com> | 2020-09-25 08:17:00 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2020-09-28 12:06:35 +0000 |
commit | 4390afc15f1de2600a89ed14cffef1881dbf6e62 (patch) | |
tree | 772c5beb47a88a5b3189933abdae1c401609f3a5 | |
parent | 416681c8a5a80bf3ddb960aafc9c3db98363b049 (diff) |
add DoubleValueBuilder
-rw-r--r-- | eval/src/vespa/eval/eval/CMakeLists.txt | 1 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/double_value_builder.cpp | 20 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/double_value_builder.h | 30 |
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 |