QUDA v0.4.0
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 do_boundary ga_idx >= X4X3X2X1hmX3X2X1h |
Definition at line 206 of file read_gauge.h.
double2 G##0 = gauge[idx + ((dir/2)*6+0)*stride]; \ double2 G##1 = gauge[idx + ((dir/2)*6+1)*stride]; \ double2 G##2 = gauge[idx + ((dir/2)*6+2)*stride]; \ double2 G##3 = gauge[idx + ((dir/2)*6+3)*stride]; \ double2 G##4 = gauge[idx + ((dir/2)*6+4)*stride]; \ double2 G##5 = gauge[idx + ((dir/2)*6+5)*stride]; \ double2 G##6 = make_double2(0,0); \ double2 G##7 = make_double2(0,0); \ double2 G##8 = make_double2(0,0); \
Definition at line 133 of file read_gauge.h.
double2 G##0 = fetch_double2((gauge), idx + ((dir/2)*6+0)*stride); \ double2 G##1 = fetch_double2((gauge), idx + ((dir/2)*6+1)*stride); \ double2 G##2 = fetch_double2((gauge), idx + ((dir/2)*6+2)*stride); \ double2 G##3 = fetch_double2((gauge), idx + ((dir/2)*6+3)*stride); \ double2 G##4 = fetch_double2((gauge), idx + ((dir/2)*6+4)*stride); \ double2 G##5 = fetch_double2((gauge), idx + ((dir/2)*6+5)*stride); \ double2 G##6 = make_double2(0,0); \ double2 G##7 = make_double2(0,0); \ double2 G##8 = make_double2(0,0); \
Definition at line 433 of file read_gauge.h.
float4 G##0 = tex1Dfetch((gauge), idx + ((dir/2)*3+0)*stride); \ float4 G##1 = tex1Dfetch((gauge), idx + ((dir/2)*3+1)*stride); \ float4 G##2 = tex1Dfetch((gauge), idx + ((dir/2)*3+2)*stride); \ float4 G##3 = make_float4(0,0,0,0); \ float4 G##4 = make_float4(0,0,0,0);
Definition at line 67 of file read_gauge.h.
float4 G##0 = short42float4(gauge[idx + ((dir/2)*3+0)*stride]); \ float4 G##1 = short42float4(gauge[idx + ((dir/2)*3+1)*stride]); \ float4 G##2 = short42float4(gauge[idx + ((dir/2)*3+2)*stride]); \ float4 G##3 = make_float4(0,0,0,0); \ float4 G##4 = make_float4(0,0,0,0);
Definition at line 151 of file read_gauge.h.
float4 G##0 = tex1Dfetch((gauge), idx + ((dir/2)*3+0)*stride); \ float4 G##1 = tex1Dfetch((gauge), idx + ((dir/2)*3+1)*stride); \ float4 G##2 = tex1Dfetch((gauge), idx + ((dir/2)*3+2)*stride); \ float4 G##3 = make_float4(0,0,0,0); \ float4 G##4 = make_float4(0,0,0,0);
Definition at line 74 of file read_gauge.h.
double2 G##0 = gauge[idx + ((dir/2)*9+0)*stride]; \ double2 G##1 = gauge[idx + ((dir/2)*9+1)*stride]; \ double2 G##2 = gauge[idx + ((dir/2)*9+2)*stride]; \ double2 G##3 = gauge[idx + ((dir/2)*9+3)*stride]; \ double2 G##4 = gauge[idx + ((dir/2)*9+4)*stride]; \ double2 G##5 = gauge[idx + ((dir/2)*9+5)*stride]; \ double2 G##6 = gauge[idx + ((dir/2)*9+6)*stride]; \ double2 G##7 = gauge[idx + ((dir/2)*9+7)*stride]; \ double2 G##8 = gauge[idx + ((dir/2)*9+8)*stride]; \
Definition at line 100 of file read_gauge.h.
double2 G##0 = fetch_double2((gauge), idx + ((dir/2)*9+0)*stride); \ double2 G##1 = fetch_double2((gauge), idx + ((dir/2)*9+1)*stride); \ double2 G##2 = fetch_double2((gauge), idx + ((dir/2)*9+2)*stride); \ double2 G##3 = fetch_double2((gauge), idx + ((dir/2)*9+3)*stride); \ double2 G##4 = fetch_double2((gauge), idx + ((dir/2)*9+4)*stride); \ double2 G##5 = fetch_double2((gauge), idx + ((dir/2)*9+5)*stride); \ double2 G##6 = fetch_double2((gauge), idx + ((dir/2)*9+6)*stride); \ double2 G##7 = fetch_double2((gauge), idx + ((dir/2)*9+7)*stride); \ double2 G##8 = fetch_double2((gauge), idx + ((dir/2)*9+8)*stride); \
Definition at line 422 of file read_gauge.h.
float2 G##0 = ((float2*)gauge)[idx + ((dir/2)*9+0)*stride]; \ float2 G##1 = ((float2*)gauge)[idx + ((dir/2)*9+1)*stride]; \ float2 G##2 = ((float2*)gauge)[idx + ((dir/2)*9+2)*stride]; \ float2 G##3 = ((float2*)gauge)[idx + ((dir/2)*9+3)*stride]; \ float2 G##4 = ((float2*)gauge)[idx + ((dir/2)*9+4)*stride]; \ float2 G##5 = ((float2*)gauge)[idx + ((dir/2)*9+5)*stride]; \ float2 G##6 = ((float2*)gauge)[idx + ((dir/2)*9+6)*stride]; \ float2 G##7 = ((float2*)gauge)[idx + ((dir/2)*9+7)*stride]; \ float2 G##8 = ((float2*)gauge)[idx + ((dir/2)*9+8)*stride]; \
Definition at line 111 of file read_gauge.h.
float2 G##0 = tex1Dfetch((gauge), idx + ((dir/2)*9+0)*stride); \ float2 G##1 = tex1Dfetch((gauge), idx + ((dir/2)*9+1)*stride); \ float2 G##2 = tex1Dfetch((gauge), idx + ((dir/2)*9+2)*stride); \ float2 G##3 = tex1Dfetch((gauge), idx + ((dir/2)*9+3)*stride); \ float2 G##4 = tex1Dfetch((gauge), idx + ((dir/2)*9+4)*stride); \ float2 G##5 = tex1Dfetch((gauge), idx + ((dir/2)*9+5)*stride); \ float2 G##6 = tex1Dfetch((gauge), idx + ((dir/2)*9+6)*stride); \ float2 G##7 = tex1Dfetch((gauge), idx + ((dir/2)*9+7)*stride); \ float2 G##8 = tex1Dfetch((gauge), idx + ((dir/2)*9+8)*stride); \
Definition at line 45 of file read_gauge.h.
float2 G##0 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+0)*stride]); \ float2 G##1 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+1)*stride]); \ float2 G##2 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+2)*stride]); \ float2 G##3 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+3)*stride]); \ float2 G##4 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+4)*stride]); \ float2 G##5 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+5)*stride]); \ float2 G##6 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+6)*stride]); \ float2 G##7 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+7)*stride]); \ float2 G##8 = short22float2(((short2*)gauge)[idx + ((dir/2)*9+8)*stride]); \
Definition at line 122 of file read_gauge.h.
float2 G##0 = tex1Dfetch((gauge), idx + ((dir/2)*9+0)*stride); \ float2 G##1 = tex1Dfetch((gauge), idx + ((dir/2)*9+1)*stride); \ float2 G##2 = tex1Dfetch((gauge), idx + ((dir/2)*9+2)*stride); \ float2 G##3 = tex1Dfetch((gauge), idx + ((dir/2)*9+3)*stride); \ float2 G##4 = tex1Dfetch((gauge), idx + ((dir/2)*9+4)*stride); \ float2 G##5 = tex1Dfetch((gauge), idx + ((dir/2)*9+5)*stride); \ float2 G##6 = tex1Dfetch((gauge), idx + ((dir/2)*9+6)*stride); \ float2 G##7 = tex1Dfetch((gauge), idx + ((dir/2)*9+7)*stride); \ float2 G##8 = tex1Dfetch((gauge), idx + ((dir/2)*9+8)*stride); \
Definition at line 56 of file read_gauge.h.
double2 G##0 = gauge[idx + ((dir/2)*4+0)*stride]; \ double2 G##1 = gauge[idx + ((dir/2)*4+1)*stride]; \ double2 G##2 = gauge[idx + ((dir/2)*4+2)*stride]; \ double2 G##3 = gauge[idx + ((dir/2)*4+3)*stride]; \ double2 G##4 = make_double2(0,0); \ double2 G##5 = make_double2(0,0); \ double2 G##6 = make_double2(0,0); \ double2 G##7 = make_double2(0,0); \ double2 G##8 = make_double2(0,0); \ double2 G##9 = make_double2(0,0); \ (G##7).x = (G##0).x; \ (G##7).y = (G##0).y;
Definition at line 159 of file read_gauge.h.
double2 G##0 = fetch_double2((gauge), idx + ((dir/2)*4+0)*stride); \ double2 G##1 = fetch_double2((gauge), idx + ((dir/2)*4+1)*stride); \ double2 G##2 = fetch_double2((gauge), idx + ((dir/2)*4+2)*stride); \ double2 G##3 = fetch_double2((gauge), idx + ((dir/2)*4+3)*stride); \ double2 G##4 = make_double2(0,0); \ double2 G##5 = make_double2(0,0); \ double2 G##6 = make_double2(0,0); \ double2 G##7 = make_double2(0,0); \ double2 G##8 = make_double2(0,0); \ double2 G##9 = make_double2(0,0); \ (G##7).x = (G##0).x; \ (G##7).y = (G##0).y;
Definition at line 445 of file read_gauge.h.
float4 G##0 = gauge[idx + ((dir/2)*2+0)*stride]; \ float4 G##1 = gauge[idx + ((dir/2)*2+1)*stride]; \ float4 G##2 = make_float4(0,0,0,0); \ float4 G##3 = make_float4(0,0,0,0); \ float4 G##4 = make_float4(0,0,0,0); \ (G##3).z = (G##0).x; \ (G##3).w = (G##0).y;
Definition at line 174 of file read_gauge.h.
float4 G##0 = tex1Dfetch((gauge), idx + ((dir/2)*2+0)*stride); \ float4 G##1 = tex1Dfetch((gauge), idx + ((dir/2)*2+1)*stride); \ float4 G##2 = make_float4(0,0,0,0); \ float4 G##3 = make_float4(0,0,0,0); \ float4 G##4 = make_float4(0,0,0,0); \ (G##3).z = (G##0).x; \ (G##3).w = (G##0).y;
Definition at line 82 of file read_gauge.h.
float4 G##0 = short42float4(gauge[idx + ((dir/2)*2+0)*stride]); \ float4 G##1 = short42float4(gauge[idx + ((dir/2)*2+1)*stride]); \ float4 G##2 = make_float4(0,0,0,0); \ float4 G##3 = make_float4(0,0,0,0); \ float4 G##4 = make_float4(0,0,0,0); \ (G##3).z = (G##0).x = pi_f*(G##0).x; \ (G##3).w = (G##0).y = pi_f*(G##0).y;
Definition at line 183 of file read_gauge.h.
float4 G##0 = tex1Dfetch((gauge), idx + ((dir/2)*2+0)*stride); \ float4 G##1 = tex1Dfetch((gauge), idx + ((dir/2)*2+1)*stride); \ float4 G##2 = make_float4(0,0,0,0); \ float4 G##3 = make_float4(0,0,0,0); \ float4 G##4 = make_float4(0,0,0,0); \ (G##3).z = (G##0).x = pi_f*(G##0).x; \ (G##3).w = (G##0).y = pi_f*(G##0).y;
Definition at line 91 of file read_gauge.h.
#define RECONSTRUCT_GAUGE_MATRIX_12_DOUBLE | ( | dir, | |
gauge, | |||
idx, | |||
sign | |||
) |
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 326 of file read_gauge.h.
#define RECONSTRUCT_GAUGE_MATRIX_12_SINGLE | ( | dir, | |
gauge, | |||
idx, | |||
sign | |||
) |
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 315 of file read_gauge.h.
#define RECONSTRUCT_GAUGE_MATRIX_8_DOUBLE | ( | dir, | |
gauge, | |||
idx, | |||
sign | |||
) |
Definition at line 337 of file read_gauge.h.
#define RECONSTRUCT_GAUGE_MATRIX_8_SINGLE | ( | dir, | |
gauge, | |||
idx, | |||
sign | |||
) |
Definition at line 375 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 : (do_boundary ? t_boundary : 1)); \ G6.x*=u0; G6.y*=u0; G7.x*=u0; G7.y*=u0; G8.x*=u0; G8.y*=u0;
Definition at line 211 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 : (do_boundary ? 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 221 of file read_gauge.h.
#define RECONSTRUCT_MATRIX_18_DOUBLE | ( | dir | ) |
Definition at line 202 of file read_gauge.h.
#define RECONSTRUCT_MATRIX_18_SINGLE | ( | dir | ) |
Definition at line 203 of file read_gauge.h.
#define RECONSTRUCT_MATRIX_8_DOUBLE | ( | dir | ) |
Definition at line 231 of file read_gauge.h.
#define RECONSTRUCT_MATRIX_8_SINGLE | ( | dir | ) |
Definition at line 271 of file read_gauge.h.
#define RESCALE2 | ( | G, | |
max | |||
) |
(G##0).x *= max; (G##0).y *= max; (G##1).x *= max; (G##1).y *= max; \ (G##2).x *= max; (G##2).y *= max; (G##3).x *= max; (G##3).y *= max; \ (G##4).x *= max; (G##4).y *= max; (G##5).x *= max; (G##5).y *= max; \ (G##6).x *= max; (G##6).y *= max; (G##7).x *= max; (G##7).y *= max; \ (G##8).x *= max; (G##8).y *= max;
Definition at line 193 of file read_gauge.h.