CAPD DynSys Library  5.2.0
capd::dynset::CoordWiseReorganization< BasePolicy > Class Template Reference

In this reorganization policy column vector B_i corresponding to the biggest coordinate in r (r_i) replaces vector in C_j the 'closest' to B_i and the r_i is moved to r0. More...

#include <capd/dynset/reorganization/CoordWiseReorganization.h>

Public Member Functions

 CoordWiseReorganization ()
 
template<class SetType >
void reorganize (SetType &result) const
 reorganize given set More...
 
template<class Matrix , class Vector >
void reorganize (Matrix &B, Matrix &, Vector &r, Matrix &C, Vector &r0) const
 reorganize given set More...
 
template<class SetType >
bool isReorganizationNeeded (const SetType &result) const
 
template<class SetType >
bool reorganizeIfNeeded (SetType &result) const
 makes reorganization if needed. return true if reorganization was performed More...
 
template<class Matrix , class Vector >
bool reorganizeIfNeeded (Matrix &B, Matrix &invB, Vector &r, Matrix &C, Vector &r0) const
 
std::string name () const
 
void reorganize (Matrix1 &B, Matrix2 &invB, Vector &r, Matrix1 &C, Vector &r0) const
 
void reorganizeC1 (SetType &result) const
 
void reorganizeC1 (Matrix &B, Matrix &invB, Matrix &R, Matrix &C, Matrix &R0) const
 
void reorganizeC2 (Matrix &B, Matrix &invB, HessianT &R, Matrix &C, HessianT &R0) const
 
void setFactor (double A_factor)
 sets c0,c1,c2 factors to new value More...
 
void setC0Factor (double A_factor)
 sets new value of c0Factor; More...
 
void setC1Factor (double A_factor)
 sets new value of c1Factor; More...
 
void setC2Factor (double A_factor)
 sets new value of c2Factor; More...
 
double getC0Factor () const
 returns current value of c0Factor; More...
 
double getC1Factor () const
 returns current value of c1Factor; More...
 
double getC2Factor () const
 returns current value of c2Factor; More...
 
void onoffReorganization (bool flag)
 sets the flag which controls possibility of reorganization to new value More...
 
bool isReorganizationEnabled () const
 returns current value of the flag which controls possibility of reorganization More...
 
std::string toString () const
 
std::string toString () const
 
template<class VectorT , class MatrixT >
void computeBinvB (MatrixT &B, MatrixT &invB, const VectorT &) const
 
template<class Matrix1 , class Matrix2 , class Vector >
bool reorganizeIfNeeded (Matrix1 &, Matrix2 &, Vector &, Matrix1 &, Vector &) const
 
template<class Matrix >
bool reorganizeC1IfNeeded (Matrix &, Matrix &, Matrix &, Matrix &, Matrix &) const
 
template<class Matrix , class Hessian >
bool reorganizeC2IfNeeded (Matrix &, Matrix &, Hessian &, Matrix &, Hessian &) const
 
void disableReorganization ()
 

Static Public Member Functions

template<class VectorType >
static int findBiggestCoord (const VectorType &v)
 it finds index of the biggest coordinate of vector v More...
 
template<class MatrixType , class VectorType >
static int findBestFittingVector (const MatrixType &base, const VectorType &v)
 returns index of the column vector in base which best fits to given vector v More...
 

Protected Attributes

double m_minReorganizationSize
 
double m_c0Factor
 
double m_c1Factor
 
double m_c2Factor
 
bool m_onoff
 

Detailed Description

template<typename BasePolicy = DefaultPolicy>
class capd::dynset::CoordWiseReorganization< BasePolicy >

In this reorganization policy column vector B_i corresponding to the biggest coordinate in r (r_i) replaces vector in C_j the 'closest' to B_i and the r_i is moved to r0.

Constructor & Destructor Documentation

◆ CoordWiseReorganization()

template<typename BasePolicy = DefaultPolicy>
capd::dynset::CoordWiseReorganization< BasePolicy >::CoordWiseReorganization ( )
inline

Member Function Documentation

◆ disableReorganization()

void capd::dynset::NoReorganization::disableReorganization ( )
inlineinherited

◆ findBestFittingVector()

template<typename BasePolicy = DefaultPolicy>
template<class MatrixType , class VectorType >
static int capd::dynset::CoordWiseReorganization< BasePolicy >::findBestFittingVector ( const MatrixType &  base,
const VectorType &  v 
)
inlinestatic

returns index of the column vector in base which best fits to given vector v

◆ findBiggestCoord()

template<typename BasePolicy = DefaultPolicy>
template<class VectorType >
static int capd::dynset::CoordWiseReorganization< BasePolicy >::findBiggestCoord ( const VectorType &  v)
inlinestatic

it finds index of the biggest coordinate of vector v

◆ getC0Factor()

double capd::dynset::FactorPolicy< DefaultPolicy >::getC0Factor ( ) const
inlineinherited

returns current value of c0Factor;

◆ getC1Factor()

double capd::dynset::FactorPolicy< DefaultPolicy >::getC1Factor ( ) const
inlineinherited

returns current value of c1Factor;

◆ getC2Factor()

double capd::dynset::FactorPolicy< DefaultPolicy >::getC2Factor ( ) const
inlineinherited

returns current value of c2Factor;

◆ isReorganizationEnabled()

bool capd::dynset::FactorPolicy< DefaultPolicy >::isReorganizationEnabled ( ) const
inlineinherited

returns current value of the flag which controls possibility of reorganization

◆ isReorganizationNeeded()

template<typename BasePolicy = DefaultPolicy>
template<class SetType >
bool capd::dynset::CoordWiseReorganization< BasePolicy >::isReorganizationNeeded ( const SetType &  result) const
inline

◆ name()

template<typename BasePolicy = DefaultPolicy>
std::string capd::dynset::CoordWiseReorganization< BasePolicy >::name ( ) const
inline

◆ onoffReorganization()

void capd::dynset::FactorPolicy< DefaultPolicy >::onoffReorganization ( bool  flag)
inlineinherited

sets the flag which controls possibility of reorganization to new value

◆ reorganize() [1/3]

template<typename BasePolicy = DefaultPolicy>
template<class Matrix , class Vector >
void capd::dynset::CoordWiseReorganization< BasePolicy >::reorganize ( Matrix &  B,
Matrix &  ,
Vector &  r,
Matrix &  C,
Vector &  r0 
) const
inline

reorganize given set

◆ reorganize() [2/3]

void capd::dynset::FactorPolicy< DefaultPolicy >::reorganize ( Matrix1 &  B,
Matrix2 &  invB,
Vector &  r,
Matrix1 &  C,
Vector &  r0 
) const
inlineinherited

◆ reorganize() [3/3]

template<typename BasePolicy = DefaultPolicy>
template<class SetType >
void capd::dynset::CoordWiseReorganization< BasePolicy >::reorganize ( SetType &  result) const
inline

reorganize given set

◆ reorganizeC1() [1/2]

void capd::dynset::FactorPolicy< DefaultPolicy >::reorganizeC1 ( Matrix &  B,
Matrix &  invB,
Matrix &  R,
Matrix &  C,
Matrix &  R0 
) const
inlineinherited

◆ reorganizeC1() [2/2]

void capd::dynset::FactorPolicy< DefaultPolicy >::reorganizeC1 ( SetType &  result) const
inlineinherited

◆ reorganizeC1IfNeeded()

template<class Matrix >
bool capd::dynset::NoReorganization::reorganizeC1IfNeeded ( Matrix &  ,
Matrix &  ,
Matrix &  ,
Matrix &  ,
Matrix &   
) const
inlineinherited

◆ reorganizeC2()

void capd::dynset::FactorPolicy< DefaultPolicy >::reorganizeC2 ( Matrix &  B,
Matrix &  invB,
HessianT &  R,
Matrix &  C,
HessianT &  R0 
) const
inlineinherited

◆ reorganizeC2IfNeeded()

template<class Matrix , class Hessian >
bool capd::dynset::NoReorganization::reorganizeC2IfNeeded ( Matrix &  ,
Matrix &  ,
Hessian &  ,
Matrix &  ,
Hessian &   
) const
inlineinherited

◆ reorganizeIfNeeded() [1/3]

template<typename BasePolicy = DefaultPolicy>
template<class Matrix , class Vector >
bool capd::dynset::CoordWiseReorganization< BasePolicy >::reorganizeIfNeeded ( Matrix &  B,
Matrix &  invB,
Vector &  r,
Matrix &  C,
Vector &  r0 
) const
inline

◆ reorganizeIfNeeded() [2/3]

template<class Matrix1 , class Matrix2 , class Vector >
bool capd::dynset::NoReorganization::reorganizeIfNeeded ( Matrix1 &  ,
Matrix2 &  ,
Vector &  ,
Matrix1 &  ,
Vector &   
) const
inlineinherited

◆ reorganizeIfNeeded() [3/3]

template<typename BasePolicy = DefaultPolicy>
template<class SetType >
bool capd::dynset::CoordWiseReorganization< BasePolicy >::reorganizeIfNeeded ( SetType &  result) const
inline

makes reorganization if needed. return true if reorganization was performed

◆ setC0Factor()

void capd::dynset::FactorPolicy< DefaultPolicy >::setC0Factor ( double  A_factor)
inlineinherited

sets new value of c0Factor;

◆ setC1Factor()

void capd::dynset::FactorPolicy< DefaultPolicy >::setC1Factor ( double  A_factor)
inlineinherited

sets new value of c1Factor;

◆ setC2Factor()

void capd::dynset::FactorPolicy< DefaultPolicy >::setC2Factor ( double  A_factor)
inlineinherited

sets new value of c2Factor;

◆ setFactor()

void capd::dynset::FactorPolicy< DefaultPolicy >::setFactor ( double  A_factor)
inlineinherited

sets c0,c1,c2 factors to new value

◆ toString()

std::string capd::dynset::FactorPolicy< DefaultPolicy >::toString ( ) const
inlineinherited

Member Data Documentation

◆ m_c0Factor

double capd::dynset::FactorPolicy< DefaultPolicy >::m_c0Factor
protectedinherited

◆ m_c1Factor

double capd::dynset::FactorPolicy< DefaultPolicy >::m_c1Factor
protectedinherited

◆ m_c2Factor

double capd::dynset::FactorPolicy< DefaultPolicy >::m_c2Factor
protectedinherited

◆ m_minReorganizationSize

template<typename BasePolicy = DefaultPolicy>
double capd::dynset::CoordWiseReorganization< BasePolicy >::m_minReorganizationSize
protected

◆ m_onoff

bool capd::dynset::FactorPolicy< DefaultPolicy >::m_onoff
protectedinherited