11 #ifndef BOGUS_PYRAMIDLAW_HPP
12 #define BOGUS_PYRAMIDLAW_HPP
29 template < DenseIndexType Dimension,
typename Scalar,
bool DeSaxceCOV >
34 enum{ dimension = Dimension } ;
41 PyramidLaw(
const unsigned n,
const double * mu ) ;
44 Scalar
eval(
const unsigned problemIndex,
45 const typename Traits::Vector &x,
46 const typename Traits::Vector &y )
const ;
50 const unsigned problemIndex,
51 const typename Traits::Matrix &A,
52 const typename Traits::Vector &b,
53 typename Traits::Vector &x,
64 template<
typename Segment >
65 void dualityCOV(
const unsigned problemIndex,
const Segment& y,
66 typename Traits::Vector& s )
const
69 Traits::np( s ) = m_mu[problemIndex] * Traits::tp(y).template lpNorm<1>() ;
70 Traits::tp( s ).setZero() ;
Scalar eval(const unsigned problemIndex, const typename Traits::Vector &x, const typename Traits::Vector &y) const
PyramidLaw(const unsigned n, const double *mu)
Constructor.
void projectOnConstraint(const unsigned problemIndex, typename Traits::Vector &x) const
Projects x on .
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 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. ...
Definition: PyramidLaw.hpp:65
Definition: EigenProblemTraits.hpp:38
Experimental and incomplete pyramidal local solver that can be used within GaussSeidel and ProjectedG...
Definition: PyramidLaw.hpp:30