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

A projected Gauss-Seidel Solver for (box) LCPs.TODO: description of the PGS solver TODO: capabilities of the PGS solver (which LCP problems, etc) TODO: known issues of the PGS solver. More...

#include <PGS.h>

Inherits blaze::Solver.

Public Member Functions

template<>
real sweep (ContactLCP &cp) const
 TODO.
 
Constructors
 PGS ()
 The default constructor for the PGS class.
 
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
VecN diagonal_
 Vector for the diagonal entries of the LCP matrix.
 

Utility functions

template<typename CP >
bool solve (CP &cp)
 Solves the provided complementarity problem.
 
template<typename CP >
real sweep (CP &cp) const
 TODO.
 

Detailed Description

A projected Gauss-Seidel Solver for (box) LCPs.

TODO: description of the PGS solver TODO: capabilities of the PGS solver (which LCP problems, etc) TODO: known issues of the PGS solver.

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.
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.
template<typename CP >
bool blaze::PGS::solve ( CP &  cp)

Solves the provided complementarity problem.

Parameters
cpThe complementarity problem to solve.
Returns
Returns true if the solution is sufficiently accurate, otherwise it returns false.

TODO

template<typename CP >
real blaze::PGS::sweep ( CP &  cp) const
inlineprivate

TODO.

Parameters
cpThe complementarity problem to solve.
Returns
TODO

TODO

template<>
real blaze::PGS::sweep ( ContactLCP cp) const
inline

TODO.

Parameters
cpThe complementarity problem to solve.
Returns
TODO

TODO: specialization for contact LCPs TODO: more infos

Member Data Documentation

VecN blaze::PGS::diagonal_
private

Vector for the diagonal entries of the LCP matrix.

For performance reasons, the vector contains the inverse of the diagonal elements.

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: