6 #ifndef __seoprec_clover_linop_w_h__
7 #define __seoprec_clover_linop_w_h__
30 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
34 typedef LatticeFermion
T;
35 typedef multi1d<LatticeColorMatrix>
P;
36 typedef multi1d<LatticeColorMatrix>
Q;
121 const multi1d<T>&
psi,
125 unsigned long nFlops()
const;
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.
Symmetric even-odd preconditioned Clover-Dirac operator.
multi1d< LatticeColorMatrix > P
void operator()(T &chi, const T &psi, enum PlusMinus isign) const override
Apply even-odd preconditioned Clover fermion linear operator.
void unprecEvenEvenLinOp(T &chi, const T &psi, enum PlusMinus isign) const
Apply the the even-even block onto a source std::vector.
void unprecOddEvenLinOp(T &chi, const T &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
Double logDetEvenEvenLinOp(void) const
Get the log det of the even even part.
CloverFermActParams param
void derivMultipole(P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const override
Deriv.
SymEvenOddPrecCloverLinOp()
Partial constructor.
void create(Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_)
Creation routine.
void unprecOddOddInvLinOp(T &chi, const T &psi, enum PlusMinus isign) const
Apply the inverse of the odd-odd block onto a source std::vector.
void derivLogDetEvenEvenLinOp(P &ds_u, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
virtual void derivUnprecEvenEvenLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
virtual void derivUnprecEvenOddLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
multi1d< LatticeColorMatrix > Q
virtual void derivUnprecOddOddLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
void derivLogDetOddOddLinOp(P &ds_u, enum PlusMinus isign) const
Apply the odd-odd block onto a source std::vector.
void unprecEvenEvenInvLinOp(T &chi, const T &psi, enum PlusMinus isign) const
Apply the inverse of 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.
SymEvenOddPrecCloverLinOp(Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_)
Full constructor.
unsigned long nFlops() const
Return flops performed by the operator()
void unprecOddOddLinOp(T &chi, const T &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
void unprecEvenOddLinOp(T &chi, const T &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
Double logDetOddOddLinOp(void) const
Get the log det of the odd odd part.
void deriv(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const override
Deriv.
~SymEvenOddPrecCloverLinOp()
Destructor is automatic.
virtual void derivUnprecOddEvenLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
Even-odd preconditioned linear operator.
Parameters for Clover fermion action.
Include possibly optimized Clover terms.
Include possibly optimized Wilson dslash.
Fermion action boundary conditions.
Asqtad Staggered-Dirac operator.
LinOpSysSolverMGProtoClover::T T
multi1d< LatticeFermion > chi(Ncb)
FloatingPoint< double > Double
Symmetric preconditioned linear pperators where the even-even and odd-odd parts depends on the gauge ...
Support class for fermion actions and linear operators.
Params for clover ferm acts.
multi1d< LatticeColorMatrix > P