|
So-Bogus
A c++ sparse block matrix library aimed at Second Order cone problems
|
Experimental and incomplete pyramidal local solver that can be used within GaussSeidel and ProjectedGradient solvers. More...
#include <PyramidLaw.hpp>
Public Types | |
| enum | { dimension = Dimension } |
|
typedef LocalProblemTraits < Dimension, Scalar > | Traits |
Public Member Functions | |
| PyramidLaw (const unsigned n, const double *mu) | |
| Constructor. More... | |
| Scalar | eval (const unsigned problemIndex, const typename Traits::Vector &x, const typename Traits::Vector &y) const |
| bool | solveLocal (const unsigned problemIndex, const typename Traits::Matrix &A, const typename Traits::Vector &b, typename Traits::Vector &x, const Scalar scaling) const |
Solve for with y(x) = Ax + b. | |
| void | projectOnConstraint (const unsigned problemIndex, typename Traits::Vector &x) const |
Projects x on . | |
| template<typename Segment > | |
| void | dualityCOV (const unsigned problemIndex, const Segment &y, typename Traits::Vector &s) const |
Computes the change of variable s(y) so that (x, y+s(y)) obeys an associated law. More... | |
Experimental and incomplete pyramidal local solver that can be used within GaussSeidel and ProjectedGradient solvers.
For demonstration purposes. Since blocks are 1x1, other libraries are probably more suited.
| Scalar | the scalar type |
| Dimension | the dimension of the blocks of the global matrix |
| bogus::PyramidLaw< Dimension, Scalar, DeSaxceCOV >::PyramidLaw | ( | const unsigned | n, |
| const double * | mu | ||
| ) |
Constructor.
| n | the size of the global problem ( number of contacts ) |
| mu | array containing the apertures of each second order cone ( friction coefficients ) |
| void bogus::PyramidLaw< Dimension, Scalar, DeSaxceCOV >::dualityCOV | ( | const unsigned | problemIndex, |
| const Segment & | y, | ||
| typename Traits::Vector & | s | ||
| ) | const |
Computes the change of variable s(y) so that (x, y+s(y)) obeys an associated law.
ie
. Here C = K_{mu}, and if
| DeSaxceCOV | is true, |
| Scalar bogus::PyramidLaw< Dimension, Scalar, DeSaxceCOV >::eval | ( | const unsigned | problemIndex, |
| const typename Traits::Vector & | x, | ||
| const typename Traits::Vector & | y | ||
| ) | const |
, where fb is the SOC Fischer-Burmeister function