33 #ifndef DART_CONSTRAINT_PGSLCPSOLVER_HPP_
34 #define DART_CONSTRAINT_PGSLCPSOLVER_HPP_
38 #include "dart/config.hpp"
42 namespace constraint {
66 bool isSymmetric(std::size_t _n,
double* _A, std::size_t _begin, std::size_t _end);
69 void print(std::size_t _n,
double* _A,
double* _x,
double* _lo,
double* _hi,
70 double* _b,
double* w,
int* _findex);
85 bool solvePGS(
int n,
int nskip,
int ,
double* A,
86 double* x,
double * b,
87 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
Definition: LCPSolver.hpp:45
Definition: PGSLCPSolver.hpp:49
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:75
int itermax
Definition: PGSLCPSolver.hpp:76
void setDefault()
Definition: PGSLCPSolver.cpp:513
double eps_div
Definition: PGSLCPSolver.hpp:80
double sor_w
Definition: PGSLCPSolver.hpp:77
double eps_res
Definition: PGSLCPSolver.hpp:79
double eps_ea
Definition: PGSLCPSolver.hpp:78