5 template <
typename Float>
8 for(
int i=0; i < len; i++){ y[i] += a*x[i]; }
13 else aXpY((
float)a, (
float *)x, (
float *)y, len);
17 template <
typename Float>
19 for (
int i=0; i<len; i++) x[i] *= a;
24 else aX((
float)a, (
float*)x, len);
28 template <
typename Float>
30 for (
int i=0; i<len; i++) y[i] -= x[i];
35 else mXpY((
float*)x, (
float*)y, len);
40 template <
typename Float>
43 for (
int i=0; i<len; i++) sum += v[i]*v[i];
50 else return norm2((
float*)v, len);
enum QudaPrecision_s QudaPrecision
void ax(double a, void *x, int len, QudaPrecision precision)
void aXpY(Float a, Float *x, Float *y, int len)
void mXpY(Float *x, Float *y, int len)
FloatingPoint< float > Float
double norm2(Float *v, int len)
void mxpy(void *x, void *y, int len, QudaPrecision precision)
double norm_2(void *v, int len, QudaPrecision precision)
void aX(Float a, Float *x, int len)
void axpy(double a, void *x, void *y, int len, QudaPrecision precision)
void comm_allreduce(double *data)