| DART 6.10.1
    | 
#include <BoxedLcpSolver.hpp>
 
  
| Public Member Functions | |
| virtual | ~BoxedLcpSolver ()=default | 
| Destructor. | |
| virtual const std::string & | getType () const =0 | 
| Returns the type. | |
| template<typename BoxedLcpSolverT > | |
| bool | is () const | 
| Returns true if this solver and the template parameter (a solver class) are the same type. | |
| virtual bool | solve (int n, double *A, double *x, double *b, int nub, double *lo, double *hi, int *findex, bool earlyTermination=false)=0 | 
| Solves constriant impulses for a constrained group. | |
| virtual bool | canSolve (int n, const double *A)=0 | 
| 
 | virtualdefault | 
Destructor.
| 
 | pure virtual | 
Implemented in dart::constraint::DantzigBoxedLcpSolver, and dart::constraint::PgsBoxedLcpSolver.
| 
 | pure virtual | 
Returns the type.
Implemented in dart::constraint::DantzigBoxedLcpSolver, and dart::constraint::PgsBoxedLcpSolver.
| bool dart::constraint::BoxedLcpSolver::is | ( | ) | const | 
Returns true if this solver and the template parameter (a solver class) are the same type.
This function is a syntactic sugar, which is identical to:
.
Example code:
| 
 | pure virtual | 
Solves constriant impulses for a constrained group.
The LCP formulation setting that this function solve is A*x = b + w where each x[i], w[i] satisfies one of (1) x = lo, w >= 0 (2) x = hi, w <= 0 (3) lo < x < hi, w = 0
| [in] | n | Dimension of constraints. | 
| [in] | A | A term of the LCP formulation. | 
| [in] | x | x term of the LCP formulation. | 
| [in] | b | b term of the LCP formulation. | 
| [in] | nub | Number of the first unbounded constraints. | 
| [in] | lo | Lower bound of x where it's restricted to be lo <= 0. | 
| [in] | hi | Upper bound of x where it's enforced to be hi >= 0. | 
| [in] | findex | Indices to corresponding normal contact constraint. Set the index to itself (e.g., findex[k] = k) for normal contacts or non-contact constraints. For friction constraint, set the cooresponding normal contact constraint. | 
| [in] | earlyTermination | Set true to return false as soon as the solver find the solution doesn't exist. Otherwise, the solver will continue to push hard to solve the problem using some hacks. | 
Implemented in dart::constraint::DantzigBoxedLcpSolver, and dart::constraint::PgsBoxedLcpSolver.