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

Vectors are orthogonalized only if they are close to be parallel. More...

#include <capd/dynset/QRPolicy.h>

Public Member Functions

 SelectiveQRWithPivoting (double parallelTolerance=1.0e-15)
 
void setParallelTolerance (const double &level)
 if vectors are closer to be parallel more than given tolerance level one of them will be orthogonalized More...
 
double getParallelTolerance () const
 
template<class VectorType , class MatrixType >
void orthonormalize (MatrixType &B, const VectorType &v) const
 
template<class MatrixT >
void orthonormalize (MatrixT &)
 
template<class VectorT , class MatrixT >
void computeBinvB (MatrixT &B, MatrixT &invB, const VectorT &v) const
 
virtual std::string toString () const
 
template<class SetType >
void reorganize (SetType &) const
 
template<class SetType >
bool isReorganizationNeeded (const SetType &) const
 
template<class SetType >
bool reorganizeIfNeeded (SetType &) 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 ()
 
std::string name () const
 

Detailed Description

template<class BasePolicy = DefaultPolicy>
class capd::dynset::SelectiveQRWithPivoting< BasePolicy >

Vectors are orthogonalized only if they are close to be parallel.

Constructor & Destructor Documentation

◆ SelectiveQRWithPivoting()

template<class BasePolicy = DefaultPolicy>
capd::dynset::SelectiveQRWithPivoting< BasePolicy >::SelectiveQRWithPivoting ( double  parallelTolerance = 1.0e-15)
inline

Member Function Documentation

◆ computeBinvB()

template<class BasePolicy = DefaultPolicy>
template<class VectorT , class MatrixT >
void capd::dynset::SelectiveQRWithPivoting< BasePolicy >::computeBinvB ( MatrixT &  B,
MatrixT &  invB,
const VectorT &  v 
) const
inline

◆ disableReorganization()

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

◆ getParallelTolerance()

template<class BasePolicy = DefaultPolicy>
double capd::dynset::SelectiveQRWithPivoting< BasePolicy >::getParallelTolerance ( ) const
inline

◆ isReorganizationNeeded()

template<class SetType >
bool capd::dynset::NoReorganization::isReorganizationNeeded ( const SetType &  ) const
inlineinherited

◆ name()

std::string capd::dynset::NoReorganization::name ( ) const
inlineinherited

◆ orthonormalize() [1/2]

template<class BasePolicy = DefaultPolicy>
template<class MatrixT >
void capd::dynset::SelectiveQRWithPivoting< BasePolicy >::orthonormalize ( MatrixT &  )
inline

◆ orthonormalize() [2/2]

template<class BasePolicy = DefaultPolicy>
template<class VectorType , class MatrixType >
void capd::dynset::SelectiveQRWithPivoting< BasePolicy >::orthonormalize ( MatrixType &  B,
const VectorType &  v 
) const
inline

◆ reorganize()

template<class SetType >
void capd::dynset::NoReorganization::reorganize ( SetType &  ) const
inlineinherited

◆ reorganizeC1IfNeeded()

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

◆ reorganizeC2IfNeeded()

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

◆ reorganizeIfNeeded() [1/2]

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

◆ reorganizeIfNeeded() [2/2]

template<class SetType >
bool capd::dynset::NoReorganization::reorganizeIfNeeded ( SetType &  ) const
inlineinherited

◆ setParallelTolerance()

template<class BasePolicy = DefaultPolicy>
void capd::dynset::SelectiveQRWithPivoting< BasePolicy >::setParallelTolerance ( const double level)
inline

if vectors are closer to be parallel more than given tolerance level one of them will be orthogonalized

◆ toString()

template<class BasePolicy = DefaultPolicy>
virtual std::string capd::dynset::SelectiveQRWithPivoting< BasePolicy >::toString ( ) const
inlinevirtual