aligator  0.14.0
A primal-dual augmented Lagrangian-type solver for nonlinear 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#include <any>
10
11namespace aligator {
12
14template <typename Scalar> struct HistoryCallbackTpl : CallbackBaseTpl<Scalar> {
17 template <typename Solver>
18 HistoryCallbackTpl(Solver *solver, bool store_pd_vars = false,
19 bool store_values = true)
20 : store_primal_dual_vars_(store_pd_vars)
21 , store_values_(store_values)
22 , rtti_(typeid(*solver))
23 , solver_(solver) {}
24
26
27 std::vector<std::vector<VectorXs>> xs;
28 std::vector<std::vector<VectorXs>> us;
29 std::vector<std::vector<VectorXs>> lams;
30 std::vector<Scalar> values;
31 std::vector<Scalar> merit_values;
32 std::vector<Scalar> prim_infeas;
33 std::vector<Scalar> dual_infeas;
34 std::vector<Scalar> inner_crits;
35 std::vector<std::size_t> al_index;
36 std::vector<Scalar> prim_tols;
37 std::vector<Scalar> dual_tols;
38
39 void call(const Workspace & /*workspace*/, const Results &results);
40
43
44private:
45 std::type_index rtti_;
46 std::any solver_;
47};
48
49} // namespace aligator
50
51#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
52#include "./history-callback.txx"
53#endif
Main package namespace.
Base callback class.
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
ResultsBaseTpl< Scalar > Results
HistoryCallbackTpl(Solver *solver, bool store_pd_vars=false, bool store_values=true)
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.