static void q_CL_D_writer(const int p[], int c, int d, int re_im, double v, void *e) { CL_D_env *env = e; int i = QDP_index_L(env->lat, p); QLA_D3_DiracFermion *f = env->f; if (re_im == 0) { QLA_real(QLA_elem_D(f[i], c, d)) = v; } else { QLA_imag(QLA_elem_D(f[i], c, d)) = v; } }
static void f_writer(const int pos[4], int c, int d, int re_im, double v, void *env) { int n = QDP_node_number(pos); int i = QDP_index(pos); QDP_DiracFermion *f = (QDP_DiracFermion *)env; QLA_DiracFermion *df = QDP_expose_D(f); assert(n == self); if (re_im == 0) { QLA_real(QLA_elem_D(df[i], c, d)) = v; } else { QLA_imag(QLA_elem_D(df[i], c, d)) = v; } QDP_reset_D(f); }
static double q_CL_D_reader(const int p[], int c, int d, int re_im, void *e) { CL_D_env *env = e; int i = QDP_index_L(env->lat, p); QLA_D3_DiracFermion *f = env->f; QLA_D_Real xx; if (re_im == 0) { QLA_r_eq_Re_c(xx, QLA_elem_D(f[i], c, d)); } else { QLA_r_eq_Im_c(xx, QLA_elem_D(f[i], c, d)); } return xx; }
static double f_reader(const int pos[NDIM], int c, int d, int re_im, void *env) { QLA_Real xx; int n = QDP_node_number(pos); int i = QDP_index(pos); QDP_DiracFermion *f = (QDP_DiracFermion *)env; QLA_DiracFermion *df = QDP_expose_D(f); assert(n == self); if (re_im == 0) { QLA_r_eq_Re_c(xx, QLA_elem_D(df[i], c, d)); } else { QLA_r_eq_Im_c(xx, QLA_elem_D(df[i], c, d)); } QDP_reset_D(f); return xx; }
void set_D(QLA_DiracFermion *d, int i) { for(int j=0; j<QLA_Nc; j++) { for(int k=0; k<QLA_Ns; k++) { QLA_c_eq_r_plus_ir(QLA_elem_D(*d,j,k), (j+4)*(k+1)+cos(i), (j+4)*(k+1)+sin(i)); } } }