From 2f6f32bf6e9e528c6829e28ecb7899a762aa9d5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Sun, 12 May 2013 21:43:32 +0200 Subject: [PATCH] Added variables() static construction method. --- AutoDiffBlock.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/AutoDiffBlock.hpp b/AutoDiffBlock.hpp index fcf136ed6..c7ef20218 100644 --- a/AutoDiffBlock.hpp +++ b/AutoDiffBlock.hpp @@ -75,6 +75,22 @@ namespace AutoDiff return ForwardBlock(val, jac); } + /// Construct a set of primary variables, + /// each initialized to a given vector. + static std::vector variables(const std::vector& initial_values) + { + const int num_vars = initial_values.size(); + std::vector bpat; + for (int v = 0; v < num_vars; ++v) { + bpat.push_back(initial_values[v].size()); + } + std::vector vars; + for (int v = 0; v < num_vars; ++v) { + vars.emplace_back(variable(v, initial_values[v], bpat)); + } + return vars; + } + /// Operator + ForwardBlock operator+(const ForwardBlock& rhs) const {