16 const Real& Mass_,
const Real& H_)
51 unsigned long cbsite_flops = 2*
D.
nFlops()+16*Nc*Ns;
52 return cbsite_flops*(Layout::sitesOnNode()/2);
103 const LatticeFermion&
psi,
127 const LatticeFermion&
psi,
144 const LatticeFermion&
psi,
149 moveToFastMemoryHint(tmp1);
150 moveToFastMemoryHint(
tmp2);
151 moveToFastMemoryHint(
tmp3);
153 Real mquarter = -0.25;
169 chi[rb[1]] +=
H*(GammaConst<Ns,Ns*Ns-1>()*timesI(
psi));
182 chi[rb[1]] -=
H*(GammaConst<Ns,Ns*Ns-1>()*timesI(
psi));
193 const LatticeFermion&
chi,
194 const LatticeFermion&
psi,
203 ds_u[
mu] *= Real(-0.5);
213 const LatticeFermion&
chi,
214 const LatticeFermion&
psi,
223 ds_u[
mu] *= Real(-0.5);
238 #error "ANCIENT SZIN CODE"
239 #error "Not quite correct implementation"
257 const LatticeFermion&
chi,
258 const LatticeFermion&
psi,
263 QDPIO::cerr <<
"EvenOddPrecParWilsonFermAct::dsdu not implemented" << std::endl;
266 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
268 LatticeColorMatrix utmp_1; moveToFastMemoryHint(utmp_1);
269 LatticeFermion
phi; moveToFastMemoryHint(
phi);
270 LatticeFermion rho; moveToFastMemoryHint(rho);
271 LatticeFermion sigma; moveToFastMemoryHint(sigma);
272 LatticeFermion ftmp_1; moveToFastMemoryHint(ftmp_1);
273 LatticeFermion ftmp_2; moveToFastMemoryHint(ftmp_2);
304 SPIN_PRODUCT(
psi,(INTEGER_LSHIFT_FUNCTION(1,
mu)),ftmp_2);
307 utmp_1 = -(shift(ftmp_2,
cb,
FORWARD,
mu) * adj(sigma));
310 SPIN_PRODUCT(
phi,(INTEGER_LSHIFT_FUNCTION(1,
mu)),ftmp_2);
313 utmp_1 += shift(ftmp_2,
cb,
FORWARD,
mu) * adj(rho);
321 SPIN_PRODUCT(rho,(INTEGER_LSHIFT_FUNCTION(1,
mu)),ftmp_2);
327 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.
Support class for fermion actions and linear operators.
virtual const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this action.
Class for counted reference semantics.
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.