33 #ifndef DART_CONSTRAINT_PGSLCPSOLVER_HPP_
34 #define DART_CONSTRAINT_PGSLCPSOLVER_HPP_
38 #include "dart/config.hpp"
42 namespace constraint {
63 bool isSymmetric(std::size_t _n,
double* _A, std::size_t _begin, std::size_t _end);
66 void print(std::size_t _n,
double* _A,
double* _x,
double* _lo,
double* _hi,
67 double* _b,
double* w,
int* _findex);
82 bool solvePGS(
int n,
int nskip,
int ,
double* A,
83 double* x,
double * b,
84 double * lo,
double * hi,
int * findex,
const CollisionOption & option
Collision option of DART.
Definition: FCLCollisionDetector.cpp:154
ConstrainedGroup is a group of skeletons that interact each other with constraints.
Definition: ConstrainedGroup.hpp:58
LCPSolver.
Definition: LCPSolver.hpp:43
PGSLCPSolver.
Definition: PGSLCPSolver.hpp:46
PGSLCPSolver(double _timestep)
Constructor.
Definition: PGSLCPSolver.cpp:51
void solve(ConstrainedGroup *_group) override
Solve constriant impulses for a constrained group.
Definition: PGSLCPSolver.cpp:61
void print(std::size_t _n, double *_A, double *_x, double *_lo, double *_hi, double *_b, double *w, int *_findex)
Print debug information.
Definition: PGSLCPSolver.cpp:254
virtual ~PGSLCPSolver()
Constructor.
Definition: PGSLCPSolver.cpp:56
bool isSymmetric(std::size_t _n, double *_A)
Return true if the matrix is symmetric.
Definition: PGSLCPSolver.cpp:193
bool solvePGS(int n, int nskip, int, double *A, double *x, double *b, double *lo, double *hi, int *findex, PGSOption *option)
Definition: PGSLCPSolver.cpp:344
Definition: BulletCollisionDetector.cpp:63
Definition: PGSLCPSolver.hpp:72
int itermax
Definition: PGSLCPSolver.hpp:73
void setDefault()
Definition: PGSLCPSolver.cpp:513
double eps_div
Definition: PGSLCPSolver.hpp:77
double sor_w
Definition: PGSLCPSolver.hpp:74
double eps_res
Definition: PGSLCPSolver.hpp:76
double eps_ea
Definition: PGSLCPSolver.hpp:75