1#ifndef GENERIC_FUSED_SPIN_PROJ_H
2#define GENERIC_FUSED_SPIN_PROJ_H
29 template<
class T1,
class T2>
52template<
class T1,
class C1,
class T2,
class C2>
90template<
typename T1,
typename T2>
112 &(d.elem(0).elem(0).real()),
139 template<
class T1,
class T2>
159template<
class T1,
class C1,
class T2,
class C2>
197template<
typename T1,
typename T2>
205 return(
adj(a)*tmp );
219 &(d.elem(0).elem(0).real()),
246 template<
class T1,
class T2>
266template<
class T1,
class C1,
class T2,
class C2>
304template<
typename T1,
typename T2>
312 return(
adj(a)*tmp );
326 &(d.elem(0).elem(0).real()),
353 template<
class T1,
class T2>
374template<
class T1,
class C1,
class T2,
class C2>
412template<
typename T1,
typename T2>
420 return(
adj(a)*tmp );
434 &(d.elem(0).elem(0).real()),
461 template<
class T1,
class T2>
481template<
class T1,
class C1,
class T2,
class C2>
519template<
typename T1,
typename T2>
527 return(
adj(a)*tmp );
541 &(d.elem(0).elem(0).real()),
566 template<
class T1,
class T2>
587template<
class T1,
class C1,
class T2,
class C2>
625template<
typename T1,
typename T2>
633 return(
adj(a)*tmp );
647 &(d.elem(0).elem(0).real()),
671 template<
class T1,
class T2>
691template<
class T1,
class C1,
class T2,
class C2>
729template<
typename T1,
typename T2>
737 return(
adj(a)*tmp );
751 &(d.elem(0).elem(0).real()),
778 template<
class T1,
class T2>
799template<
class T1,
class C1,
class T2,
class C2>
837template<
typename T1,
typename T2>
845 return(
adj(a)*tmp );
859 &(d.elem(0).elem(0).real()),
#define PETE_EMPTY_CONSTRUCTORS(CLASS)
Primitive color Matrix class.
Primitive color Vector class.
Primitive spin Vector class.
Expression class for QDP.
#define _inline_mult_adj_su3_mat_vec(aa, bb, cc)
Yet another random number generator.
MakeReturn< UnaryNode< FnAdjoint, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnAdjoint >::Type_t >::Expression_t adj(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinProjectDir2Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir2Minus >::Type_t >::Expression_t spinProjectDir2Minus(const QDPExpr< T1, C1 > &l)
BinaryReturn< T1, T2, FnAdjMultSprojDir3Minus >::Type_t adjMultSprojDir3Minus(const T1 &a, const T2 &b)
MakeReturn< UnaryNode< FnSpinProjectDir1Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir1Minus >::Type_t >::Expression_t spinProjectDir1Minus(const QDPExpr< T1, C1 > &l)
PColorVector< RComplex< REAL >, 3 > ColVec
BinaryReturn< T1, T2, FnAdjMultSprojDir0Minus >::Type_t adjMultSprojDir0Minus(const T1 &a, const T2 &b)
MakeReturn< UnaryNode< FnSpinProjectDir0Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir0Plus >::Type_t >::Expression_t spinProjectDir0Plus(const QDPExpr< T1, C1 > &l)
PColorMatrix< RComplex< REAL >, 3 > ColMat
MakeReturn< BinaryNode< OpMultiply, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpMultiply >::Type_t >::Expression_t operator*(const QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r)
BinaryReturn< T1, T2, FnAdjMultSprojDir2Plus >::Type_t adjMultSprojDir2Plus(const T1 &a, const T2 &b)
MakeReturn< UnaryNode< FnSpinProjectDir3Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir3Minus >::Type_t >::Expression_t spinProjectDir3Minus(const QDPExpr< T1, C1 > &l)
PSpinVector< ColVec, 4 > Spin4
BinaryReturn< T1, T2, FnAdjMultSprojDir1Minus >::Type_t adjMultSprojDir1Minus(const T1 &a, const T2 &b)
void inlineSpinProjDir0Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_0).
BinaryReturn< T1, T2, FnAdjMultSprojDir0Plus >::Type_t adjMultSprojDir0Plus(const T1 &a, const T2 &b)
void inlineSpinProjDir0Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_0).
PSpinVector< ColVec, 2 > Spin2
BinaryReturn< T1, T2, FnAdjMultSprojDir2Minus >::Type_t adjMultSprojDir2Minus(const T1 &a, const T2 &b)
MakeReturn< UnaryNode< FnSpinProjectDir2Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir2Plus >::Type_t >::Expression_t spinProjectDir2Plus(const QDPExpr< T1, C1 > &l)
void inlineSpinProjDir1Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_1).
void inlineSpinProjDir1Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_1).
BinaryReturn< T1, T2, FnAdjMultSprojDir3Plus >::Type_t adjMultSprojDir3Plus(const T1 &a, const T2 &b)
void inlineSpinProjDir3Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_3).
MakeReturn< UnaryNode< FnSpinProjectDir3Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir3Plus >::Type_t >::Expression_t spinProjectDir3Plus(const QDPExpr< T1, C1 > &l)
void inlineSpinProjDir3Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_3).
void inlineSpinProjDir2Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_2).
BinaryReturn< T1, T2, FnAdjMultSprojDir1Plus >::Type_t adjMultSprojDir1Plus(const T1 &a, const T2 &b)
void inlineSpinProjDir2Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_2).
MakeReturn< UnaryNode< FnSpinProjectDir0Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir0Minus >::Type_t >::Expression_t spinProjectDir0Minus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinProjectDir1Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir1Plus >::Type_t >::Expression_t spinProjectDir1Plus(const QDPExpr< T1, C1 > &l)
Promote< T1, T2 >::Type_t Type_t
Promote< T1, T2 >::Type_t Type_t
BinaryReturn< T1, T2, FnAdjMultSprojDir0Minus >::Type_t operator()(const T1 &a, const T2 &b) const
BinaryReturn< T1, T2, FnAdjMultSprojDir0Plus >::Type_t operator()(const T1 &a, const T2 &b) const
BinaryReturn< T1, T2, FnAdjMultSprojDir1Minus >::Type_t operator()(const T1 &a, const T2 &b) const
BinaryReturn< T1, T2, FnAdjMultSprojDir1Plus >::Type_t operator()(const T1 &a, const T2 &b) const
BinaryReturn< T1, T2, FnAdjMultSprojDir2Minus >::Type_t operator()(const T1 &a, const T2 &b) const
BinaryReturn< T1, T2, FnAdjMultSprojDir2Plus >::Type_t operator()(const T1 &a, const T2 &b) const
BinaryReturn< T1, T2, FnAdjMultSprojDir3Minus >::Type_t operator()(const T1 &a, const T2 &b) const
BinaryReturn< T1, T2, FnAdjMultSprojDir3Plus >::Type_t operator()(const T1 &a, const T2 &b) const