aligator  0.16.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
history-callback.hpp
Go to the documentation of this file.
1
2#pragma once
3
7
8#include <typeindex>
9
10namespace aligator {
11
13template <typename Scalar> struct HistoryCallbackTpl : CallbackBaseTpl<Scalar> {
16 template <typename Solver>
17 HistoryCallbackTpl(const Solver *solver, bool store_pd_vars = false,
18 bool store_values = true)
19 : store_primal_dual_vars_(store_pd_vars)
20 , store_values_(store_values)
21 , m_rtti(typeid(*solver))
22 , m_solver(solver) {}
23
25
26 std::vector<std::vector<VectorXs>> xs;
27 std::vector<std::vector<VectorXs>> us;
28 std::vector<std::vector<VectorXs>> lams;
29 std::vector<Scalar> values;
30 std::vector<Scalar> merit_values;
31 std::vector<Scalar> prim_infeas;
32 std::vector<Scalar> dual_infeas;
33 std::vector<Scalar> inner_crits;
34 std::vector<std::size_t> al_index;
35 std::vector<Scalar> prim_tols;
36 std::vector<Scalar> dual_tols;
37
38 void call(const Workspace & /*workspace*/, const Results &results);
39
42
43private:
44 std::type_index m_rtti;
45 const void *m_solver;
46};
47
48#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
49extern template struct HistoryCallbackTpl<context::Scalar>;
50#endif
51} // namespace aligator
Main package namespace.
Base callback class.
Store the history of results.
std::vector< Scalar > prim_tols
std::vector< Scalar > dual_tols
std::vector< Scalar > prim_infeas
std::vector< std::size_t > al_index
void call(const Workspace &, const Results &results)
std::vector< std::vector< VectorXs > > xs
HistoryCallbackTpl(const Solver *solver, bool store_pd_vars=false, bool store_values=true)
ResultsBaseTpl< Scalar > Results
std::vector< Scalar > dual_infeas
std::vector< Scalar > merit_values
WorkspaceBaseTpl< Scalar > Workspace
std::vector< std::vector< VectorXs > > us
std::vector< Scalar > inner_crits
std::vector< std::vector< VectorXs > > lams
Base workspace struct for the algorithms.