QDP++

Classes

class  QDP::PColorMatrix< T, N >
 Primitive color Matrix class. More...
struct  QDP::UnaryReturn< PColorMatrix< T, N >, FnTraceColor >
struct  QDP::BinaryReturn< PColorMatrix< T1, N >, PColorMatrix< T2, N >, FnTraceColorMultiply >
 PScalar = traceColorMultiply(PColorMatrix,PColorMatrix). More...
struct  QDP::BinaryReturn< PColorMatrix< T1, N >, PScalar< T2 >, FnTraceColorMultiply >
 PScalar = traceColorMultiply(PColorMatrix,PScalar). More...
struct  QDP::BinaryReturn< PScalar< T1 >, PColorMatrix< T2, N >, FnTraceColorMultiply >
struct  QDP::UnaryReturn< PColorMatrix< T, N >, FnTransposeColor >
struct  QDP::BinaryReturn< PColorVector< T1, N >, PColorVector< T2, N >, FnOuterProduct >
 PColorMatrix = outerProduct(PColorVector, PColorVector). More...
struct  QDP::UnaryReturn< PColorMatrix< T, N >, FnPeekColorMatrix >
 Extract color matrix components. More...
struct  QDP::TrinaryReturn< PColorMatrix< T1, N >, PColorMatrix< T2, N >, PColorMatrix< T3, N >, FnColorContract >

Functions

template<class T, int N>
UnaryReturn< PColorMatrix< T, N >, FnTraceColor >::Type_t QDP::traceColor (const PColorMatrix< T, N > &s1)
template<class T1, class T2, int N>
BinaryReturn< PColorMatrix< T1, N >, PColorMatrix< T2, N >, FnTraceColorMultiply >::Type_t QDP::traceColorMultiply (const PColorMatrix< T1, N > &l, const PColorMatrix< T2, N > &r)
template<class T1, class T2, int N, template< class, int > class C>
BinaryReturn< PColorMatrix< T1, N >, PScalar< T2 >, FnTraceColorMultiply >::Type_t QDP::traceColorMultiply (const PColorMatrix< T1, N > &l, const PScalar< T2 > &r)
template<class T1, class T2, int N>
BinaryReturn< PScalar< T1 >, PColorMatrix< T2, N >, FnTraceColorMultiply >::Type_t QDP::traceColorMultiply (const PScalar< T1 > &l, const PColorMatrix< T2, N > &r)
template<class T, int N>
UnaryReturn< PColorMatrix< T, N >, FnTransposeColor >::Type_t QDP::transposeColor (const PColorMatrix< T, N > &s1)
 PColorMatrix = transposeColor(PColorMatrix).
template<class T1, class T2, int N>
BinaryReturn< PColorVector< T1, N >, PColorVector< T2, N >, FnOuterProduct >::Type_t QDP::outerProduct (const PColorVector< T1, N > &l, const PColorVector< T2, N > &r)
template<class T, int N>
UnaryReturn< PColorMatrix< T, N >, FnPeekColorMatrix >::Type_t QDP::peekColor (const PColorMatrix< T, N > &l, int row, int col)
template<class T1, class T2, int N>
PColorMatrix< T1, N > & QDP::pokeColor (PColorMatrix< T1, N > &l, const PScalar< T2 > &r, int row, int col)
 Insert color matrix components.
template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 3 >, PColorMatrix< T2, 3 >, PColorMatrix< T3, 3 >, FnColorContract >::Type_t QDP::colorContract (const PColorMatrix< T1, 3 > &s1, const PColorMatrix< T2, 3 > &s2, const PColorMatrix< T3, 3 > &s3)
 dest = colorContract(Qprop1,Qprop2,Qprop3)
template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 1 >, PColorMatrix< T2, 1 >, PColorMatrix< T3, 1 >, FnColorContract >::Type_t QDP::colorContract (const PColorMatrix< T1, 1 > &s1, const PColorMatrix< T2, 1 > &s2, const PColorMatrix< T3, 1 > &s3)
 dest = colorContract(Qprop1,Qprop2,Qprop3)
template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 2 >, PColorMatrix< T2, 2 >, PColorMatrix< T3, 2 >, FnColorContract >::Type_t QDP::colorContract (const PColorMatrix< T1, 2 > &s1, const PColorMatrix< T2, 2 > &s2, const PColorMatrix< T3, 2 > &s3)
 dest = colorContract(Qprop1,Qprop2,Qprop3)
template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 4 >, PColorMatrix< T2, 4 >, PColorMatrix< T3, 4 >, FnColorContract >::Type_t QDP::colorContract (const PColorMatrix< T1, 4 > &s1, const PColorMatrix< T2, 4 > &s2, const PColorMatrix< T3, 4 > &s3)
 dest = colorContract(Qprop1,Qprop2,Qprop3)
template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 3 >, PColorMatrix< T2, 3 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX (const PColorMatrix< T1, 3 > &s1, const PColorMatrix< T2, 3 > &s2)
 dest = QuarkContractXX(Qprop1,Qprop2)
template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 1 >, PColorMatrix< T2, 1 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX (const PColorMatrix< T1, 1 > &s1, const PColorMatrix< T2, 1 > &s2)
 dest = QuarkContractXX(Qprop1,Qprop2)
template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 2 >, PColorMatrix< T2, 2 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX (const PColorMatrix< T1, 2 > &s1, const PColorMatrix< T2, 2 > &s2)
 dest = QuarkContractXX(Qprop1,Qprop2)
template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 4 >, PColorMatrix< T2, 4 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX (const PColorMatrix< T1, 4 > &s1, const PColorMatrix< T2, 4 > &s2)
 dest = QuarkContractXX(Qprop1,Qprop2)

Detailed Description

Primitive type that transforms like a Color Matrix

Function Documentation

◆ colorContract() [1/4]

template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 1 >, PColorMatrix< T2, 1 >, PColorMatrix< T3, 1 >, FnColorContract >::Type_t QDP::colorContract ( const PColorMatrix< T1, 1 > & s1,
const PColorMatrix< T2, 1 > & s2,
const PColorMatrix< T3, 1 > & s3 )
inline

dest = colorContract(Qprop1,Qprop2,Qprop3)

Performs: $dest = \sum_{i1,i2,i3,j1,j2,j3} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2} Q3^{k1,k2}$

These are some place holders for Nc = 1 These routine are actually used in the baryon routines. Seperate baryon routines should be written for every number of colors.

Definition at line 539 of file qdp_primcolormat.h.

References QDP::QDPIO::cerr, and QDP_abort().

◆ colorContract() [2/4]

template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 2 >, PColorMatrix< T2, 2 >, PColorMatrix< T3, 2 >, FnColorContract >::Type_t QDP::colorContract ( const PColorMatrix< T1, 2 > & s1,
const PColorMatrix< T2, 2 > & s2,
const PColorMatrix< T3, 2 > & s3 )
inline

dest = colorContract(Qprop1,Qprop2,Qprop3)

Performs: $dest = \sum_{i1,i2,i3,j1,j2,j3} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2} Q3^{k1,k2}$

These are some place holders for Nc = 2 These routine are actually used in the baryon routines. Seperate baryon routines should be written for every number of colors.

Definition at line 563 of file qdp_primcolormat.h.

References QDP::QDPIO::cerr, and QDP_abort().

◆ colorContract() [3/4]

template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 3 >, PColorMatrix< T2, 3 >, PColorMatrix< T3, 3 >, FnColorContract >::Type_t QDP::colorContract ( const PColorMatrix< T1, 3 > & s1,
const PColorMatrix< T2, 3 > & s2,
const PColorMatrix< T3, 3 > & s3 )
inline

dest = colorContract(Qprop1,Qprop2,Qprop3)

Performs: $dest = \sum_{i1,i2,i3,j1,j2,j3} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2} Q3^{k1,k2}$

This routine is completely unrolled for 3 colors

Definition at line 476 of file qdp_primcolormat.h.

References QDP::PMatrix< T, N, C >::elem().

◆ colorContract() [4/4]

template<class T1, class T2, class T3>
TrinaryReturn< PColorMatrix< T1, 4 >, PColorMatrix< T2, 4 >, PColorMatrix< T3, 4 >, FnColorContract >::Type_t QDP::colorContract ( const PColorMatrix< T1, 4 > & s1,
const PColorMatrix< T2, 4 > & s2,
const PColorMatrix< T3, 4 > & s3 )
inline

dest = colorContract(Qprop1,Qprop2,Qprop3)

Performs: $dest = \sum_{i1,i2,i3,j1,j2,j3} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2} Q3^{k1,k2}$

These are some place holders for Nc = 4 These routine are actually used in the baryon routines. Seperate baryon routines should be written for every number of colors.

Definition at line 587 of file qdp_primcolormat.h.

References QDP::QDPIO::cerr, and QDP_abort().

◆ outerProduct()

template<class T1, class T2, int N>
BinaryReturn< PColorVector< T1, N >, PColorVector< T2, N >, FnOuterProduct >::Type_t QDP::outerProduct ( const PColorVector< T1, N > & l,
const PColorVector< T2, N > & r )
inline

Definition at line 416 of file qdp_primcolormat.h.

References QDP::PVector< T, N, C >::elem(), and outerProduct().

◆ peekColor()

template<class T, int N>
UnaryReturn< PColorMatrix< T, N >, FnPeekColorMatrix >::Type_t QDP::peekColor ( const PColorMatrix< T, N > & l,
int row,
int col )
inline

Definition at line 439 of file qdp_primcolormat.h.

References QDP::PMatrix< T, N, C >::elem().

◆ pokeColor()

template<class T1, class T2, int N>
PColorMatrix< T1, N > & QDP::pokeColor ( PColorMatrix< T1, N > & l,
const PScalar< T2 > & r,
int row,
int col )
inline

Insert color matrix components.

Definition at line 451 of file qdp_primcolormat.h.

References QDP::PMatrix< T, N, C >::elem(), and QDP::PScalar< T >::elem().

◆ quarkContractXX() [1/4]

template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 1 >, PColorMatrix< T2, 1 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX ( const PColorMatrix< T1, 1 > & s1,
const PColorMatrix< T2, 1 > & s2 )
inline

dest = QuarkContractXX(Qprop1,Qprop2)

Performs: $dest^{k2,k1} = \sum_{i1,i2,j1,j2} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2}$

These are some place holders for Nc = 2 These routine are actually used in the baryon routines. Seperate baryon routines should be written for every number of colors.

Definition at line 707 of file qdp_primcolormat.h.

References QDP::QDPIO::cerr, and QDP_abort().

◆ quarkContractXX() [2/4]

template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 2 >, PColorMatrix< T2, 2 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX ( const PColorMatrix< T1, 2 > & s1,
const PColorMatrix< T2, 2 > & s2 )
inline

dest = QuarkContractXX(Qprop1,Qprop2)

Performs: $dest^{k2,k1} = \sum_{i1,i2,j1,j2} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2}$

These are some place holders for Nc = 2 These routine are actually used in the baryon routines. Seperate baryon routines should be written for every number of colors.

Definition at line 733 of file qdp_primcolormat.h.

References QDP::QDPIO::cerr, and QDP_abort().

◆ quarkContractXX() [3/4]

template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 3 >, PColorMatrix< T2, 3 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX ( const PColorMatrix< T1, 3 > & s1,
const PColorMatrix< T2, 3 > & s2 )
inline

dest = QuarkContractXX(Qprop1,Qprop2)

Performs: $dest^{k2,k1} = \sum_{i1,i2,j1,j2} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2}$

This routine is completely unrolled for 3 colors

Definition at line 611 of file qdp_primcolormat.h.

References QDP::PMatrix< T, N, C >::elem().

Referenced by quarkContract12(), quarkContract13(), quarkContract14(), quarkContract23(), quarkContract24(), quarkContract34(), and traceSpinQuarkContract13().

◆ quarkContractXX() [4/4]

template<class T1, class T2>
BinaryReturn< PColorMatrix< T1, 4 >, PColorMatrix< T2, 4 >, FnQuarkContractXX >::Type_t QDP::quarkContractXX ( const PColorMatrix< T1, 4 > & s1,
const PColorMatrix< T2, 4 > & s2 )
inline

dest = QuarkContractXX(Qprop1,Qprop2)

Performs: $dest^{k2,k1} = \sum_{i1,i2,j1,j2} \epsilon^{i1,j1,k1}\epsilon^{i2,j2,k2} Q1^{i1,i2} Q2^{j1,j2}$

These are some place holders for Nc = 4 These routine are actually used in the baryon routines. Seperate baryon routines should be written for every number of colors.

Definition at line 759 of file qdp_primcolormat.h.

References QDP::QDPIO::cerr, and QDP_abort().

◆ traceColor()

template<class T, int N>
UnaryReturn< PColorMatrix< T, N >, FnTraceColor >::Type_t QDP::traceColor ( const PColorMatrix< T, N > & s1)
inline

Definition at line 300 of file qdp_primcolormat.h.

References QDP::PMatrix< T, N, C >::elem().

◆ traceColorMultiply() [1/3]

template<class T1, class T2, int N>
BinaryReturn< PColorMatrix< T1, N >, PColorMatrix< T2, N >, FnTraceColorMultiply >::Type_t QDP::traceColorMultiply ( const PColorMatrix< T1, N > & l,
const PColorMatrix< T2, N > & r )
inline

◆ traceColorMultiply() [2/3]

template<class T1, class T2, int N, template< class, int > class C>
BinaryReturn< PColorMatrix< T1, N >, PScalar< T2 >, FnTraceColorMultiply >::Type_t QDP::traceColorMultiply ( const PColorMatrix< T1, N > & l,
const PScalar< T2 > & r )
inline

◆ traceColorMultiply() [3/3]

template<class T1, class T2, int N>
BinaryReturn< PScalar< T1 >, PColorMatrix< T2, N >, FnTraceColorMultiply >::Type_t QDP::traceColorMultiply ( const PScalar< T1 > & l,
const PColorMatrix< T2, N > & r )
inline

◆ transposeColor()

template<class T, int N>
UnaryReturn< PColorMatrix< T, N >, FnTransposeColor >::Type_t QDP::transposeColor ( const PColorMatrix< T, N > & s1)
inline

PColorMatrix = transposeColor(PColorMatrix).

t = transposeColor(source1) - ColorMatrix specialization – where the work is actually done

Definition at line 389 of file qdp_primcolormat.h.

References QDP::PMatrix< T, N, C >::elem().