1#ifndef ROBOTOC_SPLIT_DIRECTION_HXX_
2#define ROBOTOC_SPLIT_DIRECTION_HXX_
12 assert(
dimf <= dxi_full_.size());
19 assert(
dims <= dxi_full_.size());
26 return dx.head(dimv_);
30inline const Eigen::VectorBlock<const Eigen::VectorXd>
33 return dx.head(dimv_);
39 return dx.tail(dimv_);
43inline const Eigen::VectorBlock<const Eigen::VectorXd>
46 return dx.tail(dimv_);
51 return daf_full_.head(dimv_+dimf_);
55inline const Eigen::VectorBlock<const Eigen::VectorXd>
57 return daf_full_.head(dimv_+dimf_);
62 return daf_full_.head(dimv_);
66inline const Eigen::VectorBlock<const Eigen::VectorXd>
68 return daf_full_.head(dimv_);
77inline const Eigen::VectorBlock<const Eigen::VectorXd>
88inline const Eigen::VectorBlock<const Eigen::VectorXd>
95 return daf_full_.segment(dimv_, dimf_);
99inline const Eigen::VectorBlock<const Eigen::VectorXd>
101 return daf_full_.segment(dimv_, dimf_);
111inline const Eigen::VectorBlock<const Eigen::VectorXd>
124inline const Eigen::VectorBlock<const Eigen::VectorXd>
132 return dbetamu_full_.head(dimv_+dimf_);
136inline const Eigen::VectorBlock<const Eigen::VectorXd>
138 return dbetamu_full_.head(dimv_+dimf_);
143 return dbetamu_full_.head(dimv_);
147inline const Eigen::VectorBlock<const Eigen::VectorXd>
149 return dbetamu_full_.head(dimv_);
154 return dbetamu_full_.segment(dimv_, dimf_);
158inline const Eigen::VectorBlock<const Eigen::VectorXd>
160 return dbetamu_full_.segment(dimv_, dimf_);
165 return dxi_full_.head(dims_);
169inline const Eigen::VectorBlock<const Eigen::VectorXd>
171 return dxi_full_.head(dims_);
Eigen::VectorXd dx
Stack of the Newton directions of SplitSolution::q and SplitSolution::v. Size is 2 * Robot::dimv().
Definition: split_direction.hpp:74
void setContactDimension(const int dimf)
Sets contact status, i.e., set dimension of the contact forces.
Definition: split_direction.hxx:10
Eigen::VectorBlock< Eigen::VectorXd > da()
Newton direction of SplitSolution::a. Size is Robot::dimv().
Definition: split_direction.hxx:61
int dims() const
Returns the dimension of the switching constraint.
Definition: split_direction.hxx:193
double dts
Newton direction of the switching time.
Definition: split_direction.hpp:245
Eigen::VectorBlock< Eigen::VectorXd > dv()
Newton direction of SplitSolution::gmm. Size is Robot::dimv().
Definition: split_direction.hxx:37
Eigen::VectorBlock< Eigen::VectorXd > dbeta()
Newton direction of SplitSolution::beta. Size is Robot::dimv().
Definition: split_direction.hxx:142
Eigen::VectorXd du
Newton direction of SplitSolution::u. Size is Robot::dimu().
Definition: split_direction.hpp:101
Eigen::VectorXd dnu_passive
Newton direction of SplitSolution::nu_passive. Size is Robot::dim_passive().
Definition: split_direction.hpp:228
Eigen::VectorBlock< Eigen::VectorXd > dbetamu()
Stack of the Newton direction of SplitSolution::beta and SplitSolution::mu_stack()....
Definition: split_direction.hxx:131
Eigen::VectorBlock< Eigen::VectorXd > dgmm()
Newton direction of SplitSolution::gmm. Size is Robot::dimv().
Definition: split_direction.hxx:118
double dts_next
Newton direction of the next switching time.
Definition: split_direction.hpp:250
Eigen::VectorBlock< Eigen::VectorXd > ddvf()
Stack of Newton direction of SplitSolution::dv and SplitSolution::f. Size is Robot::dimv() + ContactS...
Definition: split_direction.hxx:72
Eigen::VectorBlock< Eigen::VectorXd > ddv()
Newton direction of SplitSolution::dv. Size is Robot::dimv().
Definition: split_direction.hxx:83
Eigen::VectorBlock< Eigen::VectorXd > dmu()
Newton direction of SplitSolution::mu_stack(). Size is SplitSolution::dimf().
Definition: split_direction.hxx:153
Eigen::VectorBlock< Eigen::VectorXd > dlmd()
Newton direction of SplitSolution::lmd. Size is Robot::dimv().
Definition: split_direction.hxx:105
void setSwitchingConstraintDimension(const int dims)
Sets the dimension of the switching constraint.
Definition: split_direction.hxx:17
Eigen::VectorBlock< Eigen::VectorXd > daf()
Stack of Newton direction of SplitSolution::a and SplitSolution::f. Size is Robot::dimv() + ContactSt...
Definition: split_direction.hxx:50
Eigen::VectorXd dlmdgmm
Stack of the Newton direction of SplitSolution::lmd and SplitSolution::gmm. Size is 2 * Robot::dimv()...
Definition: split_direction.hpp:165
Eigen::VectorBlock< Eigen::VectorXd > df()
Newton direction of SplitSolution::f_stack(). Size is ContactStatus::dimf().
Definition: split_direction.hxx:94
int dimf() const
Returns the dimension of the contact.
Definition: split_direction.hxx:188
Eigen::VectorBlock< Eigen::VectorXd > dxi()
Newton direction of SplitSolution::xi_stack(). Size is SplitSolution::dims().
Definition: split_direction.hxx:164
Eigen::VectorBlock< Eigen::VectorXd > dq()
Newton direction of SplitSolution::q. Size is Robot::dimv().
Definition: split_direction.hxx:24
bool isDimensionConsistent() const
Checks dimensional consistency of each component.
void setZero()
Set the all directions zero.
Definition: split_direction.hxx:175
Definition: constraint_component_base.hpp:17