robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
split_constrained_riccati_factorization.hpp
Go to the documentation of this file.
1#ifndef ROBOTOC_SPLIT_CONSTRAINTED_RICCATI_FACTORIZATION_HPP_
2#define ROBOTOC_SPLIT_CONSTRAINTED_RICCATI_FACTORIZATION_HPP_
3
4#include <vector>
5
6#include "Eigen/Core"
7
10
11namespace robotoc {
12
18public:
25
30
35
41
47
52 SplitConstrainedRiccatiFactorization&&) noexcept = default;
53
58 SplitConstrainedRiccatiFactorization&&) noexcept = default;
59
60 void setConstraintDimension(const int dimi=0);
61
62 int dims() const;
63
64 Eigen::Block<Eigen::MatrixXd> DGinv();
65
66 const Eigen::Block<const Eigen::MatrixXd> DGinv() const;
67
68 Eigen::Block<Eigen::MatrixXd> S();
69
70 const Eigen::Block<const Eigen::MatrixXd> S() const;
71
72 Eigen::Block<Eigen::MatrixXd> Sinv();
73
74 const Eigen::Block<const Eigen::MatrixXd> Sinv() const;
75
76 Eigen::Block<Eigen::MatrixXd> SinvDGinv();
77
78 const Eigen::Block<const Eigen::MatrixXd> SinvDGinv() const;
79
80 Eigen::MatrixXd Ginv;
81
82 Eigen::MatrixXd DtM;
83
84 Eigen::MatrixXd KtDtM;
85
86 bool isApprox(const SplitConstrainedRiccatiFactorization& other) const;
87
88 bool hasNaN() const;
89
93 void disp(std::ostream& os) const;
94
95 friend std::ostream& operator<<(
96 std::ostream& os, const SplitConstrainedRiccatiFactorization& c_riccati);
97
98private:
99 Eigen::MatrixXd DGinv_full_, S_full_, Sinv_full_, SinvDGinv_full_;
100 int dimv_, dimx_, dimu_, dims_;
101
102};
103
104} // namespace robotoc
105
106#include "robotoc/riccati/split_constrained_riccati_factorization.hxx"
107
108#endif // ROBOTOC_SPLIT_CONSTRAINTED_RICCATI_FACTORIZATION_HPP_
Dynamics and kinematics model of robots. Wraps pinocchio::Model and pinocchio::Data....
Definition: robot.hpp:32
Riccati factorization matrix and vector for the switching constraint.
Definition: split_constrained_riccati_factorization.hpp:17
void disp(std::ostream &os) const
Displays the split constrained Riccati factorization onto a ostream.
Eigen::Block< Eigen::MatrixXd > SinvDGinv()
Definition: split_constrained_riccati_factorization.hxx:95
SplitConstrainedRiccatiFactorization()
Default constructor.
Definition: split_constrained_riccati_factorization.hxx:27
Eigen::Block< Eigen::MatrixXd > S()
Definition: split_constrained_riccati_factorization.hxx:71
void setConstraintDimension(const int dimi=0)
Definition: split_constrained_riccati_factorization.hxx:47
Eigen::Block< Eigen::MatrixXd > Sinv()
Definition: split_constrained_riccati_factorization.hxx:83
Eigen::MatrixXd KtDtM
Definition: split_constrained_riccati_factorization.hpp:84
~SplitConstrainedRiccatiFactorization()
Destructor.
Definition: split_constrained_riccati_factorization.hxx:43
bool hasNaN() const
Definition: split_constrained_riccati_factorization.hxx:120
int dims() const
Definition: split_constrained_riccati_factorization.hxx:53
Eigen::MatrixXd DtM
Definition: split_constrained_riccati_factorization.hpp:82
bool isApprox(const SplitConstrainedRiccatiFactorization &other) const
Definition: split_constrained_riccati_factorization.hxx:106
Eigen::MatrixXd Ginv
Definition: split_constrained_riccati_factorization.hpp:80
Eigen::Block< Eigen::MatrixXd > DGinv()
Definition: split_constrained_riccati_factorization.hxx:59
SplitConstrainedRiccatiFactorization & operator=(const SplitConstrainedRiccatiFactorization &)=default
Default copy operator.
SplitConstrainedRiccatiFactorization(const SplitConstrainedRiccatiFactorization &)=default
Default copy constructor.
SplitConstrainedRiccatiFactorization(SplitConstrainedRiccatiFactorization &&) noexcept=default
Default move constructor.
Definition: constraint_component_base.hpp:17