8#ifndef QDP_PRIMSPINVEC_H
9#define QDP_PRIMSPINVEC_H
42 for(
int i=0; i < N; i++)
60 for(
int i=0; i < N; ++i)
71 for(
int i=0; i < N; ++i)
81 for(
int i=0; i < N; ++i)
92 for(
int i=0; i < N; ++i)
98 T&
elem(
int i) {
return F[i];}
99 const T&
elem(
int i)
const {
return F[i];}
105template<
class T,
int N>
109 for(
int i=0; i < N; ++i)
115template<
class T,
int N>
119 for(
int i=0; i < N; ++i)
125template<
class T,
int N>
129 for(
int i=0; i < N; ++i)
136template<
class T,
int N>
140 for(
int i=0; i < N; ++i)
148template<
class T,
int N>
152 for(
int i=0; i < N; ++i)
159template<
class T,
int N>
163 for(
int i=0; i < N; ++i)
169#ifdef QDP_USE_LIBXML2
171template<
class T,
int N>
173XMLWriter&
operator<<(XMLWriter& xml,
const PSpinVector<T,N>& d)
175 xml.openTag(
"SpinVector");
177 XMLWriterAPI::AttributeList alist;
180 for(
int i=0; i < N; ++i)
183 alist.push_back(XMLWriterAPI::Attribute(
"row", i));
185 xml.openTag(
"elem", alist);
201template<
class T1,
int N>
207 for(
int i=0; i < N; ++i)
208 d.elem(i) = +l.
elem(i);
213template<
class T1,
int N>
219 for(
int i=0; i < N; ++i)
220 d.elem(i) = -l.
elem(i);
225template<
class T1,
class T2,
int N>
231 for(
int i=0; i < N; ++i)
237template<
class T1,
class T2,
int N>
243 for(
int i=0; i < N; ++i)
250template<
class T1,
class T2,
int N>
256 for(
int i=0; i < N; ++i)
262template<
class T1,
class T2,
int N>
268 for(
int i=0; i < N; ++i)
275template<
class T1,
class T2,
int N>
281 for(
int i=0; i < N; ++i)
287template<
class T1,
class T2,
int N>
293 for(
int i=0; i < N; ++i)
300template<
class T1,
class T2,
int N>
306 for(
int i=0; i < N; ++i)
308 d.elem(i) = l.
elem(i,0) * r.
elem(0);
309 for(
int j=1; j < N; ++j)
310 d.elem(i) += l.
elem(i,j) * r.
elem(j);
318template<
class T1,
class T2,
template<
class,
int>
class C,
int N>
324 for(
int i=0; i < N; ++i)
326 d.elem(i) = l.
elem(i,0) * r.
elem(0);
327 for(
int j=1; j < N; ++j)
328 d.elem(i) += l.
elem(i,j) * r.
elem(j);
335template<
class T1,
class T2,
int N>
341 for(
int i=0; i < N; ++i)
344 for(
int j=1; j < N; ++j)
352template<
class T1,
class T2,
int N,
template<
class,
int>
class C1>
358 for(
int i=0; i < N; ++i)
361 for(
int j=1; j < N; ++j)
368template<
class T1,
class T2,
int N>
374 for(
int i=0; i < N; ++i)
382template<
class T,
int N>
388 for(
int i=0; i < N; ++i)
396template<
class T,
int N>
402 for(
int i=0; i < N; ++i)
410template<
class T1,
class T2,
int N>
416 for(
int i=0; i < N; ++i)
426template<
class T1,
int N>
431template<
class T1,
int N>
437 for(
int i=0; i < N; ++i)
444template<
class T1,
int N>
449template<
class T1,
int N>
455 for(
int i=0; i < N; ++i)
462template<
class T1,
int N>
467template<
class T1,
int N>
473 for(
int i=0; i < N; ++i)
480template<
class T1,
int N>
485template<
class T1,
int N>
491 for(
int i=0; i < N; ++i)
501template<
class T1,
int N>
507 for(
int i=0; i < N; ++i)
514template<
class T,
int N>
520 for(
int i=0; i < N; ++i)
527template<
class T,
int N>
533 for(
int i=0; i < N; ++i)
542template<
class T,
int N>
548 for(
int i=0; i < N; ++i)
556template<
class T,
int N>
562 for(
int i=0; i < N; ++i)
569template<
class T,
int N>
575 for(
int i=0; i < N; ++i)
583template<
class T,
int N>
589 for(
int i=0; i < N; ++i)
596template<
class T1,
class T2,
int N>
602 for(
int i=0; i < N; ++i)
604 return static_cast<Return_t&
>(l);
609template<
class T1,
class T2,
int N>
615 for(
int i=0; i < N; ++i)
617 return static_cast<Return_t&
>(l);
622template<
class T1,
class T2,
int N>
628 for(
int i=0; i < N; ++i)
630 return static_cast<Return_t&
>(l);
635template<
class T1,
class T2,
int N>
641 for(
int i=0; i < N; ++i)
643 return static_cast<Return_t&
>(l);
648template<
class T,
int N>
652 for(
int i=0; i < N; ++i)
657template<
class T,
class T1,
int N>
661 for(
int i=0; i < N; ++i)
667template<
class T,
class T1,
int N>
671 for(
int i=0; i < N; ++i)
676template<
class T,
class T1,
int N>
680 for(
int i=0; i < N; ++i)
686template<
class T,
class T1,
int N>
694 for(
int i=0; i < N; ++i)
706template<
class T,
int N>
711template<
class T,
int N>
717 for(
int i=0; i < N; ++i)
718 d.elem(i) =
sum(s1.elem(i));
727template<
class T,
int N>
734 for(
int i=1; i < N; ++i)
748template<
class T1,
class T2,
class T3,
int N>
753template<
class T1,
class T2,
class T3,
int N>
760 for(
int i=0; i < N; ++i)
788template<
class T1,
int N>
795template<
class T1,
int N>
801template<
class T1,
int N>
808template<
class T,
int N>
814template<
class T,
int N>
820template<
class T,
int N>
830template<
class T1,
int N,
class Op>
835template<
class T1,
class T2,
int N,
class Op>
841template<
class T1,
class T2,
int N,
class Op>
848template<
class T1,
class T2,
int N,
template <
class,
int>
class C1,
class Op>
855template<
class T1,
class T2,
int N,
class Op>
861template<
class T1,
class T2,
int N,
class Op>
868template<
class T1,
class T2>
877template<
class T1,
class T2,
int N>
882template<
class T1,
class T2,
int N>
887template<
class T1,
class T2,
int N>
892template<
class T1,
class T2,
int N>
897template<
class T1,
class T2,
int N>
905template<
class T,
int N>
910template<
class T,
int N>
915template<
class T,
int N>
920template<
class T1,
class T2,
int N>
925template<
class T1,
class T2,
int N>
930template<
class T1,
class T2,
int N>
935template<
class T1,
class T2,
int N>
941template<
class T1,
class T2,
int N>
948 for(
int i=1; i < N; ++i)
954template<
class T1,
class T2,
int N>
955inline PScalar<typename BinaryReturn<T1, T2, FnLocalInnerProductReal>::Type_t>
961 for(
int i=1; i < N; ++i)
968template<
int m,
class T2,
int N>
973template<
class T2,
int N>
979template<
int m,
class T2,
int N>
984template<
class T2,
int N>
990template<
class T,
int N>
996template<
class T,
int N>
1001template<
class T,
int N>
1006template<
class T,
int N>
1011template<
class T,
int N>
1016template<
class T,
int N>
1021template<
class T,
int N>
1026template<
class T,
int N>
1031template<
class T,
int N>
1038template<
class T,
int N>
1044template<
class T,
int N>
1049template<
class T,
int N>
1054template<
class T,
int N>
1059template<
class T,
int N>
1064template<
class T,
int N>
1069template<
class T,
int N>
1074template<
class T,
int N>
1079template<
class T,
int N>
1088template<
class T,
int N,
class T1,
class T2>
1093 for(
int i=0; i < N; ++i)
1099template<
class T,
int N>
1103 for(
int i=0; i < N; ++i)
1116template<
class T,
int N>
1121template<
class T,
int N>
1128 d.elem() = l.
elem(row);
1133template<
class T1,
class T2,
int N>
1134inline PSpinVector<T1,N>&
1152 d.elem(0) = r.
elem(0);
1153 d.elem(1) = r.
elem(1);
1154 d.elem(2) = r.
elem(2);
1155 d.elem(3) = r.
elem(3);
1180 d.elem(0) = -r.
elem(3);
1181 d.elem(1) = r.
elem(2);
1182 d.elem(2) = r.
elem(1);
1183 d.elem(3) = -r.
elem(0);
1222 d.elem(0) = -r.
elem(1);
1223 d.elem(1) = r.
elem(0);
1224 d.elem(2) = -r.
elem(3);
1225 d.elem(3) = r.
elem(2);
1250 d.elem(0) = r.
elem(2);
1251 d.elem(1) = r.
elem(3);
1252 d.elem(2) = -r.
elem(0);
1253 d.elem(3) = -r.
elem(1);
1264 d.elem(0) = r.
elem(2);
1265 d.elem(1) = r.
elem(3);
1266 d.elem(2) = r.
elem(0);
1267 d.elem(3) = r.
elem(1);
1292 d.elem(0) = -r.
elem(1);
1293 d.elem(1) = r.
elem(0);
1294 d.elem(2) = r.
elem(3);
1295 d.elem(3) = -r.
elem(2);
1334 d.elem(0) = -r.
elem(3);
1335 d.elem(1) = r.
elem(2);
1336 d.elem(2) = -r.
elem(1);
1337 d.elem(3) = r.
elem(0);
1362 d.elem(0) = r.
elem(0);
1363 d.elem(1) = r.
elem(1);
1364 d.elem(2) = -r.
elem(2);
1365 d.elem(3) = -r.
elem(3);
1421 d.elem(0) = s1.
elem(0) + s1.
elem(3);
1422 d.elem(1) = s1.
elem(1) - s1.
elem(2);
1475 d.elem(0) = s1.
elem(0) - s1.
elem(2);
1476 d.elem(1) = s1.
elem(1) - s1.
elem(3);
1529 d.elem(0) = s1.
elem(0) - s1.
elem(3);
1530 d.elem(1) = s1.
elem(1) + s1.
elem(2);
1583 d.elem(0) = s1.
elem(0) + s1.
elem(2);
1584 d.elem(1) = s1.
elem(1) + s1.
elem(3);
1598 d.elem(0) = s1.
elem(0);
1599 d.elem(1) = s1.
elem(1);
1612 d.elem(0) = s1.
elem(0);
1613 d.elem(1) = s1.
elem(1);
1614 d.elem(2) = -s1.
elem(1);
1615 d.elem(3) = s1.
elem(0);
1627 d.elem(0) = s1.
elem(0);
1628 d.elem(1) = s1.
elem(1);
1641 d.elem(0) = s1.
elem(0);
1642 d.elem(1) = s1.
elem(1);
1643 d.elem(2) = -s1.
elem(0);
1644 d.elem(3) = -s1.
elem(1);
1655 d.elem(0) = s1.
elem(0);
1656 d.elem(1) = s1.
elem(1);
1669 d.elem(0) = s1.
elem(0);
1670 d.elem(1) = s1.
elem(1);
1671 d.elem(2) = s1.
elem(1);
1672 d.elem(3) = -s1.
elem(0);
1683 d.elem(0) = s1.
elem(0);
1684 d.elem(1) = s1.
elem(1);
1697 d.elem(0) = s1.
elem(0);
1698 d.elem(1) = s1.
elem(1);
1699 d.elem(2) = s1.
elem(0);
1700 d.elem(3) = s1.
elem(1);
1715 d.elem(0) = r.
elem(0);
1716 d.elem(1) = r.
elem(1);
1717 d.elem(2) = r.
elem(2);
1718 d.elem(3) = r.
elem(3);
1743 d.elem(0) = -r.
elem(3);
1744 d.elem(1) = r.
elem(2);
1745 d.elem(2) = r.
elem(1);
1746 d.elem(3) = -r.
elem(0);
1785 d.elem(0) = -r.
elem(1);
1786 d.elem(1) = r.
elem(0);
1787 d.elem(2) = -r.
elem(3);
1788 d.elem(3) = r.
elem(2);
1813 d.elem(0) = r.
elem(2);
1814 d.elem(1) = r.
elem(3);
1815 d.elem(2) = -r.
elem(0);
1816 d.elem(3) = -r.
elem(1);
1827 d.elem(0) = r.
elem(0);
1828 d.elem(1) = r.
elem(1);
1829 d.elem(2) = -r.
elem(2);
1830 d.elem(3) = -r.
elem(3);
1855 d.elem(0) = r.
elem(3);
1856 d.elem(1) = -r.
elem(2);
1857 d.elem(2) = r.
elem(1);
1858 d.elem(3) = -r.
elem(0);
1897 d.elem(0) = -r.
elem(1);
1898 d.elem(1) = r.
elem(0);
1899 d.elem(2) = r.
elem(3);
1900 d.elem(3) = -r.
elem(2);
1925 d.elem(0) = -r.
elem(2);
1926 d.elem(1) = -r.
elem(3);
1927 d.elem(2) = -r.
elem(0);
1928 d.elem(3) = -r.
elem(1);
1942 d.elem(0) = s1.
elem(0);
1943 d.elem(1) = s1.
elem(1);
1959 d.elem(2) = s1.
elem(2);
1960 d.elem(3) = s1.
elem(3);
Primitive Spin Matrix class.
Primitive spin Vector class.
PSpinVector & operator-=(const PSpinVector< T1, N > &rhs)
PSpinVector & operator*=(const PScalar< T1 > &rhs)
PSpinVector & operator/=(const PScalar< T1 > &rhs)
PSpinVector /= PScalar.
const T & elem(int i) const
PSpinVector & operator=(const PSpinVector< T1, N > &rhs)
PSpinVector & assign(const PSpinVector< T1, N > &rhs)
PSpinVector & operator+=(const PSpinVector< T1, N > &rhs)
PSpinVector += PSpinVector.
StandardOutputStream class.
bool isnan(const QDPExpr< T, C > &s1)
bool = isnan(source)
bool isfinite(const QDPExpr< T, C > &s1)
bool = isfinite(source)
bool isnormal(const QDPExpr< T, C > &s1)
bool = isnormal(source)
bool isinf(const QDPExpr< T, C > &s1)
bool = isinf(source)
UnaryReturn< C, FnSum >::Type_t sum(const QDPType< T, C > &s1)
OScalar = sum(source).
void gather_sites(ILattice< T, 2 > &d, const ILattice< T1, 2 > &s0, int i0, const ILattice< T1, 2 > &s1, int i1)
gather several inner sites together
TextWriter & operator<<(TextWriter &txt, const std::string &output)
TextReader & operator>>(TextReader &txt, std::string &input)
void fill_gaussian(IScalar< T > &d, IScalar< T > &r1, IScalar< T > &r2)
dest = gaussian
void copy_site(IScalar< T > &d, int isite, const IScalar< T1 > &s1)
dest [some type] = source [some type]
void zero_rep(IScalar< T > &dest)
dest = 0
void copymask(IScalar< T > &d, const IScalar< T1 > &mask, const IScalar< T > &s1)
dest = (mask) ? s1 : dest
BinaryReturn< IScalar< T1 >, IScalar< T2 >, OpMultiplyAdj >::Type_t multiplyAdj(const IScalar< T1 > &l, const IScalar< T2 > &r)
BinaryReturn< IScalar< T1 >, IScalar< T2 >, OpAdjMultiply >::Type_t adjMultiply(const IScalar< T1 > &l, const IScalar< T2 > &r)
UnaryReturn< IScalar< T >, FnGetSite >::Type_t getSite(const IScalar< T > &s1, int innersite)
Yet another random number generator.
MakeReturn< UnaryNode< FnReal, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnReal >::Type_t >::Expression_t real(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnTimesMinusI, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnTimesMinusI >::Type_t >::Expression_t timesMinusI(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)
MakeReturn< TrinaryNode< FnWhere, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPType< T2, C2 > >::Leaf_t, typenameCreateLeaf< typenameSimpleScalar< typenameWordType< C1 >::Type_t >::Type_t >::Leaf_t >, typenameTrinaryReturn< C1, C2, typenameSimpleScalar< typenameWordType< C1 >::Type_t >::Type_t, FnWhere >::Type_t >::Expression_t where(const QDPType< T1, C1 > &a, const QDPType< T2, C2 > &b, const typename WordType< C1 >::Type_t &c)
MakeReturn< UnaryNode< FnPeekColorMatrix, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, C1 >::Expression_t peekColor(const QDPExpr< T1, C1 > &l, int row, int col)
MakeReturn< UnaryNode< FnSpinProjectDir1Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir1Minus >::Type_t >::Expression_t spinProjectDir1Minus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnTimesI, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnTimesI >::Type_t >::Expression_t timesI(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinProjectDir0Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir0Plus >::Type_t >::Expression_t spinProjectDir0Plus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinReconstructDir2Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir2Minus >::Type_t >::Expression_t spinReconstructDir2Minus(const QDPExpr< T1, C1 > &l)
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)
MakeReturn< BinaryNode< FnLocalInnerProductReal, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, FnLocalInnerProductReal >::Type_t >::Expression_t localInnerProductReal(const QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r)
MakeReturn< BinaryNode< OpAdd, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpAdd >::Type_t >::Expression_t operator+(const QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r)
MakeReturn< UnaryNode< FnSpinReconstructDir2Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir2Plus >::Type_t >::Expression_t spinReconstructDir2Plus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinProjectDir3Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir3Minus >::Type_t >::Expression_t spinProjectDir3Minus(const QDPExpr< T1, C1 > &l)
MakeReturn< BinaryNode< OpSubtract, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpSubtract >::Type_t >::Expression_t operator-(const QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r)
MakeReturn< UnaryNode< FnSpinReconstructDir0Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir0Plus >::Type_t >::Expression_t spinReconstructDir0Plus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnConjugate, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnConjugate >::Type_t >::Expression_t conj(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinReconstructDir1Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir1Plus >::Type_t >::Expression_t spinReconstructDir1Plus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinReconstructDir1Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir1Minus >::Type_t >::Expression_t spinReconstructDir1Minus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinProjectDir2Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir2Plus >::Type_t >::Expression_t spinProjectDir2Plus(const QDPExpr< T1, C1 > &l)
MakeReturn< BinaryNode< FnLocalInnerProduct, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, FnLocalInnerProduct >::Type_t >::Expression_t localInnerProduct(const QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r)
C1 & pokeColor(QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r, int row, int col)
MakeReturn< UnaryNode< FnPeekSpinMatrix, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, C1 >::Expression_t peekSpin(const QDPExpr< T1, C1 > &l, int row, int col)
MakeReturn< UnaryNode< FnSpinProjectDir3Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir3Plus >::Type_t >::Expression_t spinProjectDir3Plus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinReconstructDir3Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir3Minus >::Type_t >::Expression_t spinReconstructDir3Minus(const QDPExpr< T1, C1 > &l)
MakeReturn< BinaryNode< FnCmplx, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, FnCmplx >::Type_t >::Expression_t cmplx(const QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r)
MakeReturn< BinaryNode< OpDivide, typenameCreateLeaf< QDPType< T1, C1 > >::Leaf_t, typenameCreateLeaf< QDPExpr< T2, C2 > >::Leaf_t >, typenameBinaryReturn< C1, C2, OpDivide >::Type_t >::Expression_t operator/(const QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r)
MakeReturn< UnaryNode< FnSpinReconstructDir0Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir0Minus >::Type_t >::Expression_t spinReconstructDir0Minus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnImag, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnImag >::Type_t >::Expression_t imag(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnChiralProjectMinus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnChiralProjectMinus >::Type_t >::Expression_t chiralProjectMinus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnChiralProjectPlus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnChiralProjectPlus >::Type_t >::Expression_t chiralProjectPlus(const QDPExpr< T1, C1 > &l)
MakeReturn< UnaryNode< FnSpinProjectDir0Minus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinProjectDir0Minus >::Type_t >::Expression_t spinProjectDir0Minus(const QDPExpr< T1, C1 > &l)
void fill_random(float &d, T1 &seed, T2 &skewed_seed, const T1 &seed_mult)
dest = random
MakeReturn< UnaryNode< FnLocalNorm2, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnLocalNorm2 >::Type_t >::Expression_t localNorm2(const QDPExpr< T1, C1 > &l)
C1 & pokeSpin(QDPType< T1, C1 > &l, const QDPExpr< T2, C2 > &r, int row, int col)
MakeReturn< UnaryNode< FnSpinReconstructDir3Plus, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnSpinReconstructDir3Plus >::Type_t >::Expression_t spinReconstructDir3Plus(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)
OLattice< PScalar< PColorMatrix< RComplexFloat, 3 > > > C
PSpinVector< typename UnaryReturn< T2, OpUnaryPlus >::Type_t, N > Type_t
PSpinVector< typename UnaryReturn< T2, OpUnaryPlus >::Type_t, N > Type_t
PSpinVector< typename UnaryReturn< T2, OpUnaryPlus >::Type_t, N > Type_t
PSpinVector< typename UnaryReturn< T2, OpUnaryPlus >::Type_t, N > Type_t
PSpinVector< typename BinaryReturn< T1, T2, Op >::Type_t, N > Type_t
PSpinVector< typename BinaryReturn< T1, T2, Op >::Type_t, N > Type_t
PSpinVector< typename BinaryReturn< T1, T2, Op >::Type_t, N > Type_t
PSpinVector< T1, N > & Type_t
PSpinVector< T1, N > & Type_t
PSpinVector< typename BinaryReturn< T1, T2, Op >::Type_t, N > Type_t
PScalar< typename BinaryReturn< T1, T2, FnLocalInnerProductReal >::Type_t > Type_t
PScalar< typename BinaryReturn< T1, T2, FnInnerProductReal >::Type_t > Type_t
PScalar< typename BinaryReturn< T1, T2, FnInnerProduct >::Type_t > Type_t
PScalar< typename BinaryReturn< T1, T2, FnLocalInnerProduct >::Type_t > Type_t
PSpinVector< T1, N > & Type_t
PSpinVector< T1, N > & Type_t
PSpinVector< T1, N > & Type_t
PSpinVector< typename BinaryReturn< T1, T2, Op >::Type_t, N > Type_t
PSpinVector< typename DoublePrecType< T1 >::Type_t, N > Type_t
Structure for extracting color matrix components.
Structure for extracting color vector components.
Structure for extracting spin matrix components.
Structure for extracting spin vector components.
Structure for inserting color vector components.
Structure for inserting spin vector components.
PScalar< typename InternalScalar< T >::Type_t > Type_t
Construct simple word type used at some level within primitives.
PSpinVector< typename LatticeScalar< T >::Type_t, N > Type_t
Makes a lattice scalar leaving primitive indices alone.
PScalar< typename PrimitiveScalar< T >::Type_t > Type_t
Makes a primitive scalar leaving grid alone.
PSpinVector< typename SinglePrecType< T1 >::Type_t, N > Type_t
PSpinVector< typename TrinaryReturn< T1, T2, T3, FnWhere >::Type_t, N > Type_t
PSpinVector< typename UnaryReturn< T1, Op >::Type_t, N > Type_t
PScalar< typename UnaryReturn< T, FnLocalNorm2 >::Type_t > Type_t
PScalar< typename UnaryReturn< T, FnNorm2 >::Type_t > Type_t
PScalar< typename UnaryReturn< T, FnPeekSpinVector >::Type_t > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir0Minus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir0Plus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir1Minus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir1Plus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir2Minus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir2Plus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir3Minus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProjectDir3Plus >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinProject >::Type_t,(N > >1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir0Minus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir0Plus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir1Minus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir1Plus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir2Minus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir2Plus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir3Minus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstructDir3Plus >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSpinReconstruct >::Type_t,(N<< 1) > Type_t
PSpinVector< typename UnaryReturn< T, FnSumMulti >::Type_t, N > Type_t
WordType< T1 >::Type_t Type_t
Find the underlying word type of a field.