CHROMA
|
Differentiable M^dag.M linear operator. More...
#include <lmdagm.h>
Public Member Functions | |
DiffMdagMLinOp (DiffLinearOperator< T, P, Q > *p) | |
Initialize pointer with existing pointer. More... | |
DiffMdagMLinOp (Handle< DiffLinearOperator< T, P, Q > > p) | |
Copy pointer (one more owner) More... | |
~DiffMdagMLinOp () | |
Destructor. More... | |
const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this linear operator. More... | |
const Subset & | subset () const |
Subset comes from underlying operator. More... | |
void | operator() (T &chi, const T &psi, enum PlusMinus isign) const |
Apply the operator onto a source std::vector. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Apply the derivative of the operator. More... | |
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. More... | |
unsigned long | nFlops (void) const |
Return the number of flops performed by operator() More... | |
![]() | |
virtual | ~DiffLinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual void | derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
Return the force for multiple poles. More... | |
![]() | |
virtual | ~LinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual void | operator() (T &chi, const T &psi, enum PlusMinus isign, Real epsilon) const |
Apply the operator onto a source std::vector to some precision. More... | |
Private Attributes | |
Handle< DiffLinearOperator< T, P, Q > > | A |
Differentiable M^dag.M linear operator.
Diff. Linear operator forming M^dag.M from an operator M
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Apply the derivative of the operator.
Deriv of chi^dag * A^dag * A * psi
Default implementation
Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.
Definition at line 194 of file lmdagm.h.
References Chroma::DiffMdagMLinOp< T, P, Q >::A, Chroma::chi(), Chroma::MINUS, Chroma::PLUS, Chroma::psi, and Chroma::tmp.
|
inlinevirtual |
Apply the derivative of the operator.
Deriv of chi^dag * A^dag * A * psi
Default implementation
Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.
Definition at line 215 of file lmdagm.h.
References Chroma::DiffMdagMLinOp< T, P, Q >::A, Chroma::chi(), Chroma::ExternalFieldEnv::epsilon(), Chroma::MINUS, Chroma::PLUS, Chroma::psi, and Chroma::tmp.
|
inlinevirtual |
Return the fermion BC object for this linear operator.
Implements Chroma::DiffLinearOperator< T, P, Q >.
Definition at line 173 of file lmdagm.h.
References Chroma::DiffMdagMLinOp< T, P, Q >::A.
|
inlinevirtual |
Return the number of flops performed by operator()
Reimplemented from Chroma::LinearOperator< T >.
Definition at line 230 of file lmdagm.h.
References Chroma::DiffMdagMLinOp< T, P, Q >::A.
|
inlinevirtual |
Apply the operator onto a source std::vector.
For this operator, the sign is ignored
Implements Chroma::LinearOperator< T >.
Definition at line 180 of file lmdagm.h.
References Chroma::chi(), Chroma::MINUS, Chroma::PLUS, Chroma::psi, and Chroma::tmp.
|
inlinevirtual |
Subset comes from underlying operator.
Implements Chroma::LinearOperator< T >.
Definition at line 176 of file lmdagm.h.
References Chroma::DiffMdagMLinOp< T, P, Q >::A.
|
private |
Definition at line 233 of file lmdagm.h.
Referenced by Chroma::DiffMdagMLinOp< T, P, Q >::deriv(), Chroma::DiffMdagMLinOp< T, P, Q >::getFermBC(), Chroma::DiffMdagMLinOp< T, P, Q >::nFlops(), and Chroma::DiffMdagMLinOp< T, P, Q >::subset().