6 #ifndef __eoprec_wilson_linop_w_h__
7 #define __eoprec_wilson_linop_w_h__
28 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
32 typedef LatticeFermion
T;
33 typedef multi1d<LatticeColorMatrix>
P;
34 typedef multi1d<LatticeColorMatrix>
Q;
53 const multi1d<Real>& coeffs_)
54 {
create(fs,Mass_,coeffs_);}
74 const multi1d<Real>& coeffs_);
115 const LatticeFermion&
chi,
const LatticeFermion&
psi,
126 const LatticeFermion&
chi,
const LatticeFermion&
psi,
131 const LatticeFermion&
chi,
const LatticeFermion&
psi,
136 const LatticeFermion&
chi,
const LatticeFermion&
psi,
147 unsigned long nFlops()
const;
Even-odd preconditioned linear operator.
Even-odd preconditioned Wilson-Dirac operator.
EvenOddPrecWilsonLinOp(Handle< FermState< T, P, Q > > fs, const Real &Mass_, const AnisoParam_t &aniso)
Full constructor with Anisotropy.
unsigned long nFlops() const
Return flops performed by the operator()
multi1d< LatticeColorMatrix > Q
void derivEvenEvenLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
void derivOddOddLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
void derivEvenOddLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
multi1d< LatticeColorMatrix > P
void evenEvenInvLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the inverse of the even-even block onto a source std::vector.
~EvenOddPrecWilsonLinOp()
Destructor is automatic.
void oddOddLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
void oddEvenLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
EvenOddPrecWilsonLinOp()
Partial constructor.
void evenEvenLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-even block onto a source std::vector.
EvenOddPrecWilsonLinOp(Handle< FermState< T, P, Q > > fs, const Real &Mass_, const multi1d< Real > &coeffs_)
Full constructor with array of coefficients.
void create(Handle< FermState< T, P, Q > > fs, const Real &Mass_)
Creation routine.
void derivOddEvenLinOp(multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
void operator()(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Override inherited one with a few more funkies.
void evenOddLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
EvenOddPrecWilsonLinOp(Handle< FermState< T, P, Q > > fs, const Real &Mass_)
Full constructor.
Base class for all fermion action boundary conditions.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
General Wilson-Dirac dslash.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
Include possibly optimized Wilson dslash.
Preconditioned 4D Linop with Gauge Independent Even-Even part.
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)
Parameters for anisotropy.