33 #ifndef DART_CONSTRAINT_PGSBOXEDLCPSOLVER_HPP_ 34 #define DART_CONSTRAINT_PGSBOXEDLCPSOLVER_HPP_ 37 #include "dart/dynamics/BoxedLcpSolver.hpp" 49 double mDeltaXThreshold;
50 double mRelativeDeltaXTolerance;
51 double mEpsilonForDivision;
52 bool mRandomizeConstraintOrder;
55 int maxIteration = 30,
56 double deltaXTolerance = 1e-6,
57 double relativeDeltaXTolerance = 1e-3,
58 double epsilonForDivision = 1e-9,
59 bool randomizeConstraintOrder =
false);
63 const std::string&
getType()
const override;
78 bool earlyTermination)
override;
82 bool canSolve(
int n,
const double* A)
override;
94 mutable std::vector<int> mCacheOrder;
95 mutable std::vector<double> mCacheD;
96 mutable Eigen::VectorXd mCachedNormalizedA;
97 mutable Eigen::MatrixXd mCachedNormalizedB;
98 mutable Eigen::VectorXd mCacheZ;
99 mutable Eigen::VectorXd mCacheOldX;
105 #endif // DART_CONSTRAINT_PGSBOXEDLCPSOLVER_HPP_ const std::string & getType() const override
Returns the type.
Definition: PgsBoxedLcpSolver.cpp:64
const Option & getOption() const
Returns options.
Definition: PgsBoxedLcpSolver.cpp:277
Implementation of projected Gauss-Seidel (PGS) LCP solver.
Definition: PgsBoxedLcpSolver.hpp:43
void setOption(const Option &option)
Sets options.
Definition: PgsBoxedLcpSolver.cpp:271
bool solve(int n, double *A, double *x, double *b, int nub, double *lo, double *hi, int *findex, bool earlyTermination) override
Solves constriant impulses for a constrained group.
Definition: PgsBoxedLcpSolver.cpp:77
Definition: Aspect.cpp:40
static const std::string & getStaticType()
Returns type for this class.
Definition: PgsBoxedLcpSolver.cpp:70
Definition: BoxedLcpSolver.hpp:42
Definition: PgsBoxedLcpSolver.hpp:46