#include <sot/core/solver-hierarchical-inequalities.hh>
Public Types | |
enum | ActivationTodoType { TODO_NOTHING, TODO_ACTIVATE, TODO_INACTIVATE } |
typedef bub::matrix< double, bub::column_major > | bubMatrixQRWide |
typedef bub::matrix_range < bubMatrixQRWide > | bubMatrixQR |
typedef bub::matrix_range < const bubMatrixQRWide > | bubMatrixQRConst |
typedef bub::triangular_adaptor < bubMatrixQR, bub::upper > | bubMatrixQRTri |
typedef bub::triangular_adaptor < bubMatrixQRConst, bub::upper > | bubMatrixQRTriConst |
typedef bub::indirect_array | bubOrder |
typedef bub::matrix_indirect < bubMatrix > | bubMatrixOrdered |
typedef bub::matrix_indirect < bubMatrixQRWide > | bubMatrixQRWideOrdered |
typedef bub::matrix_indirect < bubMatrixQR > | bubMatrixQROrdered |
typedef bub::triangular_adaptor < bubMatrixQROrdered, bub::upper > | bubMatrixQROrderedTri |
typedef bub::matrix_indirect < const bubMatrixQRWide > | bubMatrixQRWideOrderedConst |
typedef bub::matrix_indirect < bubMatrixQRConst > | bubMatrixQROrderedConst |
typedef bub::triangular_adaptor < bubMatrixQROrderedConst, bub::upper > | bubMatrixQROrderedTriConst |
typedef std::vector < ConstraintMem > | ConstraintList |
typedef std::vector < ConstraintMem * > | ConstraintRefList |
Public Member Functions | |
SolverHierarchicalInequalities (unsigned int _nJ, sotRotationComposedInExtenso &_Qh, bubMatrix &_Rh, ConstraintList &_cH) | |
void | initConstraintSize (const unsigned int size) |
void | setInitialCondition (const bubVector &_u0, const unsigned int _rankh) |
void | setInitialConditionVoid (void) |
void | setNbDof (const unsigned int nJ) |
unsigned int | getNbDof (void) |
void | recordInitialConditions (void) |
void | computeDifferentialCondition (void) |
const std::vector < ConstraintRef > & | getToActivateList (void) const |
const std::vector < ConstraintRef > & | getToInactivateList (void) const |
const bubVector & | getDifferentialU0 (void) const |
const std::vector < ConstraintRef > & | getSlackActiveSet (void) const |
void | printDifferentialCondition (std::ostream &os) const |
bub::range | fullrange (void) const |
bub::range | rangeh (void) const |
bub::range | rangehs (void) const |
bub::range | freerange (void) const |
bub::range | freeranges (void) const |
bubMatrixQROrderedTriConst | accessRsConst (void) const |
bub::triangular_adaptor < bub::matrix_range< const bubMatrix >, bub::upper > | accessRhConst (void) const |
bub::triangular_adaptor < bub::matrix_range< bubMatrix > , bub::upper > | accessRh (void) |
template<typename bubTemplateMatrix > | |
unsigned int | rankDetermination (const bubTemplateMatrix &A, const double threshold=THRESHOLD_ZERO) |
void | printDebug (void) |
void | warmStart (void) |
void | applyFreeSpaceMotion (const bubVector &_du) |
void | forceUpdateHierachic (ConstraintRefList &toUpdate, const ConstraintMem::BoundSideVector &boundSide) |
void | forceDowndateHierachic (ConstraintRefList &toDowndate) |
void | solve (const bubMatrix &Jse, const bubVector &ese, const bubMatrix &Jsi, const bubVector &esiInf, const bubVector &esiSup, const std::vector< ConstraintMem::BoundSideType > esiBoundSide, bool pushBackAtTheEnd=true) |
void | solve (const bubMatrix &Jse, const bubVector &ese, const bubMatrix &Jsi, const bubVector &esiInf, const bubVector &esiSup, const ConstraintMem::BoundSideVector &esiBoundSide, const std::vector< ConstraintRef > &slackActiveWarmStart, bool pushBackAtTheEnd=true) |
void | initializeConstraintMemory (const bubMatrix &Jse, const bubVector &ese, const bubMatrix &Jsi, const bubVector &esiInf, const bubVector &esiSup, const ConstraintMem::BoundSideVector &esiBoundSide, const std::vector< ConstraintRef > &warmStartSide) |
void | initializeDecompositionSlack (void) |
void | updateConstraintHierarchic (const unsigned int constraintId, const ConstraintMem::BoundSideType side) |
void | downdateConstraintHierarchic (const unsigned int kdown) |
void | updateRankOneDowndate (void) |
void | updateRankOneUpdate (void) |
void | updateConstraintSlack (const unsigned int kup, const ConstraintMem::BoundSideType activeSide) |
void | regularizeQhJs (void) |
void | regularizeQhJsU (void) |
void | downdateConstraintSlack (const unsigned int kdown) |
void | computeGradient (bubVector &gradientWide) |
void | computePrimal (void) |
void | computeSlack (void) |
void | computeLagrangian (void) |
bool | selecActivationHierarchic (double &tau) |
bool | selecInactivationHierarchic (void) |
bool | selecActivationSlack (void) |
bool | selecInactivationSlack (void) |
void | pushBackSlackToHierarchy (void) |
Static Public Member Functions | |
static void | displayConstraint (ConstraintList &cs) |
Public Attributes | |
unsigned int | nJ |
bubVector | u0 |
sotRotationComposedInExtenso & | Qh |
bubMatrix & | Rh |
unsigned int | rankh |
unsigned int | freeRank |
ConstraintList & | constraintH |
bool | Hactivation |
bool | Hinactivation |
unsigned int | HactivationRef |
unsigned int | HinactivationRef |
ConstraintMem::BoundSideType | HactivationSide |
bubMatrixQRWide | QhJsU |
bubMatrixQRWide | QhJs |
unsigned int | ranks |
unsigned int | sizes |
bubOrder | orderS |
ConstraintList | constraintS |
ConstraintRefList | constraintSactive |
bool | Sactivation |
bool | Sinactivation |
unsigned int | SactivationRef |
unsigned int | SinactivationRef |
ConstraintMem::BoundSideType | SactivationSide |
double | SactivationScore |
double | SinactivationScore |
double | HactivationScore |
double | HinactivationScore |
bubVector | du |
bubVector | slackInf |
bubVector | slackSup |
bubVector | lagrangian |
sotRotationComposed | lastRotation |
int | freeRankChange |
std::vector< bool > | initialActiveH |
ConstraintMem::BoundSideVector | initialSideH |
bubVector | du0 |
std::vector< ConstraintRef > | slackActiveSet |
std::vector< ConstraintRef > | toActivate |
std::vector< ConstraintRef > | toInactivate |
bool | warmStartReady |
Static Public Attributes | |
static double | THRESHOLD_ZERO |
typedef bub::matrix_indirect<bubMatrix> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixOrdered |
typedef bub::matrix_range<bubMatrixQRWide> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQR |
typedef bub::matrix_range<const bubMatrixQRWide> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQRConst |
typedef bub::matrix_indirect<bubMatrixQR> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQROrdered |
typedef bub::matrix_indirect<bubMatrixQRConst> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQROrderedConst |
typedef bub::triangular_adaptor<bubMatrixQROrdered,bub::upper> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQROrderedTri |
typedef bub::triangular_adaptor<bubMatrixQROrderedConst,bub::upper> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQROrderedTriConst |
typedef bub::triangular_adaptor<bubMatrixQR,bub::upper> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQRTri |
typedef bub::triangular_adaptor<bubMatrixQRConst,bub::upper> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQRTriConst |
typedef bub::matrix<double,bub::column_major> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQRWide |
typedef bub::matrix_indirect<bubMatrixQRWide> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQRWideOrdered |
typedef bub::matrix_indirect<const bubMatrixQRWide> dynamicgraph::sot::SolverHierarchicalInequalities::bubMatrixQRWideOrderedConst |
typedef bub::indirect_array dynamicgraph::sot::SolverHierarchicalInequalities::bubOrder |
typedef std::vector<ConstraintMem> dynamicgraph::sot::SolverHierarchicalInequalities::ConstraintList |
typedef std::vector<ConstraintMem*> dynamicgraph::sot::SolverHierarchicalInequalities::ConstraintRefList |
dynamicgraph::sot::SolverHierarchicalInequalities::SolverHierarchicalInequalities | ( | unsigned int | _nJ, |
sotRotationComposedInExtenso & | _Qh, | ||
bubMatrix & | _Rh, | ||
ConstraintList & | _cH | ||
) | [inline] |
bub::triangular_adaptor<bub::matrix_range< bubMatrix >,bub::upper> dynamicgraph::sot::SolverHierarchicalInequalities::accessRh | ( | void | ) |
bub::triangular_adaptor<bub::matrix_range< const bubMatrix >,bub::upper> dynamicgraph::sot::SolverHierarchicalInequalities::accessRhConst | ( | void | ) | const |
bubMatrixQROrderedTriConst dynamicgraph::sot::SolverHierarchicalInequalities::accessRsConst | ( | void | ) | const |
void dynamicgraph::sot::SolverHierarchicalInequalities::applyFreeSpaceMotion | ( | const bubVector & | _du | ) |
void dynamicgraph::sot::SolverHierarchicalInequalities::computeGradient | ( | bubVector & | gradientWide | ) |
static void dynamicgraph::sot::SolverHierarchicalInequalities::displayConstraint | ( | ConstraintList & | cs | ) | [static] |
void dynamicgraph::sot::SolverHierarchicalInequalities::downdateConstraintHierarchic | ( | const unsigned int | kdown | ) |
void dynamicgraph::sot::SolverHierarchicalInequalities::downdateConstraintSlack | ( | const unsigned int | kdown | ) |
void dynamicgraph::sot::SolverHierarchicalInequalities::forceDowndateHierachic | ( | ConstraintRefList & | toDowndate | ) |
void dynamicgraph::sot::SolverHierarchicalInequalities::forceUpdateHierachic | ( | ConstraintRefList & | toUpdate, |
const ConstraintMem::BoundSideVector & | boundSide | ||
) |
bub::range dynamicgraph::sot::SolverHierarchicalInequalities::freerange | ( | void | ) | const [inline] |
bub::range dynamicgraph::sot::SolverHierarchicalInequalities::freeranges | ( | void | ) | const [inline] |
bub::range dynamicgraph::sot::SolverHierarchicalInequalities::fullrange | ( | void | ) | const [inline] |
const bubVector& dynamicgraph::sot::SolverHierarchicalInequalities::getDifferentialU0 | ( | void | ) | const [inline] |
unsigned int dynamicgraph::sot::SolverHierarchicalInequalities::getNbDof | ( | void | ) | [inline] |
const std::vector<ConstraintRef>& dynamicgraph::sot::SolverHierarchicalInequalities::getSlackActiveSet | ( | void | ) | const [inline] |
const std::vector<ConstraintRef>& dynamicgraph::sot::SolverHierarchicalInequalities::getToActivateList | ( | void | ) | const [inline] |
const std::vector<ConstraintRef>& dynamicgraph::sot::SolverHierarchicalInequalities::getToInactivateList | ( | void | ) | const [inline] |
void dynamicgraph::sot::SolverHierarchicalInequalities::initConstraintSize | ( | const unsigned int | size | ) |
void dynamicgraph::sot::SolverHierarchicalInequalities::initializeConstraintMemory | ( | const bubMatrix & | Jse, |
const bubVector & | ese, | ||
const bubMatrix & | Jsi, | ||
const bubVector & | esiInf, | ||
const bubVector & | esiSup, | ||
const ConstraintMem::BoundSideVector & | esiBoundSide, | ||
const std::vector< ConstraintRef > & | warmStartSide | ||
) |
void dynamicgraph::sot::SolverHierarchicalInequalities::printDifferentialCondition | ( | std::ostream & | os | ) | const |
bub::range dynamicgraph::sot::SolverHierarchicalInequalities::rangeh | ( | void | ) | const [inline] |
bub::range dynamicgraph::sot::SolverHierarchicalInequalities::rangehs | ( | void | ) | const [inline] |
unsigned int dynamicgraph::sot::SolverHierarchicalInequalities::rankDetermination | ( | const bubTemplateMatrix & | A, |
const double | threshold = THRESHOLD_ZERO |
||
) |
bool dynamicgraph::sot::SolverHierarchicalInequalities::selecActivationHierarchic | ( | double & | tau | ) |
void dynamicgraph::sot::SolverHierarchicalInequalities::setInitialCondition | ( | const bubVector & | _u0, |
const unsigned int | _rankh | ||
) |
void dynamicgraph::sot::SolverHierarchicalInequalities::setNbDof | ( | const unsigned int | nJ | ) |
void dynamicgraph::sot::SolverHierarchicalInequalities::solve | ( | const bubMatrix & | Jse, |
const bubVector & | ese, | ||
const bubMatrix & | Jsi, | ||
const bubVector & | esiInf, | ||
const bubVector & | esiSup, | ||
const std::vector< ConstraintMem::BoundSideType > | esiBoundSide, | ||
bool | pushBackAtTheEnd = true |
||
) |
void dynamicgraph::sot::SolverHierarchicalInequalities::solve | ( | const bubMatrix & | Jse, |
const bubVector & | ese, | ||
const bubMatrix & | Jsi, | ||
const bubVector & | esiInf, | ||
const bubVector & | esiSup, | ||
const ConstraintMem::BoundSideVector & | esiBoundSide, | ||
const std::vector< ConstraintRef > & | slackActiveWarmStart, | ||
bool | pushBackAtTheEnd = true |
||
) |
void dynamicgraph::sot::SolverHierarchicalInequalities::updateConstraintHierarchic | ( | const unsigned int | constraintId, |
const ConstraintMem::BoundSideType | side | ||
) |
void dynamicgraph::sot::SolverHierarchicalInequalities::updateConstraintSlack | ( | const unsigned int | kup, |
const ConstraintMem::BoundSideType | activeSide | ||
) |
std::vector<bool> dynamicgraph::sot::SolverHierarchicalInequalities::initialActiveH |