1#ifndef QDP_SCALARSITE_SSE_BLAS_WRAPPER_H
2#define QDP_SCALARSITE_SSE_BLAS_WRAPPER_H
33 int n_3vec = (hi - lo);
37 InScale = &InScale[24*index];
41 func(Out, scalep, InScale, Opt, n_3vec);
54 const OLattice< TVec >&
x;
66 const OLattice< TVec >& x = a->
x;
67 OLattice< TVec >& d = a->
d;
69 const int* tab = a->
tab;
74 for(
int j=lo; j < hi; j++) {
76 REAL32* xptr = (
REAL32 *)&(x.elem(i).elem(0).elem(0).real());
77 REAL32* yptr = &(d.elem(i).elem(0).elem(0).
real());
78 func(yptr, scalep, xptr, yptr, 1);
82 for(
int j=lo; j < hi; j++) {
84 REAL32* xptr = (
REAL32 *)&(x.elem(i).elem(0).elem(0).real());
85 REAL32* yptr = &(d.elem(i).elem(0).elem(0).
real());
86 func(yptr, scalep, yptr, xptr, 1);
96 const OLattice< TVec >& x_,
97 const OLattice< TVec >& y_,
105 const OLattice< TVec >&
x;
106 const OLattice< TVec >&
y;
117 const OLattice< TVec >& x = a->
x;
118 const OLattice< TVec >& y = a->
y;
119 OLattice< TVec >& d = a->
d;
121 const int* tab = a->
tab;
124 for(
int j=lo; j < hi; j++) {
126 REAL32* xptr = (
REAL32 *)&(x.elem(i).elem(0).elem(0).real());
127 REAL32* yptr = (
REAL32 *)&(y.elem(i).elem(0).elem(0).real());
128 REAL32* zptr = &(d.elem(i).elem(0).elem(0).
real());
129 func(zptr, scalep, xptr, yptr, 1);
158 int n_3vec = hi - lo;
161 In1 = &In1[24*index];
162 In2 = &In2[24*index];
163 Out = &Out[24*index];
165 func(Out, In1, In2, n_3vec);
171 const OLattice< TVec >& x_,
172 OLattice< TVec >& d_,
177 const OLattice< TVec >&
x;
187 const OLattice< TVec >& x = a->
x;
188 OLattice< TVec >& d = a->
d;
189 const int* tab = a->
tab;
193 for(
int j=lo; j < hi; j++) {
195 REAL32 *xptr = (
REAL32 *)(&x.elem(i).elem(0).elem(0).real());
196 REAL32 *yptr = (
REAL32 *)(&d.elem(i).elem(0).elem(0).real());
197 func(yptr, yptr, xptr,1);
205 const OLattice< TVec >& x_,
206 const OLattice< TVec >& y_,
207 OLattice< TVec >& d_,
211 const OLattice< TVec >&
x;
212 const OLattice< TVec >&
y;
222 const OLattice< TVec >& x = a->
x;
223 const OLattice< TVec >& y = a->
y;
224 OLattice< TVec >& d = a->
d;
225 const int* tab = a->
tab;
228 for(
int j=lo; j < hi; j++) {
230 REAL32 *xptr = (
REAL32 *) &(x.elem(i).elem(0).elem(0).real());
231 REAL32 *yptr = (
REAL32 *) &(y.elem(i).elem(0).elem(0).real());
232 REAL32* zptr = &(d.elem(i).elem(0).elem(0).
real());
235 func(zptr, xptr, yptr, 1);
262 int n_3vec = hi - lo;
264 Out = &Out[24*index];
266 vscal(Out, scalep, In, n_3vec);
272 const OLattice< TVec >& x_,
273 OLattice< TVec >& d_,
275 const int* tab_) :
x(x_),
d(d_),
scalep(scalep_),
tab(tab_) {}
276 const OLattice< TVec >&
x;
286 const OLattice< TVec >& x = a->
x;
287 OLattice< TVec >& d = a->
d;
289 const int* tab = a->
tab;
291 for(
int j=lo; j < hi; j++) {
293 REAL32* xptr = (
REAL32 *) &(x.elem(i).elem(0).elem(0).real());
294 REAL32* zptr = &(d.elem(i).elem(0).elem(0).
real());
295 vscal(zptr, scalep, xptr, 1);
327 int n_3vec = (hi - lo);
334 func(zptr, aptr, xptr, bptr, yptr, n_3vec);
341 const OLattice< TVec >& x_,
343 const OLattice< TVec >& y_,
344 OLattice< TVec >& d_,
351 const OLattice< TVec >&
x;
353 const OLattice< TVec >&
y;
363 const OLattice< TVec >& x = arg->
x;
365 const OLattice< TVec >& y = arg->
y;
366 OLattice< TVec >& d = arg->
d;
367 const int* tab = arg->
tab;
371 for(
int j=lo; j < hi; j++) {
374 REAL32 *xptr = (
REAL32 *) &(x.elem(i).elem(0).elem(0).real());
375 REAL32 *yptr = (
REAL32 *) &(y.elem(i).elem(0).elem(0).real());
376 REAL32 * zptr = &(d.elem(i).elem(0).elem(0).
real());
378 func(zptr, aptr, xptr, bptr, yptr, 1);
398 func( &(a->
results[myId]), vptr, nvec);
MakeReturn< UnaryNode< FnReal, typenameCreateLeaf< QDPExpr< T1, C1 > >::Leaf_t >, typenameUnaryReturn< C1, FnReal >::Type_t >::Expression_t real(const QDPExpr< T1, C1 > &l)
void unordered_sse_vscal_evaluate_function(int lo, int hi, int myId, unordered_sse_vscal_user_arg *a)
void unordered_sse_vOp_y_evaluate_function(int lo, int hi, int myId, unordered_sse_vOp_y_user_arg *a)
void unordered_vOp_z_evaluate_function(int lo, int hi, int myId, unordered_sse_vOp_z_user_arg *a)
void unordered_sse_vaxOpy3_y_evaluate_function(int lo, int hi, int myId, unordered_sse_vaxOpy3_y_user_arg *a)
void unordered_sse_vaxOpby3_evaluate_function(int lo, int hi, int myId, unordered_sse_vaxOpby3_user_arg *arg)
void unordered_sse_vaxOpy3_z_evaluate_function(int lo, int hi, int myId, unordered_sse_vaxOpy3_z_user_arg *a)
void ordered_norm_single_func(int lo, int hi, int myId, ordered_sse_norm_single_user_arg *a)
void ordered_sse_vaxOpy3_evaluate_function(int lo, int hi, int myId, ordered_sse_vaxOpy3_user_arg *a)
void ordered_sse_vOp_evaluate_function(int lo, int hi, int myId, ordered_sse_vOp_user_arg *a)
void ordered_sse_vaxOpby3_evaluate_function(int lo, int hi, int myId, ordered_sse_vaxOpby3_user_arg *arg)
void ordered_sse_vscal_evaluate_function(int lo, int hi, int myId, ordered_sse_vscal_user_arg *a)
void(* func)(REAL64 *, REAL32 *, int)
void(* func)(REAL32 *, REAL32 *, REAL32 *, int)
void(* func)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, REAL32 *, int)
void(* func)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, int)
unordered_sse_vOp_y_user_arg(const OLattice< TVec > &x_, OLattice< TVec > &d_, const int *tab_, void(*func_)(REAL32 *, REAL32 *, REAL32 *, int))
const OLattice< TVec > & x
void(* func)(REAL32 *, REAL32 *, REAL32 *, int)
const OLattice< TVec > & y
void(* func)(REAL32 *, REAL32 *, REAL32 *, int)
unordered_sse_vOp_z_user_arg(const OLattice< TVec > &x_, const OLattice< TVec > &y_, OLattice< TVec > &d_, const int *tab_, void(*func_)(REAL32 *, REAL32 *, REAL32 *, int))
const OLattice< TVec > & x
const OLattice< TVec > & x
unordered_sse_vaxOpby3_user_arg(REAL32 *aptr_, const OLattice< TVec > &x_, REAL32 *bptr_, const OLattice< TVec > &y_, OLattice< TVec > &d_, const int *tab_, void(*func_)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, REAL32 *, int))
void(* func)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, REAL32 *, int)
const OLattice< TVec > & y
const OLattice< TVec > & x
void(* func)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, int)
unordered_sse_vaxOpy3_y_user_arg(const OLattice< TVec > &x_, OLattice< TVec > &d_, REAL32 *scalep_, const int *tab_, int xy_order_, void(*func_)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, int))
unordered_sse_vaxOpy3_z_user_arg(const OLattice< TVec > &x_, const OLattice< TVec > &y_, OLattice< TVec > &d_, REAL32 *scalep_, const int *tab_, void(*func_)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, int))
void(* func)(REAL32 *, REAL32 *, REAL32 *, REAL32 *, int)
const OLattice< TVec > & x
const OLattice< TVec > & y
unordered_sse_vscal_user_arg(const OLattice< TVec > &x_, OLattice< TVec > &d_, REAL32 *scalep_, const int *tab_)
const OLattice< TVec > & x