CHROMA
|
Differentiable M^dag linear operator. More...
#include <ldag.h>
Public Member Functions | |
DiffMdagLinOp (DiffLinearOperator< T, P, Q > *p) | |
Initialize pointer with existing pointer. More... | |
DiffMdagLinOp (Handle< DiffLinearOperator< T, P, Q > > p) | |
Copy pointer (one more owner) More... | |
~DiffMdagLinOp () | |
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... | |
Public Member Functions inherited from Chroma::DiffLinearOperator< T, P, Q > | |
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... | |
Public Member Functions inherited from Chroma::LinearOperator< T > | |
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 linear operator.
Diff. Linear operator forming M^dag from an operator M
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
Apply the derivative of the operator.
Deriv of chi^dag * A^dag * psi
Default implementation
Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.
Definition at line 195 of file ldag.h.
References Chroma::DiffMdagLinOp< T, P, Q >::A, Chroma::chi(), Chroma::isign, Chroma::MINUS, Chroma::PLUS, Chroma::psi, and Chroma::tmp.
|
inlinevirtual |
Apply the derivative of the operator.
Deriv of chi^dag * A^dag * psi
Default implementation
Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.
Definition at line 211 of file ldag.h.
References Chroma::DiffMdagLinOp< T, P, Q >::A, Chroma::chi(), Chroma::ExternalFieldEnv::epsilon(), Chroma::isign, 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 174 of file ldag.h.
References Chroma::DiffMdagLinOp< T, P, Q >::A.
|
inlinevirtual |
Return the number of flops performed by operator()
Reimplemented from Chroma::LinearOperator< T >.
Definition at line 221 of file ldag.h.
References Chroma::DiffMdagLinOp< 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 181 of file ldag.h.
References Chroma::chi(), Chroma::isign, Chroma::MINUS, Chroma::PLUS, Chroma::psi, and Chroma::tmp.
|
inlinevirtual |
Subset comes from underlying operator.
Implements Chroma::LinearOperator< T >.
Definition at line 177 of file ldag.h.
References Chroma::DiffMdagLinOp< T, P, Q >::A.
|
private |
Definition at line 224 of file ldag.h.
Referenced by Chroma::DiffMdagLinOp< T, P, Q >::deriv(), Chroma::DiffMdagLinOp< T, P, Q >::getFermBC(), Chroma::DiffMdagLinOp< T, P, Q >::nFlops(), and Chroma::DiffMdagLinOp< T, P, Q >::subset().