All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
blaze::Lemke Class Reference

The Lemke pivoting algorithm for solving LCPs.TODO. More...

#include <Lemke.h>

Inherits blaze::Solver.

Public Member Functions

Constructors
 Lemke ()
 Default constructor for the Lemke class.
 
Solver functions
bool solve (LCP &lcp)
 TODO.
 
bool solve (LCP &lcp, const VecN &d)
 TODO.
 
Get functions
size_t getMaxIterations () const
 Returns the maximum number of iterations the solver may spend solving the problem.
 
size_t getLastIterations () const
 Returns the number of iterations spent in the last solution process.
 
real getLastPrecision () const
 Returns the precision of the solution after the solution process.
 
real getThreshold () const
 Returns the threshold that classifies a solution as good enough.
 
Set functions
void setMaxIterations (size_t maxIterations)
 Sets the maximum number of iterations the solver may spend solving the problem.
 
void setThreshold (real threshold)
 Sets the threshold which classifies a solution as good enough.
 

Protected Attributes

Member variables
size_t maxIterations_
 The maximum number of iterations.
 
size_t lastIterations_
 The number of iterations spent in the last solution process.
 
real lastPrecision_
 The precision of the solution after the solution process.
 
real threshold_
 Precision threshold for the solution.
 

Private Attributes

Member variables
DynamicVector< ptrdiff_tbasics_
 TODO.
 
DynamicVector< ptrdiff_tnonbasics_
 TODO.
 
MatMxN M_
 TODO.
 
MatMxN Q_
 TODO.
 

Utility functions

void printTableau (std::ostream &os) const
 TODO.
 
bool isComponentwiseNonnegative (const VecN &v) const
 TODO.
 
bool isComponentwisePositive (const VecN &v) const
 TODO.
 
bool isLexicographicallyLess (size_t i1, real f1, size_t i2, real f2) const
 TODO.
 
bool isLexicographicallyGreater (size_t i1, real f1, size_t i2, real f2) const
 TODO.
 
void pivot (size_t block, size_t drive)
 TODO.
 

Detailed Description

The Lemke pivoting algorithm for solving LCPs.

TODO.

Member Function Documentation

size_t blaze::Solver::getLastIterations ( ) const
inlineinherited

Returns the number of iterations spent in the last solution process.

Returns
The number of iterations spent in the last solution process.
real blaze::Solver::getLastPrecision ( ) const
inlineinherited

Returns the precision of the solution after the solution process.

Returns
The precision of the solution after the solution process.

The solver is not enforced to compute the precision after the solution. Instead it can just report infinity as the last precision.

size_t blaze::Solver::getMaxIterations ( ) const
inlineinherited

Returns the maximum number of iterations the solver may spend solving the problem.

Returns
The maximum number of iterations spent in the solver.
real blaze::Solver::getThreshold ( ) const
inlineinherited

Returns the threshold that classifies a solution as good enough.

Returns
The threshold for the solution quality.
bool blaze::Lemke::isComponentwiseNonnegative ( const VecN v) const
private

TODO.

Parameters
vTODO
Returns
TODO

TODO < 0

bool blaze::Lemke::isComponentwisePositive ( const VecN v) const
private

TODO.

Parameters
vTODO
Returns
TODO

TODO <= 0

bool blaze::Lemke::isLexicographicallyGreater ( size_t  i1,
real  f1,
size_t  i2,
real  f2 
) const
private

TODO.

Parameters
i1TODO
f1TODO
i2TODO
f2TODO
Returns
TODO

TODO

bool blaze::Lemke::isLexicographicallyLess ( size_t  i1,
real  f1,
size_t  i2,
real  f2 
) const
private

TODO.

Parameters
i1TODO
f1TODO
i2TODO
f2TODO
Returns
TODO

TODO

void blaze::Lemke::pivot ( size_t  block,
size_t  drive 
)
private

TODO.

Parameters
blockTODO
driveTODO
Returns
void

TODO

void blaze::Lemke::printTableau ( std::ostream &  os) const

TODO.

Returns
TODO

TODO

void blaze::Solver::setMaxIterations ( size_t  maxIterations)
inlineinherited

Sets the maximum number of iterations the solver may spend solving the problem.

Parameters
maxIterationsThe maximum number of iterations spent in the solver.
void blaze::Solver::setThreshold ( real  threshold)
inlineinherited

Sets the threshold which classifies a solution as good enough.

Parameters
thresholdThe threshold for the solution quality.
bool blaze::Lemke::solve ( LCP lcp)

TODO.

Parameters
lcpTODO
Returns
void

TODO

bool blaze::Lemke::solve ( LCP lcp,
const VecN d 
)

TODO.

Parameters
lcpTODO
dTODO
Returns
TODO

TODO

Member Data Documentation

size_t blaze::Solver::maxIterations_
protectedinherited

The maximum number of iterations.

This is the maximum number of iterations the solver will spend for solving the given problem.


The documentation for this class was generated from the following files: