1#ifndef ROBOTOC_SPLIT_KKT_MATRIX_HXX_ 
    2#define ROBOTOC_SPLIT_KKT_MATRIX_HXX_ 
   13  assert(
dimf <= Phit_full_.size());
 
   20  assert(
dims <= Phit_full_.size());
 
   26  return Fxx.topLeftCorner(dimv_, dimv_);
 
   31  return Fxx.topLeftCorner(dimv_, dimv_);
 
   36  return Fxx.topRightCorner(dimv_, dimv_);
 
   41  return Fxx.topRightCorner(dimv_, dimv_);
 
   46  return Fxx.bottomLeftCorner(dimv_, dimv_);
 
   51  return Fxx.bottomLeftCorner(dimv_, dimv_);
 
   56  return Fxx.bottomRightCorner(dimv_, dimv_);
 
   61  return Fxx.bottomRightCorner(dimv_, dimv_);
 
   66  return fx.head(dimv_);
 
   71  return fx.head(dimv_);
 
   76  return fx.tail(dimv_);
 
   81  return fx.tail(dimv_);
 
   86  return Phix_full_.topLeftCorner(dims_, dimx_);
 
   91  return Phix_full_.topLeftCorner(dims_, dimx_);
 
   96  return Phix_full_.topLeftCorner(dims_, dimv_);
 
  101  return Phix_full_.topLeftCorner(dims_, dimv_);
 
  106  return Phix_full_.topRightCorner(dims_, dimv_);
 
  111  return Phix_full_.topRightCorner(dims_, dimv_);
 
  116  return Phia_full_.topLeftCorner(dims_, dimv_);
 
  121  return Phia_full_.topLeftCorner(dims_, dimv_);
 
  126  return Phiu_full_.topLeftCorner(dims_, dimu_);
 
  131  return Phiu_full_.topLeftCorner(dims_, dimu_);
 
  136  return Phit_full_.head(dims_);
 
  141  return Phit_full_.head(dims_);
 
  146  return Qxx.topLeftCorner(dimv_, dimv_);
 
  151  return Qxx.topLeftCorner(dimv_, dimv_);
 
  156  return Qxx.topRightCorner(dimv_, dimv_);
 
  161  return Qxx.topRightCorner(dimv_, dimv_);
 
  166  return Qxx.bottomLeftCorner(dimv_, dimv_);
 
  171  return Qxx.bottomLeftCorner(dimv_, dimv_);
 
  176  return Qxx.bottomRightCorner(dimv_, dimv_);
 
  181  return Qxx.bottomRightCorner(dimv_, dimv_);
 
  186  return Qxu.topLeftCorner(dimv_, dimu_);
 
  191  return Qxu.topLeftCorner(dimv_, dimu_);
 
  196  return Qxu.bottomLeftCorner(dimv_, dimu_);
 
  201  return Qxu.bottomLeftCorner(dimv_, dimu_);
 
  206  return Qff_full_.topLeftCorner(dimf_, dimf_);
 
  211  return Qff_full_.topLeftCorner(dimf_, dimf_);
 
  216  return Qqf_full_.topLeftCorner(dimv_, dimf_);
 
  221  return Qqf_full_.topLeftCorner(dimv_, dimf_);
 
  226  return hx.head(dimv_);
 
  231  return hx.head(dimv_);
 
  236  return hx.tail(dimv_);
 
  241  return hx.tail(dimv_);
 
  246  return hf_full_.head(dimf_);
 
  251  return hf_full_.head(dimf_);
 
int dimf() const
Returns the dimension of the stack of contact forces at the current contact status.
Definition: split_kkt_matrix.hxx:279
 
Eigen::Block< Eigen::MatrixXd > Phiu()
Jacobian of the swithcing constraint w.r.t. u.
Definition: split_kkt_matrix.hxx:125
 
Eigen::Block< Eigen::MatrixXd > Fqq()
Jacobian of the state equation (w.r.t. q) w.r.t. q.
Definition: split_kkt_matrix.hxx:25
 
Eigen::Block< Eigen::MatrixXd > Fqv()
Jacobian of the state equation (w.r.t. q) w.r.t. v.
Definition: split_kkt_matrix.hxx:35
 
void setContactDimension(const int dimf)
Sets contact status, i.e., set dimension of the contact forces.
Definition: split_kkt_matrix.hxx:11
 
Eigen::VectorXd fx
Derivative of the discrete time state equation w.r.t. the length of the time interval.
Definition: split_kkt_matrix.hpp:130
 
Eigen::MatrixXd Fvu
Jacobian of the state equation (w.r.t. v) w.r.t. u.
Definition: split_kkt_matrix.hpp:124
 
Eigen::MatrixXd Qaa
Hessian w.r.t. the acceleration a and acceleration a.
Definition: split_kkt_matrix.hpp:281
 
Eigen::Block< Eigen::MatrixXd > Phix()
Jacobian of the swithcing constraint w.r.t. x.
Definition: split_kkt_matrix.hxx:85
 
Eigen::MatrixXd Qxu
Hessian w.r.t. the state x and the control input torques u.
Definition: split_kkt_matrix.hpp:291
 
Eigen::Block< Eigen::MatrixXd > Qqu()
Hessian of the Lagrangian with respect to the configuration q and control input torques u.
Definition: split_kkt_matrix.hxx:185
 
Eigen::Block< Eigen::MatrixXd > Qff()
Hessian of the Lagrangian with respect to the contact forces f.
Definition: split_kkt_matrix.hxx:205
 
Eigen::VectorXd hx
Derivative of the Hamiltonian w.r.t. the state.
Definition: split_kkt_matrix.hpp:361
 
Eigen::Block< Eigen::MatrixXd > Qvv()
Hessian w.r.t. the joint velocity v and joint velocity v.
Definition: split_kkt_matrix.hxx:175
 
Eigen::MatrixXd Fxx
Jacobian of the state equation w.r.t. the state x.
Definition: split_kkt_matrix.hpp:71
 
Eigen::VectorBlock< Eigen::VectorXd > fv()
Derivative of the discrete-time state equation w.r.t. the velocity v w.r.t. the length of the time in...
Definition: split_kkt_matrix.hxx:75
 
Eigen::Block< Eigen::MatrixXd > Phia()
Jacobian of the swithcing constraint w.r.t. a.
Definition: split_kkt_matrix.hxx:115
 
Eigen::Block< Eigen::MatrixXd > Fvv()
Jacobian of the state equation (w.r.t. v) to v.
Definition: split_kkt_matrix.hxx:55
 
Eigen::VectorXd hu
Derivative of the Hamiltonian w.r.t. the control input.
Definition: split_kkt_matrix.hpp:388
 
Eigen::Block< Eigen::MatrixXd > Phiq()
Jacobian of the swithcing constraint w.r.t. q.
Definition: split_kkt_matrix.hxx:95
 
Eigen::Block< Eigen::MatrixXd > Qqq()
Hessian w.r.t. the configuration q and configuration q.
Definition: split_kkt_matrix.hxx:145
 
Eigen::Block< Eigen::MatrixXd > Qvu()
Hessian of the Lagrangian with respect to the velocity v and control input torques u.
Definition: split_kkt_matrix.hxx:195
 
Eigen::MatrixXd Quu
Hessian w.r.t. the control input torques u and the control input torques u.
Definition: split_kkt_matrix.hpp:321
 
Eigen::Block< Eigen::MatrixXd > Qqf()
Hessian of the Lagrangian with respect to the configuration and contact forces.
Definition: split_kkt_matrix.hxx:215
 
Eigen::VectorBlock< Eigen::VectorXd > Phit()
Jacobian of the swithcing constraint w.r.t. the switching time.
Definition: split_kkt_matrix.hxx:135
 
double Qtt
Hessian of the Lagrangian w.r.t. the switching time.
Definition: split_kkt_matrix.hpp:351
 
void setZero()
Set the all components zero.
Definition: split_kkt_matrix.hxx:255
 
void setSwitchingConstraintDimension(const int dims)
Sets the dimension of the switching constraint.
Definition: split_kkt_matrix.hxx:18
 
Eigen::Block< Eigen::MatrixXd > Qqv()
Hessian w.r.t. the configuration q and joint velocity v.
Definition: split_kkt_matrix.hxx:155
 
Eigen::VectorBlock< Eigen::VectorXd > hq()
Derivative of the Hamiltonian w.r.t. the configuration q.
Definition: split_kkt_matrix.hxx:225
 
Eigen::Block< Eigen::MatrixXd > Fvq()
Jacobian of the state equation (w.r.t. v) w.r.t. q.
Definition: split_kkt_matrix.hxx:45
 
Eigen::MatrixXd Qdvdv
Hessian w.r.t. the impact change in the velocity ddv.
Definition: split_kkt_matrix.hpp:286
 
Eigen::Block< Eigen::MatrixXd > Phiv()
Jacobian of the swithcing constraint w.r.t. v.
Definition: split_kkt_matrix.hxx:105
 
double Qtt_prev
Hessian of the Lagrangian w.r.t. the previoius switching time.
Definition: split_kkt_matrix.hpp:356
 
int dims() const
Returns the dimension of the stack of the contact forces at the current contact status.
Definition: split_kkt_matrix.hxx:284
 
Eigen::VectorBlock< Eigen::VectorXd > hv()
Derivative of the Hamiltonian w.r.t. the velocity v.
Definition: split_kkt_matrix.hxx:235
 
Eigen::VectorXd ha
Derivative of the Hamiltonian w.r.t. the acceleration.
Definition: split_kkt_matrix.hpp:393
 
Eigen::VectorBlock< Eigen::VectorXd > fq()
Derivative of the discrete-time state equation w.r.t. the configuration q w.r.t. the length of the ti...
Definition: split_kkt_matrix.hxx:65
 
Eigen::MatrixXd Qxx
Hessian w.r.t. to the state x and state x.
Definition: split_kkt_matrix.hpp:232
 
Eigen::Block< Eigen::MatrixXd > Qvq()
Hessian w.r.t. the joint velocity v and configuration q.
Definition: split_kkt_matrix.hxx:165
 
Eigen::VectorBlock< Eigen::VectorXd > hf()
Derivative of the Hamiltonian w.r.t. the stack of the contact forces f.
Definition: split_kkt_matrix.hxx:245
 
Definition: constraint_component_base.hpp:17