17 #ifndef BT_DANTZIG_SOLVER_H 18 #define BT_DANTZIG_SOLVER_H 42 :m_acceptableUpperLimitSolution(
btScalar(1000))
57 const btScalar* Aptr = A.getBufferPointer();
59 for (
int i=0;i<n*n;i++)
76 m_dependencies[i] = limitDependency[i];
80 result =
btSolveDantzigLCP (n,&m_A[0],&m_x[0],&m_b[0],&ww[0],nub,&m_lo[0],&m_hi[0],&m_dependencies[0],m_scratchMemory);
90 if (x[i] >= m_acceptableUpperLimitSolution)
95 if (x[i] <= -m_acceptableUpperLimitSolution)
101 for (
int i=0;i<n;i++)
112 #endif //BT_DANTZIG_SOLVER_H btAlignedObjectArray< int > m_dependencies
original version written by Erwin Coumans, October 2013
btAlignedObjectArray< btScalar > m_b
btAlignedObjectArray< btScalar > m_hi
btAlignedObjectArray< btScalar > m_lo
btAlignedObjectArray< char > m_tempBuffer
original version written by Erwin Coumans, October 2013
btAlignedObjectArray< btScalar > m_x
btDantzigScratchMemory m_scratchMemory
btAlignedObjectArray< btScalar > m_A
virtual bool solveMLCP(const btMatrixXu &A, const btVectorXu &b, btVectorXu &x, const btVectorXu &lo, const btVectorXu &hi, const btAlignedObjectArray< int > &limitDependency, int numIterations, bool useSparsity=true)
bool btSolveDantzigLCP(int n, btScalar *A, btScalar *x, btScalar *b, btScalar *outer_w, int nub, btScalar *lo, btScalar *hi, int *findex, btDantzigScratchMemory &scratchMem)
void resize(int newsize, const T &fillData=T())
btScalar m_acceptableUpperLimitSolution
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...