3#include <proxsuite-nlp/linalg/bunchkaufman.hpp>
8#include <tracy/Tracy.hpp>
13template <
typename _Scalar>
18 using Base = RiccatiSolverBase<Scalar>;
21 using BlkVec4 = BlkMatrix<VectorXs, 4, 1>;
29 Eigen::BunchKaufman<MatrixXs>
ldl;
33 std::array<long, 4> dims = {knot.nu, knot.nc, knot.nx2, knot.nx2};
35 long ntot = std::accumulate(dims.begin(), dims.end(), 0);
43 std::vector<MatrixXs>
Pxx;
44 std::vector<MatrixXs>
Pxt;
45 std::vector<MatrixXs>
Ptt;
46 std::vector<VectorXs>
px;
47 std::vector<VectorXs>
pt;
49 BlkMatrix<MatrixXs, 2, 2>
mat;
50 BlkMatrix<VectorXs, 2, 1>
ff;
51 BlkMatrix<MatrixXs, 2, 1>
fth;
52 Eigen::BunchKaufman<MatrixXs>
ldl;
61 bool forward(std::vector<VectorXs> &xs, std::vector<VectorXs> &us,
62 std::vector<VectorXs> &vs, std::vector<VectorXs> &lbdas,
63 const std::optional<ConstVectorRef> &theta = std::nullopt)
const;
75#include "dense-riccati.hxx"
77#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
78#include "dense-riccati.txx"
A stagewise-dense Riccati solver.
ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES(Scalar)
BlkMatrix< VectorXs, 4, 1 > BlkVec4
struct aligator::gar::RiccatiSolverDense::@2 kkt0
BlkMatrix< VectorXs, 2, 1 > ff
BlkMatrix< RowMatrixXs, 4, 1 > BlkRowMat41
std::vector< MatrixXs > Pxt
std::vector< MatrixXs > Pxx
std::vector< VectorXs > pt
std::vector< VectorXs > px
static FactorData init_factor(const LQRKnotTpl< Scalar > &knot)
std::vector< MatrixXs > Ptt
VectorRef getFeedforward(size_t i)
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
BlkMatrix< MatrixXs, 4, 4 > BlkMat44
BlkMatrix< MatrixXs, 2, 2 > mat
RiccatiSolverDense(const LQRProblemTpl< Scalar > &problem)
BlkMatrix< MatrixXs, 2, 1 > fth
LQRKnotTpl< Scalar > KnotType
std::vector< FactorData > datas
Eigen::BunchKaufman< MatrixXs > ldl
const LQRProblemTpl< Scalar > * problem_
RowMatrixRef getFeedback(size_t i)
bool backward(const Scalar mudyn, const Scalar mueq)
Eigen::BunchKaufman< MatrixXs > ldl