QDP++
qdp_optops.h File Reference

PETE optimized operations on QDPTypes. More...

Go to the source code of this file.

Classes

struct  QDP::OpAdjMultiply
struct  QDP::OpMultiplyAdj
struct  QDP::OpAdjMultiplyAdj
struct  QDP::FnTraceMultiply
struct  QDP::FnTraceColorMultiply
struct  QDP::FnTraceSpinMultiply
struct  QDP::FnTraceSpinOuterProduct
struct  QDP::FnTraceSpinQuarkContract13

Namespaces

namespace  QDP
 Yet another random number generator.

Functions

template<class T1, class C1, class T2, class C2>
MakeReturn< BinaryNode< OpAdjMultiply, typenameCreateLeaf< QDPExpr< UnaryNode< OpIdentity, T1 >, C1 > >::Leaf_t, typenameCreateLeaf< QDPType< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpAdjMultiply >::Type_t >::Expression_t QDP::operator* (const QDPExpr< UnaryNode< FnAdjoint, T1 >, C1 > &l, const QDPType< T2, C2 > &r)
template<class T1, class C1, class T2, class C2>
MakeReturn< BinaryNode< OpAdjMultiply, typenameCreateLeaf< QDPExpr< UnaryNode< OpIdentity, T1 >, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpAdjMultiply >::Type_t >::Expression_t QDP::operator* (const QDPExpr< UnaryNode< FnAdjoint, T1 >, C1 > &l, const QDPExpr< T2, C2 > &r)
template<class T1, class C1, class T2, class C2>
MakeReturn< BinaryNode< OpMultiplyAdj, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< UnaryNode< OpIdentity, T2 >, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpMultiplyAdj >::Type_t >::Expression_t QDP::operator* (const QDPType< T1, C1 > &l, const QDPExpr< UnaryNode< FnAdjoint, T2 >, C2 > &r)
template<class T1, class C1, class T2, class C2>
MakeReturn< BinaryNode< OpMultiplyAdj, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< UnaryNode< OpIdentity, T2 >, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpMultiplyAdj >::Type_t >::Expression_t QDP::operator* (const QDPExpr< T1, C1 > &l, const QDPExpr< UnaryNode< FnAdjoint, T2 >, C2 > &r)
template<class T1, class C1, class T2, class C2>
MakeReturn< BinaryNode< OpAdjMultiplyAdj, typenameCreateLeaf< QDPExpr< UnaryNode< OpIdentity, T1 >, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< UnaryNode< OpIdentity, T2 >, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpAdjMultiplyAdj >::Type_t >::Expression_t QDP::operator* (const QDPExpr< UnaryNode< FnAdjoint, T1 >, C1 > &l, const QDPExpr< UnaryNode< FnAdjoint, T2 >, C2 > &r)
template<class T1, class T2, class CC>
MakeReturn< BinaryNode< FnTraceMultiply, T1, T2 >, typenameUnaryReturn< CC, FnTrace >::Type_t >::Expression_t QDP::trace (const QDPExpr< BinaryNode< OpMultiply, T1, T2 >, CC > &ll)
 traceMultiply(l,r) <- trace(l*r)
template<class T1, class T2, class CC>
MakeReturn< BinaryNode< FnTraceColorMultiply, T1, T2 >, typenameUnaryReturn< CC, FnTrace >::Type_t >::Expression_t QDP::traceColor (const QDPExpr< BinaryNode< OpMultiply, T1, T2 >, CC > &ll)
 traceColorMultiply(l,r) <- traceColor(l*r)
template<class T1, class T2, class CC>
MakeReturn< BinaryNode< FnTraceSpinMultiply, T1, T2 >, typenameUnaryReturn< CC, FnTrace >::Type_t >::Expression_t QDP::traceSpin (const QDPExpr< BinaryNode< OpMultiply, T1, T2 >, CC > &ll)
 traceSpinMultiply(l,r) <- traceSpin(l*r)
template<class T1, class T2, class CC>
MakeReturn< BinaryNode< FnTraceSpinOuterProduct, T1, T2 >, typenameUnaryReturn< CC, FnTrace >::Type_t >::Expression_t QDP::traceSpin (const QDPExpr< BinaryNode< FnOuterProduct, T1, T2 >, CC > &ll)
 traceOuterProduct(l,r) <- traceSpin(outerProduct(l,r))
template<class T1, class T2, class CC>
MakeReturn< BinaryNode< FnLocalInnerProduct, T1, T2 >, typenameUnaryReturn< CC, FnTrace >::Type_t >::Expression_t QDP::trace (const QDPExpr< BinaryNode< OpAdjMultiply, T1, T2 >, CC > &ll)
 localInnerProduct(l,r) <- trace(adj(l)*r)
template<class T1, class T2, class CC>
MakeReturn< BinaryNode< FnTraceSpinQuarkContract13, T1, T2 >, typenameUnaryReturn< CC, FnTrace >::Type_t >::Expression_t QDP::traceSpin (const QDPExpr< BinaryNode< FnQuarkContract13, T1, T2 >, CC > &ll)
 traceSpinQuarkContract13(l,r) <- traceSpin(quarkContract13(l,r))
template<class T1, class CC>
MakeReturn< UnaryNode< FnRealTrace, T1 >, typenameUnaryReturn< CC, FnReal >::Type_t >::Expression_t QDP::real (const QDPExpr< UnaryNode< FnTrace, T1 >, CC > &ll)
 realTrace(l) <- real(trace(l))
template<class T1, class T2, class CC>
MakeReturn< BinaryNode< FnLocalInnerProductReal, T1, T2 >, typenameUnaryReturn< CC, FnReal >::Type_t >::Expression_t QDP::real (const QDPExpr< BinaryNode< FnLocalInnerProduct, T1, T2 >, CC > &ll)
 localInnerProductReal(l,r) <- real(trace(adj(l)*r))

Detailed Description

PETE optimized operations on QDPTypes.

These are optimizations that collapse several QDP operations into one mega operation. Assembly/specialization opts do NOT go here.

Definition in file qdp_optops.h.