|
QUDA v0.3.2
A library for QCD on GPUs
|
Go to the source code of this file.
| #define ACC_COMPLEX_PROD | ( | a, | |
| b, | |||
| c | |||
| ) |
a##_re += b##_re*c##_re; \ a##_re -= b##_im*c##_im; \ a##_im += b##_re*c##_im; \ a##_im += b##_im*c##_re
Definition at line 32 of file read_gauge.h.
| #define ACC_CONJ_PROD | ( | a, | |
| b, | |||
| c | |||
| ) |
a##_re += b##_re * c##_re; \ a##_re -= b##_im * c##_im; \ a##_im -= b##_re * c##_im; \ a##_im -= b##_im * c##_re
Definition at line 39 of file read_gauge.h.
| #define COMPLEX_ADD_TO | ( | a, | |
| b | |||
| ) |
a##_re += b##_re, \ a##_im += b##_im
Definition at line 4 of file read_gauge.h.
| #define COMPLEX_CONJUGATE_PRODUCT | ( | a, | |
| b, | |||
| c | |||
| ) |
a##_re = b##_re*c##_re; \ a##_re -= b##_im*c##_im; \ a##_im = -b##_re*c##_im; \ a##_im -= b##_im*c##_re
Definition at line 14 of file read_gauge.h.
| #define COMPLEX_DOT_PRODUCT | ( | a, | |
| b, | |||
| c | |||
| ) |
a##_re = b##_re*c##_re; \ a##_re += b##_im*c##_im; \ a##_im = b##_re*c##_im; \ a##_im -= b##_im*c##_re
Definition at line 21 of file read_gauge.h.
| #define COMPLEX_NORM | ( | a, | |
| b | |||
| ) |
a = b##_re*b##_re; \ a += b##_im*b##_im
Definition at line 28 of file read_gauge.h.
| #define COMPLEX_PRODUCT | ( | a, | |
| b, | |||
| c | |||
| ) |
a##_re = b##_re*c##_re; \ a##_re -= b##_im*c##_im; \ a##_im = b##_re*c##_im; \ a##_im += b##_im*c##_re
Definition at line 8 of file read_gauge.h.
| #define FAST_INT_DIVIDE | ( | a, | |
| b | |||
| ) | ( a/b ) |
Definition at line 1 of file read_gauge.h.
| #define READ_FAT_MATRIX_18_DOUBLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
double2 FAT0 = fetch_double2((gauge), idx + ((dir/2)*9+0)*fat_ga_stride); \ double2 FAT1 = fetch_double2((gauge), idx + ((dir/2)*9+1)*fat_ga_stride); \ double2 FAT2 = fetch_double2((gauge), idx + ((dir/2)*9+2)*fat_ga_stride); \ double2 FAT3 = fetch_double2((gauge), idx + ((dir/2)*9+3)*fat_ga_stride); \ double2 FAT4 = fetch_double2((gauge), idx + ((dir/2)*9+4)*fat_ga_stride); \ double2 FAT5 = fetch_double2((gauge), idx + ((dir/2)*9+5)*fat_ga_stride); \ double2 FAT6 = fetch_double2((gauge), idx + ((dir/2)*9+6)*fat_ga_stride); \ double2 FAT7 = fetch_double2((gauge), idx + ((dir/2)*9+7)*fat_ga_stride); \ double2 FAT8 = fetch_double2((gauge), idx + ((dir/2)*9+8)*fat_ga_stride);
Definition at line 353 of file read_gauge.h.
| #define READ_FAT_MATRIX_18_HALF | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float2 FAT0 = tex1Dfetch((gauge), idx + ((dir/2)*9+0)*fat_ga_stride); \ float2 FAT1 = tex1Dfetch((gauge), idx + ((dir/2)*9+1)*fat_ga_stride); \ float2 FAT2 = tex1Dfetch((gauge), idx + ((dir/2)*9+2)*fat_ga_stride); \ float2 FAT3 = tex1Dfetch((gauge), idx + ((dir/2)*9+3)*fat_ga_stride); \ float2 FAT4 = tex1Dfetch((gauge), idx + ((dir/2)*9+4)*fat_ga_stride); \ float2 FAT5 = tex1Dfetch((gauge), idx + ((dir/2)*9+5)*fat_ga_stride); \ float2 FAT6 = tex1Dfetch((gauge), idx + ((dir/2)*9+6)*fat_ga_stride); \ float2 FAT7 = tex1Dfetch((gauge), idx + ((dir/2)*9+7)*fat_ga_stride); \ float2 FAT8 = tex1Dfetch((gauge), idx + ((dir/2)*9+8)*fat_ga_stride);
Definition at line 393 of file read_gauge.h.
| #define READ_FAT_MATRIX_18_SINGLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float2 FAT0 = tex1Dfetch((gauge), idx + ((dir/2)*9+0)*fat_ga_stride); \ float2 FAT1 = tex1Dfetch((gauge), idx + ((dir/2)*9+1)*fat_ga_stride); \ float2 FAT2 = tex1Dfetch((gauge), idx + ((dir/2)*9+2)*fat_ga_stride); \ float2 FAT3 = tex1Dfetch((gauge), idx + ((dir/2)*9+3)*fat_ga_stride); \ float2 FAT4 = tex1Dfetch((gauge), idx + ((dir/2)*9+4)*fat_ga_stride); \ float2 FAT5 = tex1Dfetch((gauge), idx + ((dir/2)*9+5)*fat_ga_stride); \ float2 FAT6 = tex1Dfetch((gauge), idx + ((dir/2)*9+6)*fat_ga_stride); \ float2 FAT7 = tex1Dfetch((gauge), idx + ((dir/2)*9+7)*fat_ga_stride); \ float2 FAT8 = tex1Dfetch((gauge), idx + ((dir/2)*9+8)*fat_ga_stride);
Definition at line 340 of file read_gauge.h.
| #define READ_GAUGE_MATRIX_12_DOUBLE | ( | gauge, | |
| dir | |||
| ) |
double2 G0 = fetch_double2((gauge), ga_idx + ((dir/2)*6+0)*ga_stride); \ double2 G1 = fetch_double2((gauge), ga_idx + ((dir/2)*6+1)*ga_stride); \ double2 G2 = fetch_double2((gauge), ga_idx + ((dir/2)*6+2)*ga_stride); \ double2 G3 = fetch_double2((gauge), ga_idx + ((dir/2)*6+3)*ga_stride); \ double2 G4 = fetch_double2((gauge), ga_idx + ((dir/2)*6+4)*ga_stride); \ double2 G5 = fetch_double2((gauge), ga_idx + ((dir/2)*6+5)*ga_stride); \ double2 G6 = make_double2(0,0); \ double2 G7 = make_double2(0,0); \ double2 G8 = make_double2(0,0); \ double2 G9 = make_double2(0,0);
Definition at line 73 of file read_gauge.h.
| #define READ_GAUGE_MATRIX_12_SINGLE | ( | gauge, | |
| dir | |||
| ) |
float4 G0 = tex1Dfetch((gauge), ga_idx + ((dir/2)*3+0)*ga_stride); \ float4 G1 = tex1Dfetch((gauge), ga_idx + ((dir/2)*3+1)*ga_stride); \ float4 G2 = tex1Dfetch((gauge), ga_idx + ((dir/2)*3+2)*ga_stride); \ float4 G3 = make_float4(0,0,0,0); \ float4 G4 = make_float4(0,0,0,0);
Definition at line 85 of file read_gauge.h.
| #define READ_GAUGE_MATRIX_18_DOUBLE | ( | gauge, | |
| dir | |||
| ) |
double2 G0 = fetch_double2((gauge), ga_idx + ((dir/2)*9+0)*ga_stride); \ double2 G1 = fetch_double2((gauge), ga_idx + ((dir/2)*9+1)*ga_stride); \ double2 G2 = fetch_double2((gauge), ga_idx + ((dir/2)*9+2)*ga_stride); \ double2 G3 = fetch_double2((gauge), ga_idx + ((dir/2)*9+3)*ga_stride); \ double2 G4 = fetch_double2((gauge), ga_idx + ((dir/2)*9+4)*ga_stride); \ double2 G5 = fetch_double2((gauge), ga_idx + ((dir/2)*9+5)*ga_stride); \ double2 G6 = fetch_double2((gauge), ga_idx + ((dir/2)*9+6)*ga_stride); \ double2 G7 = fetch_double2((gauge), ga_idx + ((dir/2)*9+7)*ga_stride); \ double2 G8 = fetch_double2((gauge), ga_idx + ((dir/2)*9+8)*ga_stride); \ double2 G9 = make_double2(0,0);
Definition at line 45 of file read_gauge.h.
| #define READ_GAUGE_MATRIX_18_SINGLE | ( | gauge, | |
| dir | |||
| ) |
float2 G0 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+0)*ga_stride); \ float2 G1 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+1)*ga_stride); \ float2 G2 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+2)*ga_stride); \ float2 G3 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+3)*ga_stride); \ float2 G4 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+4)*ga_stride); \ float2 G5 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+5)*ga_stride); \ float2 G6 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+6)*ga_stride); \ float2 G7 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+7)*ga_stride); \ float2 G8 = tex1Dfetch((gauge), ga_idx + ((dir/2)*9+8)*ga_stride); \ float2 G9 = make_float2(0,0);
Definition at line 57 of file read_gauge.h.
| #define READ_GAUGE_MATRIX_8_DOUBLE | ( | gauge, | |
| dir | |||
| ) |
double2 G0 = fetch_double2((gauge), ga_idx + ((dir/2)*4+0)*ga_stride); \ double2 G1 = fetch_double2((gauge), ga_idx + ((dir/2)*4+1)*ga_stride); \ double2 G2 = fetch_double2((gauge), ga_idx + ((dir/2)*4+2)*ga_stride); \ double2 G3 = fetch_double2((gauge), ga_idx + ((dir/2)*4+3)*ga_stride); \ double2 G4 = make_double2(0,0); \ double2 G5 = make_double2(0,0); \ double2 G6 = make_double2(0,0); \ double2 G7 = make_double2(0,0); \ double2 G8 = make_double2(0,0); \ double2 G9 = make_double2(0,0); \ g21_re = g00_re; \ g21_im = g00_im;
Definition at line 114 of file read_gauge.h.
| #define READ_GAUGE_MATRIX_8_HALF | ( | gauge, | |
| dir | |||
| ) |
float4 G0 = tex1Dfetch((gauge), ga_idx + ((dir/2)*2+0)*ga_stride); \ float4 G1 = tex1Dfetch((gauge), ga_idx + ((dir/2)*2+1)*ga_stride); \ float4 G2 = make_float4(0,0,0,0); \ float4 G3 = make_float4(0,0,0,0); \ float4 G4 = make_float4(0,0,0,0); \ g21_re = pi_f*g00_re; \ g21_im = pi_f*g00_im;
Definition at line 138 of file read_gauge.h.
| #define READ_GAUGE_MATRIX_8_SINGLE | ( | gauge, | |
| dir | |||
| ) |
float4 G0 = tex1Dfetch((gauge), ga_idx + ((dir/2)*2+0)*ga_stride); \ float4 G1 = tex1Dfetch((gauge), ga_idx + ((dir/2)*2+1)*ga_stride); \ float4 G2 = make_float4(0,0,0,0); \ float4 G3 = make_float4(0,0,0,0); \ float4 G4 = make_float4(0,0,0,0); \ g21_re = g00_re; \ g21_im = g00_im;
Definition at line 129 of file read_gauge.h.
| #define READ_LONG_MATRIX_12_DOUBLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
double2 LONG0 = fetch_double2((gauge), idx + ((dir/2)*6+0)*long_ga_stride); \ double2 LONG1 = fetch_double2((gauge), idx + ((dir/2)*6+1)*long_ga_stride); \ double2 LONG2 = fetch_double2((gauge), idx + ((dir/2)*6+2)*long_ga_stride); \ double2 LONG3 = fetch_double2((gauge), idx + ((dir/2)*6+3)*long_ga_stride); \ double2 LONG4 = fetch_double2((gauge), idx + ((dir/2)*6+4)*long_ga_stride); \ double2 LONG5 = fetch_double2((gauge), idx + ((dir/2)*6+5)*long_ga_stride); \ double2 LONG6 = make_double2(0,0); \ double2 LONG7 = make_double2(0,0); \ double2 LONG8 = make_double2(0,0); \ double2 LONG9 = make_double2(0,0);
Definition at line 432 of file read_gauge.h.
| #define READ_LONG_MATRIX_12_HALF | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float4 LONG0 = tex1Dfetch((gauge), idx + ((dir/2)*3+0)*long_ga_stride); \ float4 LONG1 = tex1Dfetch((gauge), idx + ((dir/2)*3+1)*long_ga_stride); \ float4 LONG2 = tex1Dfetch((gauge), idx + ((dir/2)*3+2)*long_ga_stride); \ float4 LONG3 = make_float4(0,0,0,0); \ float4 LONG4 = make_float4(0,0,0,0);
Definition at line 549 of file read_gauge.h.
| #define READ_LONG_MATRIX_12_SINGLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float4 LONG0 = tex1Dfetch((gauge), idx + ((dir/2)*3+0)*long_ga_stride); \ float4 LONG1 = tex1Dfetch((gauge), idx + ((dir/2)*3+1)*long_ga_stride); \ float4 LONG2 = tex1Dfetch((gauge), idx + ((dir/2)*3+2)*long_ga_stride); \ float4 LONG3 = make_float4(0,0,0,0); \ float4 LONG4 = make_float4(0,0,0,0);
Definition at line 407 of file read_gauge.h.
| #define READ_LONG_MATRIX_18_DOUBLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
double2 LONG0 = fetch_double2((gauge), idx + ((dir/2)*9+0)*long_ga_stride); \ double2 LONG1 = fetch_double2((gauge), idx + ((dir/2)*9+1)*long_ga_stride); \ double2 LONG2 = fetch_double2((gauge), idx + ((dir/2)*9+2)*long_ga_stride); \ double2 LONG3 = fetch_double2((gauge), idx + ((dir/2)*9+3)*long_ga_stride); \ double2 LONG4 = fetch_double2((gauge), idx + ((dir/2)*9+4)*long_ga_stride); \ double2 LONG5 = fetch_double2((gauge), idx + ((dir/2)*9+5)*long_ga_stride); \ double2 LONG6 = fetch_double2((gauge), idx + ((dir/2)*9+6)*long_ga_stride); \ double2 LONG7 = fetch_double2((gauge), idx + ((dir/2)*9+7)*long_ga_stride); \ double2 LONG8 = fetch_double2((gauge), idx + ((dir/2)*9+8)*long_ga_stride);
Definition at line 458 of file read_gauge.h.
| #define READ_LONG_MATRIX_18_HALF | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float2 LONG0 = tex1Dfetch((gauge), idx + ((dir/2)*9+0)*long_ga_stride); \ float2 LONG1 = tex1Dfetch((gauge), idx + ((dir/2)*9+1)*long_ga_stride); \ float2 LONG2 = tex1Dfetch((gauge), idx + ((dir/2)*9+2)*long_ga_stride); \ float2 LONG3 = tex1Dfetch((gauge), idx + ((dir/2)*9+3)*long_ga_stride); \ float2 LONG4 = tex1Dfetch((gauge), idx + ((dir/2)*9+4)*long_ga_stride); \ float2 LONG5 = tex1Dfetch((gauge), idx + ((dir/2)*9+5)*long_ga_stride); \ float2 LONG6 = tex1Dfetch((gauge), idx + ((dir/2)*9+6)*long_ga_stride); \ float2 LONG7 = tex1Dfetch((gauge), idx + ((dir/2)*9+7)*long_ga_stride); \ float2 LONG8 = tex1Dfetch((gauge), idx + ((dir/2)*9+8)*long_ga_stride);
Definition at line 558 of file read_gauge.h.
| #define READ_LONG_MATRIX_18_SINGLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float2 LONG0 = tex1Dfetch((gauge), idx + ((dir/2)*9+0)*long_ga_stride); \ float2 LONG1 = tex1Dfetch((gauge), idx + ((dir/2)*9+1)*long_ga_stride); \ float2 LONG2 = tex1Dfetch((gauge), idx + ((dir/2)*9+2)*long_ga_stride); \ float2 LONG3 = tex1Dfetch((gauge), idx + ((dir/2)*9+3)*long_ga_stride); \ float2 LONG4 = tex1Dfetch((gauge), idx + ((dir/2)*9+4)*long_ga_stride); \ float2 LONG5 = tex1Dfetch((gauge), idx + ((dir/2)*9+5)*long_ga_stride); \ float2 LONG6 = tex1Dfetch((gauge), idx + ((dir/2)*9+6)*long_ga_stride); \ float2 LONG7 = tex1Dfetch((gauge), idx + ((dir/2)*9+7)*long_ga_stride); \ float2 LONG8 = tex1Dfetch((gauge), idx + ((dir/2)*9+8)*long_ga_stride);
Definition at line 421 of file read_gauge.h.
| #define READ_LONG_MATRIX_8_DOUBLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
double2 LONG0 = fetch_double2((gauge), idx + ((dir/2)*4+0)*long_ga_stride); \ double2 LONG1 = fetch_double2((gauge), idx + ((dir/2)*4+1)*long_ga_stride); \ double2 LONG2 = fetch_double2((gauge), idx + ((dir/2)*4+2)*long_ga_stride); \ double2 LONG3 = fetch_double2((gauge), idx + ((dir/2)*4+3)*long_ga_stride); \ double2 LONG4 = make_double2(0,0); \ double2 LONG5 = make_double2(0,0); \ double2 LONG6 = make_double2(0,0); \ double2 LONG7 = make_double2(0,0); \ double2 LONG8 = make_double2(0,0); \ double2 LONG9 = make_double2(0,0); \ long21_re = long00_re; \ long21_im = long00_im;
Definition at line 444 of file read_gauge.h.
| #define READ_LONG_MATRIX_8_HALF | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float4 LONG0 = tex1Dfetch((gauge), idx + ((dir/2)*2+0)*long_ga_stride); \ float4 LONG1 = tex1Dfetch((gauge), idx + ((dir/2)*2+1)*long_ga_stride); \ float4 LONG2 = make_float4(0,0,0,0); \ float4 LONG3 = make_float4(0,0,0,0); \ float4 LONG4 = make_float4(0,0,0,0); \ long00_re=long21_re = pi_f*long00_re; \ long00_im=long21_im = pi_f*long00_im;
Definition at line 539 of file read_gauge.h.
| #define READ_LONG_MATRIX_8_SINGLE | ( | gauge, | |
| dir, | |||
| idx | |||
| ) |
float4 LONG0 = tex1Dfetch((gauge), idx + ((dir/2)*2+0)*long_ga_stride); \ float4 LONG1 = tex1Dfetch((gauge), idx + ((dir/2)*2+1)*long_ga_stride); \ float4 LONG2 = make_float4(0,0,0,0); \ float4 LONG3 = make_float4(0,0,0,0); \ float4 LONG4 = make_float4(0,0,0,0); \ long21_re = long00_re; \ long21_im = long00_im;
Definition at line 413 of file read_gauge.h.
ACC_CONJ_PROD(gauge##20, +gauge##01, +gauge##12); \ ACC_CONJ_PROD(gauge##20, -gauge##02, +gauge##11); \ ACC_CONJ_PROD(gauge##21, +gauge##02, +gauge##10); \ ACC_CONJ_PROD(gauge##21, -gauge##00, +gauge##12); \ ACC_CONJ_PROD(gauge##22, +gauge##00, +gauge##11); \ ACC_CONJ_PROD(gauge##22, -gauge##01, +gauge##10); \ {double u0 = coeff* sign; \ gauge##20_re *=u0;gauge##20_im *=u0; gauge##21_re *=u0; gauge##21_im *=u0; \ gauge##22_re *=u0;gauge##22_im *=u0;}
Definition at line 289 of file read_gauge.h.
ACC_CONJ_PROD(gauge##20, +gauge##01, +gauge##12); \ ACC_CONJ_PROD(gauge##20, -gauge##02, +gauge##11); \ ACC_CONJ_PROD(gauge##21, +gauge##02, +gauge##10); \ ACC_CONJ_PROD(gauge##21, -gauge##00, +gauge##12); \ ACC_CONJ_PROD(gauge##22, +gauge##00, +gauge##11); \ ACC_CONJ_PROD(gauge##22, -gauge##01, +gauge##10); \ {float u0 = coeff_f*sign; \ gauge##20_re *=u0;gauge##20_im *=u0; gauge##21_re *=u0; gauge##21_im *=u0; \ gauge##22_re *=u0;gauge##22_im *=u0;}
Definition at line 278 of file read_gauge.h.
Definition at line 239 of file read_gauge.h.
Definition at line 301 of file read_gauge.h.
| #define RECONSTRUCT_MATRIX_12_DOUBLE | ( | dir | ) |
ACC_CONJ_PROD(g20, +g01, +g12); \ ACC_CONJ_PROD(g20, -g02, +g11); \ ACC_CONJ_PROD(g21, +g02, +g10); \ ACC_CONJ_PROD(g21, -g00, +g12); \ ACC_CONJ_PROD(g22, +g00, +g11); \ ACC_CONJ_PROD(g22, -g01, +g10); \ double u0 = (dir < 6 ? anisotropy : (ga_idx >= X4X3X2X1hmX3X2X1h ? t_boundary : 1)); \ G6.x*=u0; G6.y*=u0; G7.x*=u0; G7.y*=u0; G8.x*=u0; G8.y*=u0;
Definition at line 92 of file read_gauge.h.
| #define RECONSTRUCT_MATRIX_12_SINGLE | ( | dir | ) |
ACC_CONJ_PROD(g20, +g01, +g12); \ ACC_CONJ_PROD(g20, -g02, +g11); \ ACC_CONJ_PROD(g21, +g02, +g10); \ ACC_CONJ_PROD(g21, -g00, +g12); \ ACC_CONJ_PROD(g22, +g00, +g11); \ ACC_CONJ_PROD(g22, -g01, +g10); \ float u0 = (dir < 6 ? anisotropy_f : (ga_idx >= X4X3X2X1hmX3X2X1h ? t_boundary_f : 1)); \ G3.x*=u0; G3.y*=u0; G3.z*=u0; G3.w*=u0; G4.x*=u0; G4.y*=u0;
Definition at line 102 of file read_gauge.h.
| #define RECONSTRUCT_MATRIX_18_DOUBLE | ( | dir | ) |
Definition at line 69 of file read_gauge.h.
| #define RECONSTRUCT_MATRIX_18_SINGLE | ( | dir | ) |
Definition at line 71 of file read_gauge.h.
| #define RECONSTRUCT_MATRIX_8_DOUBLE | ( | dir | ) |
Definition at line 147 of file read_gauge.h.
| #define RECONSTRUCT_MATRIX_8_SINGLE | ( | dir | ) |
Definition at line 195 of file read_gauge.h.
1.7.3