10#ifndef QDP_SCALARSITE_SSE_BLAS_G5_H
11#define QDP_SCALARSITE_SSE_BLAS_G5_H
53 REAL ar = a.
elem().elem().elem().elem();
68 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
69 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
98 REAL ar = a.
elem().elem().elem().elem();
114 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
115 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
145 REAL ar = a.
elem().elem().elem().elem();
161 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
162 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
191 REAL ar = a.
elem().elem().elem().elem();
208 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
209 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
247 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
248 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
289 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
290 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
328 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
329 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
368 REAL* xptr = (
REAL *)&(x.
elem(i).elem(0).elem(0).real());
369 REAL* yptr = (
REAL *)&(d.
elem(i).elem(0).elem(0).real());
411 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().right());
417 REAL ar = a.
elem().elem().elem().elem();
434 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
435 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
479 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().right());
485 REAL ar = a.
elem().elem().elem().elem();
501 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
502 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
546 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().right());
552 REAL ar = a.
elem().elem().elem().elem();
568 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
569 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
613 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().right());
619 REAL ar = a.
elem().elem().elem().elem();
637 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
638 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
678 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().left());
684 REAL ar = a.
elem().elem().elem().elem();
702 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
703 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
743 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().left());
749 REAL ar = a.
elem().elem().elem().elem();
766 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
767 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
807 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().left());
813 REAL ar = a.
elem().elem().elem().elem();
830 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
831 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
870 const BN &mulNode =
static_cast<const BN&
> (rhs.expression().left());
876 REAL ar = a.
elem().elem().elem().elem();
893 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
894 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
919 cout <<
"BJ: v = a*P{+}v " << endl;
925 REAL ar = a.
elem().elem().elem().elem();
939 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
940 REAL *yptr = (
REAL *) &(y.elem(i).elem(0).elem(0).real());
964 cout <<
"BJ: v = a*P{-}v " << endl;
970 REAL ar = a.
elem().elem().elem().elem();
984 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
985 REAL *yptr = (
REAL *) &(y.elem(i).elem(0).elem(0).real());
1030 const BN1 &mulNode1 =
static_cast<const BN1&
> (rhs.expression().left());
1031 const BN2 &mulNode2 =
static_cast<const BN2&
> (rhs.expression().right());
1053 int n_4vec = (s.
end()-s.
start()+1);
1060 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1061 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1107 const BN1 &mulNode1 =
static_cast<const BN1&
> (rhs.expression().left());
1108 const BN2 &mulNode2 =
static_cast<const BN2&
> (rhs.expression().right());
1130 int n_4vec = (s.
end()-s.
start()+1);
1137 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1138 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1184 const BN1 &mulNode1 =
static_cast<const BN1&
> (rhs.expression().left());
1185 const BN2 &mulNode2 =
static_cast<const BN2&
> (rhs.expression().right());
1206 int n_4vec = (s.
end()-s.
start()+1);
1213 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1214 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1260 const BN1 &mulNode1 =
static_cast<const BN1&
> (rhs.expression().left());
1261 const BN2 &mulNode2 =
static_cast<const BN2&
> (rhs.expression().right());
1283 int n_4vec = (s.
end()-s.
start()+1);
1290 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1291 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1321 QDPIO::cout <<
"z = a*(GammaConst<Ns,Ns*Ns-1>()*x)" << endl;
1332 const BN1 &node =
static_cast<const BN1&
>(rhs.expression().right());
1336 REAL ar = a.
elem().elem().elem().elem();
1341 int n_4vec = (s.
end()-s.
start()+1);
1343 scal_g5(zptr, aptr, xptr, n_4vec);
1349 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1381 QDPIO::cout <<
"z = x - a GammaConst<Ns,Ns*Ns-1>()*y" << endl;
1393 const MN& mul_node =
static_cast<const MN&
>(rhs.expression().right());
1403 const GN& gamma_node =
static_cast<const GN&
>(mul_node.right());
1406 REAL ar = a.
elem().elem().elem().elem();
1415 int n_4vec = (s.
end()-s.
start()+1);
1416 xmayz_g5(zptr, aptr, xptr, yptr, n_4vec);
1422 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1423 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1425 xmayz_g5(zptr, aptr, xptr, yptr, 1);
1459 QDPIO::cout <<
"z = a*x + b*GammaConst<Ns,Ns*Ns-1>()*y" << endl;
1482 const MN1& mulNode1 =
static_cast< const MN1&
>(rhs.expression().left());
1483 const MN2& mulNode2 =
static_cast< const MN2&
>(rhs.expression().right());
1484 const GN& gammaNode =
static_cast< const GN&
>(mulNode2.right());
1502 int n_4vec = (s.
end()-s.
start()+1);
1503 axpbyz_g5(zptr, aptr, xptr, bptr, yptr, n_4vec);
1509 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1510 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1515 axpbyz_g5(zptr, aptr, xptr, bptr, yptr, 1);
1547 QDPIO::cout <<
"z = GammaConst<Ns,Ns*Ns-1>()*(ax - by)" << endl;
1561 const AXMBY& axmby_node =
static_cast<const AXMBY&
>(rhs.expression().right());
1569 const MN& mulNode1 =
static_cast<const MN&
>( axmby_node.left());
1570 const MN& mulNode2 =
static_cast<const MN&
>( axmby_node.right());
1588 int n_4vec = (s.
end()-s.
start()+1);
1589 g5_axmbyz(zptr, aptr, xptr, bptr, yptr, n_4vec);
1595 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1596 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1601 g5_axmbyz(zptr, aptr, xptr, bptr, yptr, 1);
1638 QDPIO::cout <<
"z = a*x + b*GammaConst<Ns,Ns*Ns-1>()*timesI(y)" << endl;
1669 const MN1& mulNode1 =
static_cast< const MN1&
>(rhs.expression().left());
1670 const MN2& mulNode2 =
static_cast< const MN2&
>(rhs.expression().right());
1671 const GN& gammaNode =
static_cast< const GN&
>(mulNode2.right());
1672 const IN& mulINode =
static_cast< const IN&
>(gammaNode.right());
1690 int n_4vec = (s.
end()-s.
start()+1);
1691 axpbyz_ig5(zptr, aptr, xptr, bptr, yptr, n_4vec);
1697 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1698 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1738 QDPIO::cout <<
"z = a*x + b*GammaConst<Ns,Ns*Ns-1>()*timesI(y)" << endl;
1769 const MN1& mulNode1 =
static_cast< const MN1&
>(rhs.expression().left());
1770 const MN2& mulNode2 =
static_cast< const MN2&
>(rhs.expression().right());
1771 const GN& gammaNode =
static_cast< const GN&
>(mulNode2.right());
1772 const IN& mulINode =
static_cast< const IN&
>(gammaNode.right());
1791 int n_4vec = (s.
end()-s.
start()+1);
1792 axmbyz_ig5(zptr, aptr, xptr, bptr, yptr, n_4vec);
1798 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1799 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1836 QDPIO::cout <<
"z = x + a GammaConst<Ns,Ns*Ns-1>()*i*y" << endl;
1850 const MN& mul_node =
static_cast<const MN&
>(rhs.expression().right());
1866 const GN& gamma_node =
static_cast<const GN&
>(mul_node.right());
1867 const IN& timesI_node =
static_cast<const IN&
>(gamma_node.right());
1871 REAL ar = a.
elem().elem().elem().elem();
1879 int n_4vec = (s.
end()-s.
start()+1);
1880 xpayz_ig5(zptr, aptr, xptr, yptr, n_4vec);
1886 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1887 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
1924 QDPIO::cout <<
"z = x - a GammaConst<Ns,Ns*Ns-1>()*i*y" << endl;
1938 const MN& mul_node =
static_cast<const MN&
>(rhs.expression().right());
1954 const GN& gamma_node =
static_cast<const GN&
>(mul_node.right());
1955 const IN& timesI_node =
static_cast<const IN&
>(gamma_node.right());
1959 REAL ar = a.
elem().elem().elem().elem();
1969 int n_4vec = (s.
end()-s.
start()+1);
1970 xmayz_ig5(zptr, aptr, xptr, yptr, n_4vec);
1976 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
1977 REAL *yptr = (
REAL *) &(y.
elem(i).elem(0).elem(0).real());
2014 QDPIO::cout <<
"z += a GammaConst<Ns,Ns*Ns-1>()*i*y" << endl;
2029 const MN& mul_node =
static_cast<const MN&
>(rhs.expression().right());
2046 const GN& gamma_node =
static_cast<const GN&
>(rhs.expression().right());
2047 const IN& timesI_node =
static_cast<const IN&
>(gamma_node.right());
2051 REAL ar = a.
elem().elem().elem().elem();
2059 int n_4vec = (s.
end()-s.
start()+1);
2060 xpayz_ig5(zptr, aptr, zptr, xptr, n_4vec);
2066 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
2100 QDPIO::cout <<
"z -= a GammaConst<Ns,Ns*Ns-1>()*i*y" << endl;
2115 const MN& mul_node =
static_cast<const MN&
>(rhs.expression().right());
2132 const GN& gamma_node =
static_cast<const GN&
>(rhs.expression().right());
2133 const IN& timesI_node =
static_cast<const IN&
>(gamma_node.right());
2137 REAL ar = a.
elem().elem().elem().elem();
2145 int n_4vec = (s.
end()-s.
start()+1);
2146 xmayz_ig5(zptr, aptr, zptr, xptr, n_4vec);
2152 REAL *xptr = (
REAL *) &(x.
elem(i).elem(0).elem(0).real());
Outer grid Scalar class */.
Primitive spin Vector class.
Expression class for QDP.
QDPType - major type class/container for all QDP objects.
Subsets - controls how lattices are looped.
const multi1d< int > & siteTable() const
bool hasOrderedRep() const
const T * slice() const
Return ref to a column slice.
void evaluate(OLattice< DCol > &d, const OpAssign &op, const QDPExpr< BinaryNode< OpMultiply, Reference< QDPType< DCol, OLattice< DCol > > >, Reference< QDPType< DCol, OLattice< DCol > > > >, OLattice< DCol > > &rhs, const Subset &s)
StandardOutputStream cout
Yet another random number generator.
PScalar< PScalar< RScalar< REAL > > > TScal
void add_g5ProjPlus(REAL *Out, REAL *X, REAL *Y, int n_4vec)
void axpbyz_g5ProjMinus(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
MakeReturn< UnaryNode< FnReal, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnReal >::Type_t >::Expression_t real(const QDPExpr< T1, C1 > &l)
void axmbyz_g5ProjMinus(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
void scal_g5ProjMinus(REAL *Out, REAL *scalep, REAL *In, int n_4vec)
void axpbyz_ig5(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
void xpayz_ig5(REAL *Out, REAL *scalep, REAL *InScale, REAL *Add, int n_4vec)
void add_g5ProjMinus(REAL *Out, REAL *X, REAL *Y, int n_4vec)
void xmayz_g5(REAL *Out, REAL *scalep, REAL *Add, REAL *InScale, int n_4vec)
void axmyz_g5ProjMinus(REAL *Out, REAL *scalep, REAL *InScale, REAL *Add, int n_4vec)
void axmbyz_ig5(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
void xmayz_g5ProjPlus(REAL *Out, REAL *scalep, REAL *Add, REAL *InScale, int n_4vec)
void axpbyz_g5ProjPlus(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
void sub_g5ProjPlus(REAL *Out, REAL *X, REAL *Y, int n_4vec)
void xmayz_ig5(REAL *Out, REAL *scalep, REAL *InScale, REAL *Add, int n_4vec)
void axpbyz_g5(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
void axmbyz_g5ProjPlus(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
void sub_g5ProjMinus(REAL *Out, REAL *X, REAL *Y, int n_4vec)
void scal_g5ProjPlus(REAL *Out, REAL *scalep, REAL *In, int n_4vec)
void g5_axmbyz(REAL *Out, REAL *scalep, REAL *InScale, REAL *scalep2, REAL *Add, int n_4vec)
void xpayz_g5ProjMinus(REAL *Out, REAL *scalep, REAL *Add, REAL *InScale, int n_4vec)
void axpyz_g5ProjPlus(REAL *Out, REAL *scalep, REAL *InScale, REAL *Add, int n_4vec)
PSpinVector< PColorVector< RComplex< REAL >, 3 >, Ns > TVec
void scal_g5(REAL *Out, REAL *scalep, REAL *In, int n_4vec)
void axmyz_g5ProjPlus(REAL *Out, REAL *scalep, REAL *InScale, REAL *Add, int n_4vec)
void axpyz_g5ProjMinus(REAL *Out, REAL *scalep, REAL *InScale, REAL *Add, int n_4vec)
void xmayz_g5ProjMinus(REAL *Out, REAL *scalep, REAL *Add, REAL *InScale, int n_4vec)
void xpayz_g5ProjPlus(REAL *Out, REAL *scalep, REAL *Add, REAL *InScale, int n_4vec)