Public Member Functions | |
LemkeAlgorithm (const bool &DEBUGLEVEL_=0) | |
LemkeAlgorithm (const fmatvec::SqrMat &M_, const fmatvec::Vec &q_, const bool &DEBUGLEVEL_=0) | |
LemkeAlgorithm (const fmatvec::SymMat &M_, const fmatvec::Vec &q_, const bool &DEBUGLEVEL_=0) | |
int | getInfo () |
return info of solution process | |
int | getSteps (void) |
get the number of steps until the solution was found | |
void | setSystem (const fmatvec::SqrMat &M_, const fmatvec::Vec &q_) |
set system with Matrix M and vector q | |
void | setSystem (const fmatvec::SymMat &M_, const fmatvec::Vec &q_) |
set system with Matrix M and vector q | |
fmatvec::Vec | solve (unsigned int maxloops=0) |
solve algorithm adapted from : Fast Implementation of Lemkeās Algorithm for Rigid Body Contact Simulation (John E. Lloyd) | |
![]() | |
Atom & | operator= (const Atom &) |
void | setMessageStreamActive (MsgType type, bool active) |
void | getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s) |
void | adoptMessageStreams (const Atom *src=NULL) |
std::ostream & | msg (MsgType type) |
bool | msgAct (MsgType type) |
Protected Member Functions | |
int | findLexicographicMinimum (const fmatvec::Mat &A, const int &pivotColIndex) |
bool | LexicographicPositive (const fmatvec::Vec &v) |
void | GaussJordanEliminationStep (fmatvec::Mat &A, int pivotRowIndex, int pivotColumnIndex, const std::vector< size_t > &basis) |
bool | greaterZero (const fmatvec::Vec &vector) |
bool | validBasis (const std::vector< size_t > &basis) |
![]() | |
Atom (const Atom &src) | |
Protected Attributes | |
fmatvec::SqrMat | M |
fmatvec::Vec | q |
unsigned int | steps |
number of steps until the Lemke algorithm found a solution | |
bool | DEBUGLEVEL |
define level of debug output | |
int | info |
did the algorithm find a solution More... | |
Additional Inherited Members | |
![]() | |
enum | MsgType |
![]() | |
static void | setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf())) |
static std::ostream & | msgStatic (MsgType type) |
static bool | msgActStatic (MsgType type) |
|
protected |
did the algorithm find a solution
-1 : not successful 0 : successful