6 #ifndef __prec_clover_dumb_linop_w_h__
7 #define __prec_clover_dumb_linop_w_h__
37 typedef LatticeFermionF
T;
38 typedef LatticeColorMatrixF
U;
74 Real mquarter = -0.25;
86 chi[rb[1]] += mquarter*tmp1;
91 tmp1[rb[1]] = (GammaConst<Ns,Ns*Ns-1>() * timesI(
psi));
111 cbsite_flops += 4*Nc*Ns;
113 return cbsite_flops*(Layout::sitesOnNode()/2);
146 typedef LatticeFermionD
T;
147 typedef LatticeColorMatrixD
U;
148 typedef multi1d<U>
P;
149 typedef multi1d<U>
Q;
190 Real mquarter = -0.25;
202 chi[rb[1]] += mquarter*tmp1;
207 tmp1[rb[1]] = (GammaConst<Ns,Ns*Ns-1>() * timesI(
psi));
227 cbsite_flops += 4*Nc*Ns;
229 return cbsite_flops*(Layout::sitesOnNode()/2);
unsigned long nFlops() const
Return flops performed by the operator()
Even-odd preconditioned Clover-Dirac operator.
~EvenOddPrecDumbCloverDLinOp()
Destructor is automatic.
CloverFermActParams param
void operator()(T &chi, const T &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
const Subset & subset() const
Return the subset on which the operator acts.
unsigned long nFlops() const
Return flops performed by the operator()
EvenOddPrecDumbCloverDLinOp(Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_)
Full constructor.
void create(Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_)
Creation routine.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
Even-odd preconditioned Clover-Dirac operator.
unsigned long nFlops() const
Return flops performed by the operator()
const Subset & subset() const
Return the subset on which the operator acts.
CloverFermActParams param
void operator()(LatticeFermionF &chi, const LatticeFermionF &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
const FermBC< LatticeFermionF, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
void create(Handle< FermState< LatticeFermionF, P, Q > > fs, const CloverFermActParams ¶m_)
Creation routine.
~EvenOddPrecDumbCloverFLinOp()
Destructor is automatic.
EvenOddPrecDumbCloverFLinOp(Handle< FermState< LatticeFermionF, P, Q > > fs, const CloverFermActParams ¶m_)
Full constructor.
Base class for all fermion action boundary conditions.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
void create(Handle< FermState< T, multi1d< U >, multi1d< U > > > fs, const CloverFermActParams ¶m_)
Creation routine.
void apply(T &chi, const T &psi, enum PlusMinus isign, int cb) const
void choles(int cb)
Computes the inverse of the term on cb using Cholesky.
General Wilson-Dirac dslash.
void create(Handle< FermState< T, P, Q > > state)
Creation routine.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
unsigned long nFlops() const
Return flops performed by the operator()
Parameters for Clover fermion action.
Include possibly optimized Clover terms.
Include possibly optimized Wilson dslash.
Preconditioned Linear Operators where the Even Even part depends on the gauge field.
Fermion action boundary conditions.
void apply(T &chi, const T &psi, enum PlusMinus isign, int cb) const
General Wilson-Dirac dslash.
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)
Support class for fermion actions and linear operators.
Params for clover ferm acts.