26 template<
typename T,
typename P,
typename Q>
34 const Subset&
subset()
const {
return all;}
61 moveToFastMemoryHint(tmp1);
62 moveToFastMemoryHint(
tmp2);
84 QDPIO::cerr <<
"EvenOdd: not implemented" << std::endl;
93 QDPIO::cerr <<
"EvenOdd: not implemented" << std::endl;
102 QDPIO::cerr <<
"EvenOdd: not implemented" << std::endl;
111 QDPIO::cerr <<
"EvenOdd: not implemented" << std::endl;
128 moveToFastMemoryHint(tmp1);
129 moveToFastMemoryHint(
tmp2);
Differentiable Linear Operator.
Even odd Linear Operator (for staggered like things )
virtual void deriv(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
virtual const FermBC< T, P, Q > & getFermBC() const =0
Return the fermion BC object for this linear operator.
virtual unsigned long evenEvenNFlops() const
Return flops performed by the evenEvenLinOp.
virtual unsigned long oddEvenNFlops() const
Return flops performed by the oddEvenLinOp.
const Subset & subset() const
Only defined on the even lattice.
virtual void operator()(T &chi, const T &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
virtual void oddOddLinOp(T &chi, const T &psi, enum PlusMinus isign) const =0
Apply the the odd-odd block onto a source std::vector.
virtual void evenEvenLinOp(T &chi, const T &psi, enum PlusMinus isign) const =0
Apply the even-even block onto a source std::vector.
virtual void derivOddEvenLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the the odd-even block onto a source std::vector.
virtual void derivOddOddLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the the odd-odd block onto a source std::vector.
virtual ~EvenOddLinearOperator()
Virtual destructor to help with cleanup;.
virtual unsigned long oddOddNFlops() const
Return flops performed by the oddOddLinOp.
virtual unsigned long evenOddNFlops() const
Return flops performed by the evenOddLinOp.
virtual void derivEvenEvenLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the even-even block onto a source std::vector.
virtual void derivEvenOddLinOp(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the the even-odd block onto a source std::vector.
virtual unsigned long nFlops() const
Return flops performed by the operator()
virtual void evenOddLinOp(T &chi, const T &psi, enum PlusMinus isign) const =0
Apply the the even-odd block onto a source std::vector.
virtual void oddEvenLinOp(T &chi, const T &psi, enum PlusMinus isign) const =0
Apply the the odd-even block onto a source std::vector.
Base class for all fermion action boundary conditions.
Asqtad Staggered-Dirac operator.
LinOpSysSolverMGProtoClover::T T
multi1d< LatticeFermion > chi(Ncb)
multi1d< LatticeColorMatrix > P