12 using namespace QDP::Hints;
34 clov.create(thin_fs, param);
36 invclov.create(thin_fs,param,clov);
40 D.create(fs, param.anisoParam);
47 EvenOddPrecSLRCLinOp::oddOddLinOp(LatticeFermion&
chi,
const LatticeFermion&
psi,
56 EvenOddPrecSLRCLinOp::evenEvenLinOp(LatticeFermion&
chi,
const LatticeFermion&
psi,
65 EvenOddPrecSLRCLinOp::evenEvenInvLinOp(LatticeFermion&
chi,
const LatticeFermion&
psi,
81 EvenOddPrecSLRCLinOp::evenOddLinOp(LatticeFermion&
chi,
82 const LatticeFermion&
psi,
104 EvenOddPrecSLRCLinOp::oddEvenLinOp(LatticeFermion&
chi,
105 const LatticeFermion&
psi,
126 const LatticeFermion&
psi,
131 LatticeFermion tmp1; moveToFastMemoryHint(tmp1);
132 LatticeFermion
tmp2; moveToFastMemoryHint(
tmp2);
133 Real mquarter = -0.25;
143 chi[rb[1]] += mquarter*tmp1;
151 EvenOddPrecSLRCLinOp::derivEvenEvenLinOp(multi1d<LatticeColorMatrix>& ds_u,
152 const LatticeFermion&
chi,
const LatticeFermion&
psi,
158 getFermBC().zero(ds_u);
165 EvenOddPrecSLRCLinOp::derivLogDetEvenEvenLinOp(multi1d<LatticeColorMatrix>& ds_u,
170 invclov.derivTrLn(ds_u,
isign, 0);
171 getFermBC().zero(ds_u);
178 EvenOddPrecSLRCLinOp::derivEvenOddLinOp(multi1d<LatticeColorMatrix>& ds_u,
179 const LatticeFermion&
chi,
const LatticeFermion&
psi,
185 multi1d<LatticeColorMatrix> ds_tmp(
Nd);
192 ds_tmp[
mu] *= Real(-0.5);
198 getFermBC().zero(ds_u);
205 EvenOddPrecSLRCLinOp::derivOddEvenLinOp(multi1d<LatticeColorMatrix>& ds_u,
206 const LatticeFermion&
chi,
const LatticeFermion&
psi,
212 multi1d<LatticeColorMatrix> ds_tmp(
Nd);
217 ds_tmp[
mu] *= Real(-0.5);
222 getFermBC().zero(ds_u);
230 EvenOddPrecSLRCLinOp::derivOddOddLinOp(multi1d<LatticeColorMatrix>& ds_u,
231 const LatticeFermion&
chi,
const LatticeFermion&
psi,
238 getFermBC().zero(ds_u);
245 unsigned long EvenOddPrecSLRCLinOp::nFlops()
const
247 unsigned long cbsite_flops = 2*D.nFlops()+2*clov.nFlops()+4*Nc*Ns;
248 return cbsite_flops*(Layout::sitesOnNode()/2);
253 Double EvenOddPrecSLRCLinOp::logDetEvenEvenLinOp(
void)
const {
254 return invclov.cholesDet(0);
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Periodic version of FermState.
SLIC (Stout Link Irrelevant Clover ferm connection state.
const Q & getThinLinks() const
void fatForceToThin(const P &F_fat, P &F_thin) const
Even-odd preconditioned Clover linear operator (fat-relevant, thin-irrelevant terms)
multi1d< Hadron2PtContraction_t > operator()(const multi1d< LatticeColorMatrix > &u)
Asqtad Staggered-Dirac operator.
FloatingPoint< double > Double
Periodic ferm state and a creator.
Simple ferm state and a creator.
Params for clover ferm acts.