29#ifndef HPP_CONSTRAINTS_SOLVER_BY_SUBSTITUTION_HH 
   30#define HPP_CONSTRAINTS_SOLVER_BY_SUBSTITUTION_HH 
   40namespace constraints {
 
   86           const std::size_t& priority = 0);
 
  103    return explicitConstraintSet().notOutDers().nbIndices();
 
 
  109  template <
typename LineSearchType>
 
  111    return solve<LineSearchType>(arg, 
false, ls);
 
 
  114  template <
typename LineSearchType>
 
  116               LineSearchType ls = LineSearchType())
 const {
 
  123    return impl_solve(arg, optimize, ls);
 
 
  195    return dimension() + explicit_.outDers().nbIndices();
 
 
  202    return solver::HierarchicalIterative::isSatisfied(arg) &&
 
  203           explicit_.isSatisfied(arg);
 
 
  211    return solver::HierarchicalIterative::isSatisfied(arg, errorThreshold) &&
 
  212           explicit_.isSatisfied(arg, errorThreshold);
 
 
  220    assert(error.size() == dimension() + explicit_.errorSize());
 
  221    bool iterative = solver::HierarchicalIterative::isSatisfied(arg);
 
  222    residualError(error.head(dimension()));
 
  224        explicit_.isSatisfied(arg, error.tail(explicit_.errorSize()));
 
  225    return iterative && _explicit;
 
 
  240  template <
typename LineSearchType>
 
  242    computeValue<true>(arg);
 
  244    computeDescentDirection();
 
  245    lineSearch(*
this, arg, dq_);
 
  246    explicit_.solve(arg);
 
  247    return solver::HierarchicalIterative::isSatisfied(arg);
 
 
  256    solver::HierarchicalIterative::errorThreshold(threshold);
 
  257    explicit_.errorThreshold(threshold);
 
 
  261    return solver::HierarchicalIterative::errorThreshold();
 
 
  269  virtual std::ostream& 
print(std::ostream& os) 
const;
 
  273    bool res = solver::HierarchicalIterative::integrate(from, velocity, result);
 
  274    explicit_.solve(result);
 
 
  284  template <
typename LineSearchType>
 
  291  HPP_SERIALIZABLE_SPLIT();
 
 
Definition explicit-constraint-set.hh:99
 
Definition by-substitution.hh:73
 
void computeActiveRowsOfJ(std::size_t iStack)
 
BySubstitution(const LiegroupSpacePtr_t &configSpace)
 
virtual ~BySubstitution()
Definition by-substitution.hh:78
 
vector_t rightHandSide() const
 
void explicitConstraintSetHasChanged()
Should be called whenever explicit solver is modified.
 
Status solve(vectorOut_t arg, bool optimize, LineSearchType ls=LineSearchType()) const
Definition by-substitution.hh:115
 
Status solve(vectorOut_t arg) const
Definition by-substitution.hh:152
 
bool oneStep(vectorOut_t arg, LineSearchType &lineSearch) const
Definition by-substitution.hh:241
 
Status solve(vectorOut_t arg, LineSearchType ls=LineSearchType()) const
Definition by-substitution.hh:110
 
value_type errorThreshold() const
Get error threshold.
Definition by-substitution.hh:260
 
bool isSatisfied(vectorIn_t arg, vectorOut_t error) const
Definition by-substitution.hh:219
 
size_type errorSize() const
Definition by-substitution.hh:194
 
bool getRightHandSide(const ImplicitPtr_t &constraint, vectorOut_t rhs) const
 
virtual std::ostream & print(std::ostream &os) const
 
void rightHandSide(vectorIn_t rhs)
 
void projectVectorOnKernel(ConfigurationIn_t from, vectorIn_t velocity, vectorOut_t result) const
 
bool rightHandSideFromConfig(const ImplicitPtr_t &constraint, ConfigurationIn_t config)
 
const NumericalConstraints_t & numericalConstraints() const
Get the numerical constraints implicit and explicit.
Definition by-substitution.hh:89
 
ExplicitConstraintSet & explicitConstraintSet()
Get explicit constraint set.
Definition by-substitution.hh:94
 
bool isSatisfied(vectorIn_t arg, value_type errorThreshold) const
Definition by-substitution.hh:210
 
const ExplicitConstraintSet & explicitConstraintSet() const
Set explicit constraint set.
Definition by-substitution.hh:97
 
segments_t implicitDof() const
 
size_type numberFreeVariables() const
Return the number of free variables.
Definition by-substitution.hh:102
 
bool add(const ImplicitPtr_t &numericalConstraint, const std::size_t &priority=0)
 
virtual void projectOnKernel(ConfigurationIn_t from, ConfigurationIn_t to, ConfigurationOut_t result)
 
bool integrate(vectorIn_t from, vectorIn_t velocity, vectorOut_t result) const
Definition by-substitution.hh:271
 
vector_t rightHandSideFromConfig(ConfigurationIn_t config)
 
bool isConstraintSatisfied(const ImplicitPtr_t &constraint, vectorIn_t arg, vectorOut_t error, bool &constraintFound) const
 
bool rightHandSide(const ImplicitPtr_t &constraint, vectorIn_t rhs)
 
BySubstitution(const BySubstitution &other)
 
void updateJacobian(vectorIn_t arg) const
 
size_type rightHandSideSize() const
 
bool isSatisfied(vectorIn_t arg) const
Definition by-substitution.hh:201
 
void errorThreshold(const value_type &threshold)
Set error threshold.
Definition by-substitution.hh:255
 
Definition hierarchical-iterative.hh:240
 
Status
Definition hierarchical-iterative.hh:245
 
#define HPP_CONSTRAINTS_DLLAPI
Definition config.hh:88
 
pinocchio::LiegroupSpacePtr_t LiegroupSpacePtr_t
Definition fwd.hh:69
 
shared_ptr< Implicit > ImplicitPtr_t
Definition fwd.hh:173
 
pinocchio::size_type size_type
Definition fwd.hh:47
 
pinocchio::value_type value_type
Definition fwd.hh:48
 
pinocchio::vectorIn_t vectorIn_t
Definition fwd.hh:60
 
pinocchio::ConfigurationIn_t ConfigurationIn_t
Definition fwd.hh:106
 
pinocchio::matrix_t matrix_t
Definition fwd.hh:56
 
std::vector< segment_t > segments_t
Definition fwd.hh:84
 
pinocchio::vectorOut_t vectorOut_t
Definition fwd.hh:61
 
std::vector< constraints::ImplicitPtr_t > NumericalConstraints_t
Definition fwd.hh:175
 
pinocchio::vector_t vector_t
Definition fwd.hh:59
 
pinocchio::ConfigurationOut_t ConfigurationOut_t
Definition fwd.hh:107
 
Definition active-set-differentiable-function.hh:36
 
Definition hierarchical-iterative.hh:70