10#if (defined __cplusplus)
32 Complex gamval[20],
const unsigned short gamin[16],
double *dk[
nc],
Complex_f jqq,
float akappa);
51 Complex gamval[20],
const unsigned short gamin[16],
double *dk[
nc],
Complex_f jqq,
float akappa);
69 Complex gamval[20],
const unsigned short gamin[16],
double *dk[
nc],
float akappa);
87 Complex gamval[20],
const unsigned short gamin[16],
double *dk[
nc],
float akappa);
107 Complex_f gamval[20],
const unsigned short gamin[16],
float *dk[
nc],
Complex_f jqq,
float akappa);
126 Complex_f gamval[20],
const unsigned short gamin[16],
float *dk[
nc],
Complex_f jqq,
float akappa);
144 Complex_f gamval[20],
const unsigned short gamin[16],
float *dk[
nc],
float akappa);
162 Complex_f gamval[20],
const unsigned short gamin[16],
float *dk[
nc],
float akappa);
196 void Transpose_d(
double *out,
const int,
const int);
207 void Transpose_f(
float *out,
const int,
const int);
229 void Transpose_U(
unsigned int *out,
const int,
const int);
251 Complex gamval[20],
const unsigned short gamin[16],
double *dk[
nc],
Complex_f jqq,
float akappa,
271 Complex gamval[20],
const unsigned short gamin[16],
double *dk[
nc],
Complex_f jqq,
float akappa,
328 Complex_f gamval[20],
const unsigned short gamin[16],
float *dk[
nc],
Complex_f jqq,
float akappa,\
348 Complex_f gamval[20],
const unsigned short gamin[16],
float *dk[
nc],
Complex_f jqq,
float akappa,\
396 double cureduce_sum_d(
double *input,
const unsigned int n,
const unsigned short stream);
406 float cureduce_sum_f(
float *input,
const unsigned int n,
const unsigned short stream);
500#if (defined __cplusplus)
void cuDslash_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], Complex_f jqq, float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in double precision.
int Dslash_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], Complex_f jqq, float akappa)
Evaluates in single precision.
void cuHdslashd_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in single precision.
int Dslashd_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], Complex_f jqq, float akappa)
Evaluates in single precision.
void cuDslashd_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], Complex_f jqq, float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in double precision.
void cuHdslash_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in single precision.
int Hdslashd_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], float akappa)
Evaluates in single precision.
int Hdslashd(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], float akappa)
Evaluates in double precision.
void cuHdslashd(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in double precision.
void cuHdslash(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in double precision.
void cuDslash(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], Complex_f jqq, float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in double precision.
int Hdslash(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], float akappa)
Evaluates in double precision.
int Dslashd(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], Complex_f jqq, float akappa)
Evaluates in double precision.
void cuDslashd(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], Complex_f jqq, float akappa, dim3 dimGrid, dim3 dimBlock)
GPU calling wrapper for in double precision.
int Hdslash_f(Complex_f *phi, Complex_f *r, Complex_f *ut[nc], unsigned int *iu, unsigned int *id, Complex_f gamval[20], const unsigned short gamin[16], float *dk[nc], float akappa)
Evaluates in single precision.
int Dslash(Complex *phi, Complex *r, Complex *ut[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], const unsigned short gamin[16], double *dk[nc], Complex_f jqq, float akappa)
Evaluates in double precision.
float cureduce_sum_f(float *input, const unsigned int n, const unsigned short stream)
Sum all terms in an array of floats.
void Transpose_c(Complex_f *out, const int, const int)
In place transpose used to convert from AoS to SoA memory layout.
void Transpose_U(unsigned int *out, const int, const int)
In place transpose used to convert from AoS to SoA memory layout.
double cureduce_sum_d(double *input, const unsigned int n, const unsigned short stream)
Sum all terms in an array of doubles.
void cuTranspose_f(float *out, const int fast_in, const int fast_out, const dim3 dimGrid, const dim3 dimBlock)
In place transpose used to convert from AoS to SoA memory layout.
void cuTranspose_d(double *out, const int fast_in, const int fast_out, const dim3 dimGrid, const dim3 dimBlock)
In place transpose used to convert from AoS to SoA memory layout.
void cuTranspose_U(unsigned int *out, const int fast_in, const int fast_out, const dim3 dimGrid, const dim3 dimBlock)
In place transpose used to convert from AoS to SoA memory layout.
void cuTranspose_z(Complex *out, const int fast_in, const int fast_out, const dim3 dimGrid, const dim3 dimBlock)
In place transpose used to convert from AoS to SoA memory layout.
void Transpose_f(float *out, const int, const int)
In place transpose used to convert from AoS to SoA memory layout.
void Transpose_z(Complex *out, const int, const int)
In place transpose used to convert from AoS to SoA memory layout.
void cuTranspose_c(Complex_f *out, const int fast_in, const int fast_out, const dim3 dimGrid, const dim3 dimBlock)
In place transpose used to convert from AoS to SoA memory layout.
void Transpose_d(double *out, const int, const int)
In place transpose used to convert from AoS to SoA memory layout.
void cuTranspose_I(int *out, const int fast_in, const int fast_out, const dim3 dimGrid, const dim3 dimBlock)
In place transpose used to convert from AoS to SoA memory layout.
void cuMixed_Sumto(double *d, float *f, const unsigned int n, const dim3 dimGrid, const dim3 dimBlock)
Add a single to a double value, and save the output in the double array For complex valued arrays,...
void Transpose_I(int *out, const int, const int)
In place transpose used to convert from AoS to SoA memory layout.
#define Complex
Double precision complex number.
#define Complex_f
Single precision complex number.
dim3 dimGrid
Default grid size. First component is normally nt. Second and third depend whatever is needed to get ...
dim3 dimBlock
Default block size. Usually 128.