CHROMA
Public Member Functions | List of all members

Linear Operator. More...

#include <linearop.h>

Inheritance diagram for Chroma::LinearOperator< T >:
Chroma::DiffLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::DiffLinearOperator< T, P, Q > Chroma::Lunprec< T, P, Q > Chroma::MdagLinOp< T > Chroma::MdagMLinOp< T > Chroma::UnprecDWF4DLinOp< T > Chroma::UnprecPDWF4DLinOp< T, P, Q > Chroma::UnprecPPDWF4DLinOp< T, P, Q > Chroma::approx_lmdag< T > Chroma::approx_lmdagm< T > Chroma::approx_lopscl< T, C > Chroma::lgherm< T > Chroma::llincomb< T, C > Chroma::lopishift< T, C > Chroma::lopscl< T, C >

Public Member Functions

virtual ~LinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual void operator() (T &chi, const T &psi, enum PlusMinus isign) const =0
 Apply the operator onto a source std::vector. More...
 
virtual void operator() (T &chi, const T &psi, enum PlusMinus isign, Real epsilon) const
 Apply the operator onto a source std::vector to some precision. More...
 
virtual const Subset & subset () const =0
 Return the subset on which the operator acts. More...
 
virtual unsigned long nFlops () const
 

Detailed Description

template<typename T>
class Chroma::LinearOperator< T >

Linear Operator.

Supports creation and application for linear operators that hold things like Dirac operators, etc.

Definition at line 26 of file linearop.h.

Constructor & Destructor Documentation

◆ ~LinearOperator()

template<typename T >
virtual Chroma::LinearOperator< T >::~LinearOperator ( )
inlinevirtual

Virtual destructor to help with cleanup;.

Definition at line 30 of file linearop.h.

Member Function Documentation

◆ nFlops()

template<typename T >
virtual unsigned long Chroma::LinearOperator< T >::nFlops ( void  ) const
inlinevirtual

Return the number of flops performed by operator() Base linop returns 0 and this can be overridden

Reimplemented in Chroma::DiffMdagMLinOp< T, P, Q >, Chroma::MdagMLinOp< T >, Chroma::DiffMdagLinOp< T, P, Q >, Chroma::MdagLinOp< T >, Chroma::EvenOddPrecLinearOperator< T, P, Q >, Chroma::EvenOddLinearOperator< T, P, Q >, Chroma::EvenOddLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::UnprecWilsonLinOp, Chroma::UnprecW12LinOp, Chroma::UnprecHamberWuLinOp, Chroma::UnprecGrapheneLinOp, Chroma::UnprecCloverLinOp, Chroma::EvenOddPrecWilsonLinOp, Chroma::SymEvenOddPrecCloverLinOp, Chroma::WilsonDslashBase< T, P, Q >, Chroma::WilsonDslashBase< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::WilsonDslashBase< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > >, Chroma::WilsonDslashBase< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > >, Chroma::lopishift< T, C >, Chroma::KleinGordonLinOp, Chroma::EvenOddPrecWilsonLinOp, Chroma::EvenOddPrecTwmLinOpArray, Chroma::EvenOddPrecSLRCLinOp, Chroma::EvenOddPrecSLICLinOp, Chroma::EvenOddPrecParWilsonLinOp, Chroma::EvenOddPrecCloverOrbifoldLinOp, Chroma::EvenOddPrecCloverLinOp, Chroma::EvenOddPrecCloverExtFieldLinOp, Chroma::EvenOddPrecDumbCloverDLinOp, Chroma::EvenOddPrecDumbCloverFLinOp, Chroma::CloverTermBase< T, U >, Chroma::CloverTermBase< LatticeFermionD, LatticeColorMatrixD >, Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix >, and Chroma::AsqtadLinOp.

Definition at line 48 of file linearop.h.

Referenced by Chroma::InvCG2_a(), Chroma::InvCG2_timings_a(), Chroma::MInvCG2_a(), and Chroma::MInvCG2Accum_a().

◆ operator()() [1/2]

template<typename T >
virtual void Chroma::LinearOperator< T >::operator() ( T chi,
const T psi,
enum PlusMinus  isign 
) const
pure virtual

Apply the operator onto a source std::vector.

Implemented in Chroma::TwistedShiftedLinOp< T, P, Q, EvenOddPrecLinearOperator >, Chroma::TwistedShiftedLinOp< T, P, Q, SymEvenOddPrecLogDetLinearOperator >, Chroma::DslashLinearOperator< T, P, Q >, Chroma::DslashLinearOperator< T, multi1d< U >, multi1d< U > >, Chroma::PolyPrec< T, P, Q >, Chroma::SymEvenOddPrecCloverLinOp, Chroma::TimePrecLinearOperator< T, P, Q >, Chroma::EvenOddTimePrecLinearOperator< T, P, Q >, Chroma::SymEvenOddPrecLinearOperator< T, P, Q >, Chroma::DiffMdagMLinOp< T, P, Q >, Chroma::approx_lmdagm< T >, Chroma::MdagMLinOp< T >, Chroma::DiffMdagLinOp< T, P, Q >, Chroma::approx_lmdag< T >, Chroma::MdagLinOp< T >, Chroma::EvenOddPrecLinearOperator< T, P, Q >, Chroma::EvenOddLinearOperator< T, P, Q >, Chroma::UnprecPPDWF4DLinOp< T, P, Q >, Chroma::UnprecPDWF4DLinOp< T, P, Q >, Chroma::UnprecDWF4DLinOp< T >, Chroma::Lunprec< T, P, Q >, Chroma::approx_lopscl< T, C >, Chroma::lopscl< T, C >, Chroma::lopishift< T, C >, Chroma::llincomb< T, C >, Chroma::lgherm< T >, Chroma::EvenOddPrecDumbCloverDLinOp, Chroma::lpoly< T, P, Q >, Chroma::EvenOddPrecDumbCloverFLinOp, Chroma::UnprecWilsonLinOp, Chroma::UnprecW12LinOp, Chroma::UnprecPPDWF4DLinOp< T, P, Q >, Chroma::UnprecPDWF4DLinOp< T, P, Q >, Chroma::UnprecParWilsonLinOp, Chroma::UnprecHamberWuLinOp, Chroma::UnprecGrapheneLinOp, Chroma::UnprecDWFTransfDenLinOp, Chroma::UnprecDWFTransfMdagMLinOp, Chroma::UnprecDWFTransfLinOp, Chroma::UnprecDWF4DLinOp< T >, Chroma::UnprecCloverLinOp, Chroma::EvenOddPrecWilsonLinOp, Chroma::lovlapms, Chroma::lovlap_double_pass, Chroma::lovddag, Chroma::lovddag_double_pass, Chroma::lg5eps, Chroma::lg5eps_double_pass, Chroma::lDeltaLs, Chroma::EvenOddPrecWilsonLinOp, Chroma::EvenOddPrecTwmLinOpArray, Chroma::EvenOddPrecSLRCLinOp, Chroma::EvenOddPrecSLICLinOp, Chroma::EvenOddPrecParWilsonLinOp, Chroma::EvenOddPrecCloverOrbifoldLinOp, Chroma::EvenOddPrecCloverLinOp, and Chroma::EvenOddPrecCloverExtFieldLinOp.

◆ operator()() [2/2]

template<typename T >
virtual void Chroma::LinearOperator< T >::operator() ( T chi,
const T psi,
enum PlusMinus  isign,
Real  epsilon 
) const
inlinevirtual

◆ subset()

template<typename T >
virtual const Subset& Chroma::LinearOperator< T >::subset ( ) const
pure virtual

Return the subset on which the operator acts.

Implemented in Chroma::TwistedShiftedLinOp< T, P, Q, EvenOddPrecLinearOperator >, Chroma::TwistedShiftedLinOp< T, P, Q, SymEvenOddPrecLogDetLinearOperator >, Chroma::TimePrecLogDetLinearOperator< T, P, Q >, Chroma::TimePrecLinearOperator< T, P, Q >, Chroma::EvenOddTimePrecLogDetLinearOperator< T, P, Q >, Chroma::EvenOddTimePrecLinearOperator< T, P, Q >, Chroma::SymEvenOddPrecLogDetLinearOperator< T, P, Q >, Chroma::SymEvenOddPrecLogDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::SymEvenOddPrecLinearOperator< T, P, Q >, Chroma::DiffMdagMLinOp< T, P, Q >, Chroma::approx_lmdagm< T >, Chroma::MdagMLinOp< T >, Chroma::UnprecLinearOperator< T, P, Q >, Chroma::UnprecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::UnprecLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::DiffMdagLinOp< T, P, Q >, Chroma::approx_lmdag< T >, Chroma::MdagLinOp< T >, Chroma::EvenOddPrecLogDetLinearOperator< T, P, Q >, Chroma::EvenOddPrecLogDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::EvenOddPrecLinearOperator< T, P, Q >, Chroma::EvenOddLinearOperator< T, P, Q >, Chroma::EvenOddLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::UnprecPPDWF4DLinOp< T, P, Q >, Chroma::UnprecPDWF4DLinOp< T, P, Q >, Chroma::UnprecParWilsonLinOp, Chroma::UnprecDWFTransfDenLinOp, Chroma::UnprecDWFTransfMdagMLinOp, Chroma::UnprecDWFTransfLinOp, Chroma::UnprecDWF4DLinOp< T >, Chroma::lpoly< T, P, Q >, Chroma::PolyPrec< T, P, Q >, Chroma::WilsonDslashBase< T, P, Q >, Chroma::WilsonDslashBase< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >, Chroma::WilsonDslashBase< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > >, Chroma::WilsonDslashBase< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > >, Chroma::Lunprec< T, P, Q >, Chroma::lovlapms, Chroma::lovlap_double_pass, Chroma::lovddag, Chroma::lovddag_double_pass, Chroma::approx_lopscl< T, C >, Chroma::lopscl< T, C >, Chroma::lopishift< T, C >, Chroma::llincomb< T, C >, Chroma::lgherm< T >, Chroma::lg5eps, Chroma::lg5eps_double_pass, Chroma::lDeltaLs, Chroma::EvenOddPrecDumbCloverDLinOp, Chroma::EvenOddPrecDumbCloverFLinOp, Chroma::CloverTermBase< T, U >, Chroma::CloverTermBase< LatticeFermionD, LatticeColorMatrixD >, Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix >, Chroma::AsqtadMdagM, and Chroma::QDPStaggeredDslash.

Referenced by Chroma::EigSpecRitzCG(), Chroma::EigSpecRitzKS(), Chroma::MinimalResidualExtrapolation4DChronoPredictor< T >::find_extrap_solution(), Chroma::fixMMev2Mev(), Chroma::InvCG2_a(), Chroma::InvCG2_timings_a(), Chroma::InvMultiPrecRichardson(), Chroma::InvRelCG2_a(), Chroma::InvRelGMRESR_CG_a(), Chroma::InvRelGMRESR_SUMR_a(), Chroma::MInvCG2_a(), Chroma::MInvCG2Accum_a(), Chroma::MinimalResidualExtrapolation4DChronoPredictor< T >::newXVector(), Chroma::MinimalResidualExtrapolation4DChronoPredictor< T >::newYVector(), and WlInvCG2().


The documentation for this class was generated from the following file: