23 void initialize(
OcpBase* ocp_description,
24 bool compute_objective_first_derivatives =
false,
bool compute_dynamics_first_derivatives =
false,
25 bool compute_objective_second_derivatives =
false,
bool compute_dynamics_second_derivatives =
false);
26 const OcpBase* getOcpDescription()
const {
return ocp_; }
27 void computeDerivatives();
29 Eigen::MatrixXd& fx(
int time_id) {
return fx_seq_[time_id]; }
30 Eigen::MatrixXd& fu(
int time_id) {
return fu_seq_[time_id]; }
31 const Eigen::MatrixXd& fx(
int time_id)
const {
return fx_seq_[time_id]; }
32 const Eigen::MatrixXd& fu(
int time_id)
const {
return fu_seq_[time_id]; }
33 std::vector<Eigen::MatrixXd>& fxx(
int time_id) {
return fxx_seq_[time_id]; }
34 std::vector<Eigen::MatrixXd>& fxu(
int time_id) {
return fxu_seq_[time_id]; }
35 std::vector<Eigen::MatrixXd>& fuu(
int time_id) {
return fuu_seq_[time_id]; }
36 const std::vector<Eigen::MatrixXd>& fxx(
int time_id)
const {
return fxx_seq_[time_id]; }
37 const std::vector<Eigen::MatrixXd>& fxu(
int time_id)
const {
return fxu_seq_[time_id]; }
38 const std::vector<Eigen::MatrixXd>& fuu(
int time_id)
const {
return fuu_seq_[time_id]; }
40 Eigen::VectorXd& cx(
int time_id) {
return cx_seq_[time_id]; }
41 Eigen::VectorXd& cu(
int time_id) {
return cu_seq_[time_id]; }
42 Eigen::MatrixXd& cxx(
int time_id) {
return cxx_seq_[time_id]; }
43 Eigen::MatrixXd& cxu(
int time_id) {
return cxu_seq_[time_id]; }
44 Eigen::MatrixXd& cuu(
int time_id) {
return cuu_seq_[time_id]; }
45 const Eigen::VectorXd& cx(
int time_id)
const {
return cx_seq_[time_id]; }
46 const Eigen::VectorXd& cu(
int time_id)
const {
return cu_seq_[time_id]; }
47 const Eigen::MatrixXd& cxx(
int time_id)
const {
return cxx_seq_[time_id]; }
48 const Eigen::MatrixXd& cxu(
int time_id)
const {
return cxu_seq_[time_id]; }
49 const Eigen::MatrixXd& cuu(
int time_id)
const {
return cuu_seq_[time_id]; }
52 void computeDynamicsFirstDerivatives();
53 void computeDynamicsSecondDerivatives();
54 void computeObjectiveFirstDerivatives();
55 void computeObjectiveSecondDerivatives();
58 std::vector<Eigen::VectorXd> cx_seq_;
59 std::vector<Eigen::VectorXd> cu_seq_;
60 std::vector<Eigen::MatrixXd> cxx_seq_;
61 std::vector<Eigen::MatrixXd> cxu_seq_;
62 std::vector<Eigen::MatrixXd> cuu_seq_;
64 std::vector<Eigen::MatrixXd> fx_seq_;
65 std::vector<Eigen::MatrixXd> fu_seq_;
66 std::vector<std::vector<Eigen::MatrixXd>> fxx_seq_;
67 std::vector<std::vector<Eigen::MatrixXd>> fxu_seq_;
68 std::vector<std::vector<Eigen::MatrixXd>> fuu_seq_;
72 int tdim_, xdim_, udim_;
73 bool is_initialized_, compute_objective_first_derivatives_, compute_dynamics_first_derivatives_,
74 compute_objective_second_derivatives_, compute_dynamics_second_derivatives_;
Definition: FiniteDifferences.hpp:17
Definition: BackwardPass.hpp:15
Optimal Control Problem Description Class.
Definition: OcpDescription.hpp:115