17 const Real& mu_sigma_,
const Real& mu_delta_)
54 unsigned long cbsite_flops = 2*
D.
nFlops()+16*Nc*Ns;
55 return cbsite_flops*(Layout::sitesOnNode()/2);
106 const LatticeFermion&
psi,
130 const LatticeFermion&
psi,
147 const LatticeFermion&
psi,
152 moveToFastMemoryHint(tmp1);
153 moveToFastMemoryHint(
tmp2);
154 moveToFastMemoryHint(
tmp3);
156 Real mquarter = -0.25;
172 chi[rb[1]] +=
H*(GammaConst<Ns,Ns*Ns-1>()*timesI(
psi));
185 chi[rb[1]] -=
H*(GammaConst<Ns,Ns*Ns-1>()*timesI(
psi));
196 const LatticeFermion&
chi,
197 const LatticeFermion&
psi,
206 ds_u[
mu] *= Real(-0.5);
216 const LatticeFermion&
chi,
217 const LatticeFermion&
psi,
226 ds_u[
mu] *= Real(-0.5);
241 #error "ANCIENT SZIN CODE"
242 #error "Not quite correct implementation"
260 const LatticeFermion&
chi,
261 const LatticeFermion&
psi,
266 QDPIO::cerr <<
"EvenOddPrecParWilsonFermAct::dsdu not implemented" << std::endl;
269 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
271 LatticeColorMatrix utmp_1; moveToFastMemoryHint(utmp_1);
272 LatticeFermion
phi; moveToFastMemoryHint(
phi);
273 LatticeFermion rho; moveToFastMemoryHint(rho);
274 LatticeFermion sigma; moveToFastMemoryHint(sigma);
275 LatticeFermion ftmp_1; moveToFastMemoryHint(ftmp_1);
276 LatticeFermion ftmp_2; moveToFastMemoryHint(ftmp_2);
307 SPIN_PRODUCT(
psi,(INTEGER_LSHIFT_FUNCTION(1,
mu)),ftmp_2);
310 utmp_1 = -(shift(ftmp_2,
cb,
FORWARD,
mu) * adj(sigma));
313 SPIN_PRODUCT(
phi,(INTEGER_LSHIFT_FUNCTION(1,
mu)),ftmp_2);
316 utmp_1 += shift(ftmp_2,
cb,
FORWARD,
mu) * adj(rho);
324 SPIN_PRODUCT(rho,(INTEGER_LSHIFT_FUNCTION(1,
mu)),ftmp_2);
330 SPIN_PRODUCT(sigma,(INTEGER_LSHIFT_FUNCTION(1,
mu)),ftmp_2);
void evenEvenInvLinOp(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
Apply the inverse of 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.
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 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.
virtual const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this action.
void create(Handle< FermState< T, P, Q > > state)
Creation routine.
virtual void deriv(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Take deriv of D.
unsigned long nFlops() const
Return flops performed by the operator()
Even-odd preconditioned Wilson fermion linear operator with parity breaking term.
void apply(T &chi, const T &psi, enum PlusMinus isign, int cb) const
General Wilson-Dirac dslash.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
dslash(u, eta, tmp, MINUS, 1)
multi1d< LatticeFermion > chi(Ncb)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
FloatingPoint< double > Double
multi1d< LatticeColorMatrix > deriv(const EvenOddPrecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &AP, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign)
Apply the operator onto a source std::vector.