6 #ifndef __prec_parwilson_linop_w_h__
7 #define __prec_parwilson_linop_w_h__
27 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
31 typedef LatticeFermion
T;
32 typedef multi1d<LatticeColorMatrix>
P;
33 typedef multi1d<LatticeColorMatrix>
Q;
40 const Real& Mass_,
const Real& H_)
51 const Real& Mass_,
const Real& H_);
80 const LatticeFermion&
chi,
const LatticeFermion&
psi,
89 const LatticeFermion&
chi,
const LatticeFermion&
psi,
94 const LatticeFermion&
chi,
const LatticeFermion&
psi,
100 const LatticeFermion&
chi,
const LatticeFermion&
psi,
108 unsigned long nFlops()
const;
Even-odd preconditioned linear operator.
Even-odd preconditioned Wilson fermion linear operator with parity breaking term.
void evenEvenInvLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the inverse of the even-even block onto a source std::vector.
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 oddEvenLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
void evenOddLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
void create(Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &H_)
Creation routine.
EvenOddPrecParWilsonLinOp(Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &H_)
Full constructor.
~EvenOddPrecParWilsonLinOp()
Destructor is automatic.
unsigned long nFlops() const
Return flops performed by the operator()
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.
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 operator()(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Override inherited one with a few more funkies.
void evenEvenLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the even-even block onto a source std::vector.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
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 oddOddLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
multi1d< LatticeColorMatrix > P
EvenOddPrecParWilsonLinOp()
Partial 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)