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 |