CHROMA
Public Member Functions | Private Attributes | List of all members

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

#include <ldag.h>

Inheritance diagram for Chroma::DiffMdagLinOpArray< T, P, Q >:
Chroma::DiffLinearOperatorArray< T, P, Q > Chroma::LinearOperatorArray< T >

Public Member Functions

 DiffMdagLinOpArray (DiffLinearOperatorArray< T, P, Q > *p)
 Initialize pointer with existing pointer. More...
 
 DiffMdagLinOpArray (Handle< DiffLinearOperatorArray< T, P, Q > > p)
 Copy pointer (one more owner) More...
 
 ~DiffMdagLinOpArray ()
 Destructor. More...
 
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator. More...
 
int size () const
 Length of array index. More...
 
const Subset & subset () const
 Subset comes from underlying operator. More...
 
void operator() (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 Apply the operator onto a source std::vector. More...
 
virtual void deriv (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 Apply the derivative of the operator. More...
 
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. More...
 
unsigned long nFlops (void) const
 Return the number of flops performed by operator() More...
 
- Public Member Functions inherited from Chroma::DiffLinearOperatorArray< T, P, Q >
virtual ~DiffLinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
- Public Member Functions inherited from Chroma::LinearOperatorArray< T >
virtual ~LinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
virtual void operator() (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, Real epsilon) const
 Apply the operator onto a source std::vector to some precision. More...
 

Private Attributes

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

Detailed Description

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

M^dag linear operator over arrays.

Linear operator forming M^dag from an operator M

Definition at line 237 of file ldag.h.

Constructor & Destructor Documentation

◆ DiffMdagLinOpArray() [1/2]

template<typename T , typename P , typename Q >
Chroma::DiffMdagLinOpArray< T, P, Q >::DiffMdagLinOpArray ( 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 242 of file ldag.h.

◆ DiffMdagLinOpArray() [2/2]

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

Copy pointer (one more owner)

Definition at line 245 of file ldag.h.

◆ ~DiffMdagLinOpArray()

template<typename T , typename P , typename Q >
Chroma::DiffMdagLinOpArray< T, P, Q >::~DiffMdagLinOpArray ( )
inline

Destructor.

Definition at line 248 of file ldag.h.

Member Function Documentation

◆ deriv() [1/2]

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

Apply the derivative of the operator.

Deriv of chi^dag * A^dag * psi

Default implementation

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

Definition at line 275 of file ldag.h.

References Chroma::DiffMdagLinOpArray< T, P, Q >::A, Chroma::chi(), Chroma::isign, Chroma::MINUS, Chroma::PLUS, Chroma::psi, Chroma::DiffMdagLinOpArray< T, P, Q >::size(), and Chroma::tmp.

◆ deriv() [2/2]

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

Apply the derivative of the operator.

Deriv of chi^dag * A^dag * psi

Default implementation

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

Definition at line 291 of file ldag.h.

References Chroma::DiffMdagLinOpArray< T, P, Q >::A, Chroma::chi(), Chroma::ExternalFieldEnv::epsilon(), Chroma::isign, Chroma::MINUS, Chroma::PLUS, Chroma::psi, Chroma::DiffMdagLinOpArray< T, P, Q >::size(), and Chroma::tmp.

◆ getFermBC()

template<typename T , typename P , typename Q >
const FermBC<T,P,Q>& Chroma::DiffMdagLinOpArray< T, P, Q >::getFermBC ( ) const
inlinevirtual

Return the fermion BC object for this linear operator.

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

Definition at line 251 of file ldag.h.

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

◆ nFlops()

template<typename T , typename P , typename Q >
unsigned long Chroma::DiffMdagLinOpArray< T, P, Q >::nFlops ( void  ) const
inlinevirtual

Return the number of flops performed by operator()

Reimplemented from Chroma::LinearOperatorArray< T >.

Definition at line 301 of file ldag.h.

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

◆ operator()()

template<typename T , typename P , typename Q >
void Chroma::DiffMdagLinOpArray< T, P, Q >::operator() ( multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Apply the operator onto a source std::vector.

For this operator, the sign is ignored

Implements Chroma::LinearOperatorArray< T >.

Definition at line 261 of file ldag.h.

References Chroma::chi(), Chroma::isign, Chroma::MINUS, Chroma::PLUS, Chroma::psi, Chroma::DiffMdagLinOpArray< T, P, Q >::size(), and Chroma::tmp.

◆ size()

template<typename T , typename P , typename Q >
int Chroma::DiffMdagLinOpArray< T, P, Q >::size ( void  ) const
inlinevirtual

◆ subset()

template<typename T , typename P , typename Q >
const Subset& Chroma::DiffMdagLinOpArray< T, P, Q >::subset ( void  ) const
inlinevirtual

Subset comes from underlying operator.

Implements Chroma::LinearOperatorArray< T >.

Definition at line 257 of file ldag.h.

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

Member Data Documentation

◆ A

template<typename T , typename P , typename Q >
Handle< DiffLinearOperatorArray<T,P,Q> > Chroma::DiffMdagLinOpArray< T, P, Q >::A
private

The documentation for this class was generated from the following file: