6 #ifndef __lwldslash_base_array_h__
7 #define __lwldslash_base_array_h__
46 multi1d<LatticeColorMatrix>, multi1d<LatticeColorMatrix> >
50 typedef LatticeFermion
T;
51 typedef multi1d<LatticeColorMatrix>
P;
52 typedef multi1d<LatticeColorMatrix>
Q;
58 const Subset&
subset()
const {
return all;}
70 virtual void apply (multi1d<LatticeFermion>&
chi,
71 const multi1d<LatticeFermion>&
psi,
85 const LatticeFermion&
psi,
96 virtual void deriv(multi1d<LatticeColorMatrix>& ds_u,
97 const multi1d<LatticeFermion>&
chi,
98 const multi1d<LatticeFermion>&
psi,
111 virtual void deriv(multi1d<LatticeColorMatrix>& ds_u,
112 const multi1d<LatticeFermion>&
chi,
113 const multi1d<LatticeFermion>&
psi,
125 virtual void deriv(multi1d<LatticeColorMatrix>& ds_u,
126 const LatticeFermion&
chi,
127 const LatticeFermion&
psi,
131 unsigned long nFlops()
const;
Dslash-like Linear Operator for arrays.
Base class for all fermion action boundary conditions.
General Wilson-Dirac dslash over arrays.
unsigned long nFlops() const
Return flops performed by the operator()
virtual ~WilsonDslashBaseArray()
No real need for cleanup here.
const Subset & subset() const
Subset is all here.
virtual const multi1d< Real > & getCoeffs() const =0
Get the anisotropy parameters.
virtual void apply(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, int cb) const =0
virtual const FermBC< T, P, Q > & getFermBC() const =0
Return the fermion BC object for this linear operator.
virtual void apply(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int cb) const =0
virtual void deriv(multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
Take deriv of D.
multi1d< LatticeColorMatrix > Q
multi1d< LatticeColorMatrix > P
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)