aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
riccati-base.hpp
Go to the documentation of this file.
1
3#pragma once
4
5#include "aligator/math.hpp"
6
7#include <optional>
8
9namespace aligator {
10namespace gar {
11
12template <typename _Scalar> class RiccatiSolverBase {
13public:
14 using Scalar = _Scalar;
16
17 virtual bool backward(const Scalar mudyn, const Scalar mueq) = 0;
18
19 virtual bool
20 forward(std::vector<VectorXs> &xs, std::vector<VectorXs> &us,
21 std::vector<VectorXs> &vs, std::vector<VectorXs> &lbdas,
22 const std::optional<ConstVectorRef> &theta_ = std::nullopt) const = 0;
23
26 virtual void collapseFeedback() {}
27 virtual VectorRef getFeedforward(size_t) = 0;
28 virtual RowMatrixRef getFeedback(size_t) = 0;
29
30 virtual ~RiccatiSolverBase() = default;
31};
32
33} // namespace gar
34} // namespace aligator
35
36#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
37#include "riccati-base.txx"
38#endif
virtual RowMatrixRef getFeedback(size_t)=0
virtual VectorRef getFeedforward(size_t)=0
virtual bool backward(const Scalar mudyn, const Scalar mueq)=0
virtual ~RiccatiSolverBase()=default
virtual bool forward(std::vector< VectorXs > &xs, std::vector< VectorXs > &us, std::vector< VectorXs > &vs, std::vector< VectorXs > &lbdas, const std::optional< ConstVectorRef > &theta_=std::nullopt) const =0
Math utilities.
Main package namespace.