Chroma::DiffMdagMLinOpArray< T, P, Q > Class Template Reference
[Fermion linear operators]

M^dag.M linear operator over arrays. More...

#include <lmdagm.h>

Inheritance diagram for Chroma::DiffMdagMLinOpArray< T, P, Q >:

Chroma::DiffLinearOperatorArray< T, P, Q > Chroma::LinearOperatorArray< T > List of all members.

Public Member Functions

 DiffMdagMLinOpArray (DiffLinearOperatorArray< T, P, Q > *p)
 Initialize pointer with existing pointer.
 DiffMdagMLinOpArray (Handle< DiffLinearOperatorArray< T, P, Q > > p)
 Copy pointer (one more owner).
 ~DiffMdagMLinOpArray ()
 Destructor.
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator.
int size () const
 Length of array index.
const Subset & subset () const
 Subset comes from underlying operator.
void operator() (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 Apply the operator onto a source vector.
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.
unsigned long nFlops (void) const
 Return the number of flops performed by operator().

Private Attributes

Handle< DiffLinearOperatorArray<
T, P, Q > > 
A

Detailed Description

template<typename T, typename P, typename Q>
class Chroma::DiffMdagMLinOpArray< T, P, Q >

M^dag.M linear operator over arrays.

Linear operator forming M^dag.M from an operator M

Definition at line 247 of file lmdagm.h.


Constructor & Destructor Documentation

template<typename T, typename P, typename Q>
Chroma::DiffMdagMLinOpArray< T, P, Q >::DiffMdagMLinOpArray ( DiffLinearOperatorArray< T, P, Q > *  p  )  [inline]

Initialize pointer with existing pointer.

Requires that the pointer p is a return value of new

Definition at line 252 of file lmdagm.h.

template<typename T, typename P, typename Q>
Chroma::DiffMdagMLinOpArray< T, P, Q >::DiffMdagMLinOpArray ( Handle< DiffLinearOperatorArray< T, P, Q > >  p  )  [inline]

Copy pointer (one more owner).

Definition at line 255 of file lmdagm.h.

template<typename T, typename P, typename Q>
Chroma::DiffMdagMLinOpArray< T, P, Q >::~DiffMdagMLinOpArray (  )  [inline]

Destructor.

Definition at line 258 of file lmdagm.h.


Member Function Documentation

template<typename T, typename P, typename Q>
virtual void Chroma::DiffMdagMLinOpArray< T, P, Q >::deriv ( P ds_u,
const multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign,
const Real &  epsilon 
) const [inline, virtual]

Apply the derivative of the operator.

Deriv of chi^dag * A^dag * A * psi

Default implementation

Reimplemented from Chroma::DiffLinearOperatorArray< T, P, Q >.

Definition at line 305 of file lmdagm.h.

References Chroma::DiffMdagMLinOpArray< T, P, Q >::A, Chroma::MINUS, Chroma::PLUS, and Chroma::DiffMdagMLinOpArray< T, P, Q >::size().

template<typename T, typename P, typename Q>
virtual void Chroma::DiffMdagMLinOpArray< T, P, Q >::deriv ( P ds_u,
const multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign 
) const [inline, virtual]

Apply the derivative of the operator.

Deriv of chi^dag * A^dag * A * psi

Default implementation

Reimplemented from Chroma::DiffLinearOperatorArray< T, P, Q >.

Definition at line 284 of file lmdagm.h.

References Chroma::DiffMdagMLinOpArray< T, P, Q >::A, Chroma::MINUS, Chroma::PLUS, and Chroma::DiffMdagMLinOpArray< T, P, Q >::size().

template<typename T, typename P, typename Q>
const FermBC<T,P,Q>& Chroma::DiffMdagMLinOpArray< T, P, Q >::getFermBC (  )  const [inline, virtual]

Return the fermion BC object for this linear operator.

Implements Chroma::DiffLinearOperatorArray< T, P, Q >.

Definition at line 261 of file lmdagm.h.

References Chroma::DiffMdagMLinOpArray< T, P, Q >::A.

template<typename T, typename P, typename Q>
unsigned long Chroma::DiffMdagMLinOpArray< T, P, Q >::nFlops ( void   )  const [inline, virtual]

Return the number of flops performed by operator().

Reimplemented from Chroma::LinearOperatorArray< T >.

Definition at line 320 of file lmdagm.h.

References Chroma::DiffMdagMLinOpArray< T, P, Q >::A.

template<typename T, typename P, typename Q>
void Chroma::DiffMdagMLinOpArray< T, P, Q >::operator() ( multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign 
) const [inline, virtual]

Apply the operator onto a source vector.

For this operator, the sign is ignored

Implements Chroma::LinearOperatorArray< T >.

Definition at line 271 of file lmdagm.h.

References Chroma::MINUS, Chroma::PLUS, and Chroma::DiffMdagMLinOpArray< T, P, Q >::size().

template<typename T, typename P, typename Q>
int Chroma::DiffMdagMLinOpArray< T, P, Q >::size ( void   )  const [inline, virtual]

Length of array index.

Implements Chroma::LinearOperatorArray< T >.

Definition at line 264 of file lmdagm.h.

References Chroma::DiffMdagMLinOpArray< T, P, Q >::A.

Referenced by Chroma::DiffMdagMLinOpArray< T, P, Q >::deriv(), and Chroma::DiffMdagMLinOpArray< T, P, Q >::operator()().

template<typename T, typename P, typename Q>
const Subset& Chroma::DiffMdagMLinOpArray< T, P, Q >::subset ( void   )  const [inline, virtual]

Subset comes from underlying operator.

Implements Chroma::LinearOperatorArray< T >.

Definition at line 267 of file lmdagm.h.

References Chroma::DiffMdagMLinOpArray< T, P, Q >::A.


Member Data Documentation

template<typename T, typename P, typename Q>
Handle< DiffLinearOperatorArray<T,P,Q> > Chroma::DiffMdagMLinOpArray< T, P, Q >::A [private]

Definition at line 323 of file lmdagm.h.

Referenced by Chroma::DiffMdagMLinOpArray< T, P, Q >::deriv(), Chroma::DiffMdagMLinOpArray< T, P, Q >::getFermBC(), Chroma::DiffMdagMLinOpArray< T, P, Q >::nFlops(), Chroma::DiffMdagMLinOpArray< T, P, Q >::size(), and Chroma::DiffMdagMLinOpArray< T, P, Q >::subset().


The documentation for this class was generated from the following file:
Generated on Sun Nov 22 04:40:17 2009 for CHROMA by  doxygen 1.4.7