CHROMA
|
Linear Operator. More...
#include <linearop.h>
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 |
Linear Operator.
Supports creation and application for linear operators that hold things like Dirac operators, etc.
Definition at line 26 of file linearop.h.
|
inlinevirtual |
Virtual destructor to help with cleanup;.
Definition at line 30 of file linearop.h.
|
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().
|
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.
|
inlinevirtual |
Apply the operator onto a source std::vector to some precision.
Reimplemented in Chroma::approx_lmdagm< T >, Chroma::approx_lmdag< T >, Chroma::approx_lopscl< T, C >, Chroma::lovlapms, Chroma::lovlap_double_pass, Chroma::lovddag, Chroma::lovddag_double_pass, Chroma::lg5eps, and Chroma::lg5eps_double_pass.
Definition at line 36 of file linearop.h.
References chi, Chroma::isign, and psi.
|
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().