35 inline const Subset&
subset()
const {
return A->subset();}
41 T tmp; QDP::Hints::moveToFastMemoryHint(
tmp);
48 unsigned long nflops=2*
A->nFlops();
80 int size()
const {
return A->size();}
83 inline const Subset&
subset()
const {
return A->subset();}
89 multi1d<T>
tmp(
size()); QDP::Hints::moveToFastMemoryHint(
tmp);
95 unsigned long nflops=2*
A->nFlops();
125 inline const Subset&
subset()
const {
return A->subset();}
131 T tmp; QDP::Hints::moveToFastMemoryHint(
tmp);
141 T tmp; QDP::Hints::moveToFastMemoryHint(
tmp);
158 template<
typename T,
typename P,
typename Q>
176 inline const Subset&
subset()
const {
return A->subset();}
182 T tmp; QDP::Hints::moveToFastMemoryHint(
tmp);
197 T tmp; QDP::Hints::moveToFastMemoryHint(
tmp);
230 unsigned long nFlops(
void)
const {
return 2*
A->nFlops();}
245 template<
typename T,
typename P,
typename Q>
263 int size()
const {
return A->size();}
266 inline const Subset&
subset()
const {
return A->subset();}
272 multi1d<T>
tmp(
size()); QDP::Hints::moveToFastMemoryHint(
tmp);
283 virtual void deriv(
P& ds_u,
const multi1d<T>&
chi,
const multi1d<T>&
psi,
286 multi1d<T>
tmp(
size()); QDP::Hints::moveToFastMemoryHint(
tmp);
304 virtual void deriv(
P& ds_u,
const multi1d<T>&
chi,
const multi1d<T>&
psi,
319 unsigned long nFlops(
void)
const {
return 2*
A->nFlops();}
Differentiable Linear Operator.
Differentiable Linear Operator.
M^dag.M linear operator over arrays.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
DiffMdagMLinOpArray(DiffLinearOperatorArray< T, P, Q > *p)
Initialize pointer with existing pointer.
Handle< DiffLinearOperatorArray< T, P, Q > > A
unsigned long nFlops(void) const
Return the number of flops performed by operator()
const Subset & subset() const
Subset comes from underlying operator.
int size() const
Length of array index.
virtual void deriv(P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
Apply the derivative of the operator.
virtual void deriv(P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, const Real &epsilon) const
Apply the derivative of the operator.
~DiffMdagMLinOpArray()
Destructor.
void operator()(multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
DiffMdagMLinOpArray(Handle< DiffLinearOperatorArray< T, P, Q > > p)
Copy pointer (one more owner)
Differentiable M^dag.M linear operator.
virtual void deriv(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign, const Real &epsilon) const
Apply the derivative of the operator.
Handle< DiffLinearOperator< T, P, Q > > A
const Subset & subset() const
Subset comes from underlying operator.
DiffMdagMLinOp(DiffLinearOperator< T, P, Q > *p)
Initialize pointer with existing pointer.
void operator()(T &chi, const T &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
DiffMdagMLinOp(Handle< DiffLinearOperator< T, P, Q > > p)
Copy pointer (one more owner)
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
~DiffMdagMLinOp()
Destructor.
unsigned long nFlops(void) const
Return the number of flops performed by operator()
virtual void deriv(P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
Apply the derivative of the operator.
Base class for all fermion action boundary conditions.
Class for counted reference semantics.
Linear Operator to arrays.
M^dag.M linear operator over arrays.
~MdagMLinOpArray()
Destructor.
Handle< LinearOperatorArray< T > > A
MdagMLinOpArray(LinearOperatorArray< T > *p)
Initialize pointer with existing pointer.
void operator()(multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
unsigned long nFlops(void) const
int size() const
Length of array index.
MdagMLinOpArray(Handle< LinearOperatorArray< T > > p)
Copy pointer (one more owner)
const Subset & subset() const
Subset comes from underlying operator.
MdagMLinOp(Handle< LinearOperator< T > > p)
Copy pointer (one more owner)
unsigned long nFlops(void) const
Handle< LinearOperator< T > > A
void operator()(T &chi, const T &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
MdagMLinOp(LinearOperator< T > *p)
Initialize pointer with existing pointer.
const Subset & subset() const
Subset comes from underlying operator.
Handle< LinearOperator< T > > A
approx_lmdagm(Handle< LinearOperator< T > > p)
Copy pointer (one more owner)
const Subset & subset() const
Subset comes from underlying operator.
~approx_lmdagm()
Destructor.
void operator()(T &chi, const T &psi, enum PlusMinus isign) const
Apply the operator onto a source std::vector.
approx_lmdagm(LinearOperator< T > *p)
Initialize pointer with existing pointer.
Class for counted reference semantics.
int epsilon(int i, int j, int k)
Asqtad Staggered-Dirac operator.
LinOpSysSolverMGProtoClover::T T
multi1d< LatticeFermion > chi(Ncb)
multi1d< LatticeColorMatrix > P