diff --git a/Makefile.in.FERMI b/Makefile.in.FERMI new file mode 100644 index 0000000..9bd39dd --- /dev/null +++ b/Makefile.in.FERMI @@ -0,0 +1,7 @@ +AR=ar +RANLIB=ranlib +CC=mpixlc_r -DINLINE="" +CFLAGS=-O3 -qstrict -I./ -I$(HOME)/install/include/ -I$(GSL_LIB)/../include -qsmp=omp -qthreaded +LDFLAGS=-L$(HOME)/install/lib -L$(GSL_LIB)/ +LIBS=-llime -lgslcblas -lgsl -lm -qsmp=omp -qthreaded + diff --git a/Makefile.in.JURECA b/Makefile.in.JURECA new file mode 100644 index 0000000..01cb47d --- /dev/null +++ b/Makefile.in.JURECA @@ -0,0 +1,6 @@ +AR=ar +RANLIB=ranlib +CC=mpicc -std=c99 +CFLAGS=-O3 -I$(HOME)/install_gnu/include -fopenmp -I./ -I$(HOME)/install_gnu/include -DINLINE="static inline" +LDFLAGS=-L$(HOME)/install_gnu/lib +LIBS=-llime -lgslcblas -lgsl -lxml2 -lm -openmp diff --git a/Makefile.in.JUROPA_gnu b/Makefile.in.JUROPA_gnu new file mode 100644 index 0000000..ce6f260 --- /dev/null +++ b/Makefile.in.JUROPA_gnu @@ -0,0 +1,6 @@ +AR=ar +RANLIB=ranlib +CC=mpicc -std=c99 +CFLAGS=-O3 -fopenmp -m64 -override-limits -I./ -I$(HOME)/install_gnu/include -DINLINE="static inline" +LDFLAGS=-L$(HOME)/install_gnu/lib +LIBS=-llime -lgslcblas -lgsl -lm diff --git a/Makefile.in.PHI b/Makefile.in.PHI new file mode 100644 index 0000000..6bb4d22 --- /dev/null +++ b/Makefile.in.PHI @@ -0,0 +1,7 @@ +AR=ar +RANLIB=ranlib +CC=mpiicc +CFLAGS=-O3 -std=c99 -openmp -I./ -I$(HOME)/install/include/ +LDFLAGS=-L$(HOME)/install/lib +LIBS=-llime -lgslcblas -lgsl -lxml2 -lm -liomp5 + diff --git a/Makefile.in.PIZ_DAINT b/Makefile.in.PIZ_DAINT new file mode 100644 index 0000000..d1144d5 --- /dev/null +++ b/Makefile.in.PIZ_DAINT @@ -0,0 +1,6 @@ +AR=ar +RANLIB=ranlib +CC=cc -std=c99 +CFLAGS=-O3 -openmp -unroll-aggressive -opt-prefetch -finline-functions -I./ -I$(HOME)/install/include/ +LDFLAGS=-L$(HOME)/install/lib +LIBS=-llime -lgslcblas -lgsl -lxml2 -lm -openmp diff --git a/include/qcd.h b/include/qcd.h index 868658c..90c2f67 100644 --- a/include/qcd.h +++ b/include/qcd.h @@ -185,6 +185,8 @@ void qcd_destroyVector3d(qcd_vector3d *vec); int qcd_initPropagator(qcd_propagator *prp, qcd_geometry *geo); void qcd_destroyPropagator(qcd_propagator *prp); int qcd_initGaugeField(qcd_gaugeField *u, qcd_geometry *geo); +int qcd_setZeroGaugeField(qcd_gaugeField *u, qcd_geometry *geo); +int qcd_setUnityGaugeField(qcd_gaugeField *u, qcd_geometry *geo); void qcd_destroyGaugeField(qcd_gaugeField *u); int qcd_initGaugeTransformation(qcd_gaugeTransformation *u, qcd_geometry *geo); void qcd_destroyGaugeTransformation(qcd_gaugeTransformation *u); diff --git a/include/qcd_contract_2pt_pr.h b/include/qcd_contract_2pt_pr.h index 7ba59da..43c9960 100644 --- a/include/qcd_contract_2pt_pr.h +++ b/include/qcd_contract_2pt_pr.h @@ -6,6 +6,10 @@ * */ +#ifndef H_QCD_CONTRACT_2PT_PR +#define H_QCD_CONTRACT_2PT_PR 1 + + int qcd_projector12_2pt(qcd_complex_16 gamma12[4][4], qcd_complex_16 gamma13[4][4], qcd_complex_16 gamma23[4][4], qcd_complex_16 *block[4][4], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo); @@ -20,6 +24,18 @@ int qcd_f1f1f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 int qcd_deltas_xistar_omegastar_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra11_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra12_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra21_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra22_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); int qcd_f1f2f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem); @@ -37,3 +53,6 @@ int qcd_sigmas2_xistar_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_co void qcd_contractions2pt_pr(qcd_uint_4 particle_id, qcd_complex_16 *block12[4][4], qcd_complex_16 *block32[4][4], qcd_complex_16 *blocknp[4][4], qcd_propagator *uprop,qcd_propagator *dprop,qcd_propagator *sprop,qcd_propagator *cprop, qcd_geometry *geo, qcd_uint_4 lt); + + +#endif diff --git a/include/qcd_contract_3pt_all.h b/include/qcd_contract_3pt_all.h index 388b58d..fe9dcec 100644 --- a/include/qcd_contract_3pt_all.h +++ b/include/qcd_contract_3pt_all.h @@ -5,71 +5,93 @@ * Header file for qcd_contract_3pt_all.c * */ - -int qcd_projector_3pt(qcd_complex_16 *block[5], qcd_complex_16 *block_pr[10][4][4], qcd_geometry *geo, qcd_uint_4 prid); -int qcd_projector32_3pt(qcd_complex_16 gamma12[4][4], qcd_complex_16 gamma13[4][4], qcd_complex_16 gamma23[4][4], - qcd_complex_16 *block_pr[10][4][4], qcd_geometry *geo); - +int qcd_projector_3pt_spin12(qcd_complex_16 *block[5], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo); + +int qcd_projector_pr32_3pt_spin32(qcd_complex_16 *block[5], qcd_complex_16 *block_pr[9][4][4], + qcd_complex_16 gamma12[4][4], qcd_complex_16 gamma13[4][4], qcd_complex_16 gamma23[4][4], qcd_geometry *geo); //----------------------------------- -int qcd_f1f1f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *prop, qcd_propagator *seqprop, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem); +int qcd_f1f1f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *prop, qcd_propagator *seqprop, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem); -int qcd_f1f2f1_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_f1f2f1_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_pnextra_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_pnextra_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_f1f2f1_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_f1f2f1_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_pnextra_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_pnextra_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_deltas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_deltas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_deltas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); - -int qcd_f123f321_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_deltas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra11_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra21_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra12_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra22_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra11_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra12_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra21_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_xistar_extra22_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); + +int qcd_f123f321_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_f123f321_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_f123f321_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_f123f321_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_f123f321_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_f1f2f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_f1f2f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_sigmas4_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_sigmas4_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_sigmas4_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_sigmas4_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_lambdas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_lambdas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_lambdas_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); +int qcd_lambdas_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem); -int qcd_sigmas2_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis); +int qcd_sigmas2_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis); -int qcd_sigmas2_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis); - -int qcd_sigmas2_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis); +int qcd_sigmas2_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis); +int qcd_sigmas2_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis); //===================================================================== void qcd_contractions3pt_new(qcd_uint_4 p_id, qcd_uint_4 np, qcd_complex_16 *block[5], - qcd_propagator *uprop, qcd_propagator *dprop, qcd_propagator *sprop, qcd_propagator *cprop, - qcd_propagator *sequprop, qcd_propagator *seqdprop, qcd_propagator *seqsprop, qcd_propagator *seqcprop, - qcd_geometry *geo, qcd_uint_4 lt); + qcd_propagator *uprop, qcd_propagator *dprop, qcd_propagator *sprop, qcd_propagator *cprop, + qcd_propagator *sequprop, qcd_propagator *seqdprop, qcd_propagator *seqsprop, qcd_propagator *seqcprop, + qcd_geometry *geo, qcd_uint_4 lt); diff --git a/include/qcd_gamma.h b/include/qcd_gamma.h index 84c62f8..a1669b1 100644 --- a/include/qcd_gamma.h +++ b/include/qcd_gamma.h @@ -25,5 +25,6 @@ extern const qcd_complex_16 qcd_BAR_C[4][4]; /* prototypes */ void qcd_gamma5Vector(qcd_vector *v); void qcd_gamma5Propagator(qcd_propagator *p); +void qcd_Propagatorgamma5(qcd_propagator *p); #endif diff --git a/include/qcd_io.h b/include/qcd_io.h index f26dcd2..e4a79e2 100644 --- a/include/qcd_io.h +++ b/include/qcd_io.h @@ -39,6 +39,8 @@ int qcd_getVectorHMCV(char *fname, qcd_uint_2 nu, qcd_uint_2 c2, qcd_vector *v); int qcd_getVector(char *fname, int type, qcd_uint_2 nu, qcd_uint_2 c2, qcd_vector *v); int qcd_writePropagatorCMI(char *fname, qcd_propagator *p); int qcd_writePropagator(char *fname, int type, qcd_propagator *p); +int qcd_writePropagatorASCII(char *fname_basis, qcd_propagator *prop); +int qcd_writeVectorASCII(char *fname_basis, int mu, qcd_vector *vec); int qcd_writeVectorCMI(char *fname, qcd_uint_2 nu, qcd_uint_2 c2, qcd_vector *v); int qcd_writeVectorLime(char *fname, int type, qcd_vector *v); int qcd_writeVector(char *fname, int type, qcd_uint_2 nu, qcd_uint_2 c2, qcd_vector *v); diff --git a/include/qcd_particle_data.h b/include/qcd_particle_data.h index b50fee6..910bc91 100644 --- a/include/qcd_particle_data.h +++ b/include/qcd_particle_data.h @@ -9,10 +9,10 @@ #ifndef H_QCD_PARTICLE_DATA #define H_QCD_PARTICLE_DATA 1 -extern char *particles_parts[53][4]; -extern int particles_pnum[53][4]; -extern char *particle_names[53]; -extern char *meson_names[4]; -extern int particles32[53]; +extern char *particles_parts[61][4]; +extern int particles_pnum[61][4]; +extern char *particle_names[61]; +extern char *meson_names[20]; +extern int particles32[61]; #endif diff --git a/include/qcd_smearing.h b/include/qcd_smearing.h index 9732b90..fa1d2b5 100644 --- a/include/qcd_smearing.h +++ b/include/qcd_smearing.h @@ -39,5 +39,6 @@ int qcd_gaussIteration3d(qcd_vector *v, qcd_gaugeField *u, qcd_real_8 alpha, qcd_uint_4 t); int qcd_gaussIteration3dAll(qcd_vector *v, qcd_gaugeField *u, qcd_real_8 alpha, qcd_uint_2 gaugeCom); int qcd_apeSmear3d(qcd_gaugeField *apeu, qcd_gaugeField *u, qcd_real_8 alpha); +int qcd_apeSmear4d(qcd_gaugeField *apeu, qcd_gaugeField *u, qcd_real_8 alpha); #endif diff --git a/lib/qcd_contract_2pt.c b/lib/qcd_contract_2pt.c index 88059e7..d0a559a 100644 --- a/lib/qcd_contract_2pt.c +++ b/lib/qcd_contract_2pt.c @@ -15,7 +15,7 @@ #include int qcd_f1f2f1_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[4][4], - qcd_propagator *propf1,qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt){ + qcd_propagator *propf1,qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -23,56 +23,57 @@ int qcd_f1f2f1_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cg int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); + /* lz = v3 % geo->lL[3]; */ + /* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ + /* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ + /* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); - }//space loop - }//color2 loop - }//color1 loop - }//nonvanishing cgcg loop + block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + }//space loop + }//color2 loop + }//color1 loop + }//nonvanishing cgcg loop }// ga gap indices @@ -82,7 +83,7 @@ int qcd_f1f2f1_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cg /*====================================================================*/ int qcd_pnextra_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[4][4], - qcd_propagator *propf1,qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt){ + qcd_propagator *propf1,qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2,de,dep; @@ -91,62 +92,63 @@ int qcd_pnextra_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 c int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,de,dep,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(de =0; de <4; de ++) - for(dep=0; dep<4; dep++){ + for(de =0; de <4; de ++) + for(dep=0; dep<4; dep++){ for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][ga][gap][c][cp]))),term) - ); + block[de][dep][v3] = qcd_CADD(block[de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][ga][gap][c][cp]))),term) + ); - block[de][dep][v3] = qcd_CSUB(block[de][dep][v3],qcd_CMUL( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - propf1->D[v][ga][alp][c][ap]))),term) - ); - }//space loop - }//color2 loop - }//color1 loop - }//nonvanishing cgcg loop - }//ga, gap - }//de,dep + block[de][dep][v3] = qcd_CSUB(block[de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][ga][alp][c][ap]))),term) + ); + }//space loop + }//color2 loop + }//color1 loop + }//nonvanishing cgcg loop + }//ga, gap + }//de,dep return (1); @@ -155,7 +157,7 @@ int qcd_pnextra_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 c /*====================================================================*/ int qcd_f1f2f3_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt){ + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -163,48 +165,49 @@ int qcd_f1f2f3_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cg int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) - // for(ly=0; lylL[2]; ly++) - // for(lz=0; lzlL[3]; lz++){ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) + // for(ly=0; lylL[2]; ly++) + // for(lz=0; lzlL[3]; lz++){ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//space loop - }//color2 loop + }//space loop + }//color2 loop }//color1 loop - }//nonvanishing cgcg loop - }//ga gap indices + }//nonvanishing cgcg loop + }//ga gap indices return (1); } @@ -212,7 +215,7 @@ int qcd_f1f2f3_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cg /*====================================================================*/ int qcd_f123f321_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt){ + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -221,71 +224,71 @@ int qcd_f123f321_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][ga][gap][c][cp], - propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][ga][gap][c][cp], + propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); - block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf3->D[v][al][alp][a][ap], - propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf3->D[v][al][alp][a][ap], + propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); - block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf3->D[v][ga][alp][c][ap], - propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); + block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf3->D[v][ga][alp][c][ap], + propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); - block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf3->D[v][al][gap][a][cp], - propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); + block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf3->D[v][al][gap][a][cp], + propf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg5cg5) + }//color2 loop + }//color1 loop + }//spin loop (cg5cg5) }//-ga,gap - }//space loop + }//space loop return (1); } @@ -293,7 +296,7 @@ int qcd_f123f321_2pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 /*====================================================================*/ int qcd_lambdas_xis_2pt(qcd_int_4 ctr, qcd_int_2 cg5cg5_ind[16*16][4],qcd_complex_16 cg5cg5_val[16*16], qcd_complex_16 *block[4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt){ + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -301,20 +304,20 @@ int qcd_lambdas_xis_2pt(qcd_int_4 ctr, qcd_int_2 cg5cg5_ind[16*16][4],qcd_comple int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) - ); //-ok - - block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); //-ok + //--Diagonal terms + + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) + ); //-ok + + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); //-ok - block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); //-ok - //---------------------- - - block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); //-ok + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); //-ok + //---------------------- + + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); //-ok - block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); //-ok + block[ga][gap][v3] = qcd_CADD(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); //-ok - block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - propf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); //-ok + block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + propf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); //-ok - block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - propf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); //-ok - - block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][be][alp][b][ap], - propf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); //-ok - - block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cg5cg5_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][al][bep][a][bp], - propf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); //-ok + block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + propf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); //-ok + + block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][be][alp][b][ap], + propf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); //-ok + + block[ga][gap][v3] = qcd_CSUB(block[ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cg5cg5_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][al][bep][a][bp], + propf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); //-ok - }//color2 loop - }//color1 loop + }//color2 loop + }//color1 loop }//spin loop (cg5cg5) - }//-ga,gap - }//space loop + }//-ga,gap + }//space loop return (1); @@ -426,7 +429,7 @@ void qcd_contractions2pt(qcd_uint_4 particle_id, qcd_complex_16 *block[4][4], qcd_complex_16 cg5cg5_val[16*16],cgcg_val[16*16]; qcd_complex_16 CG[4][4],CG_bar[4][4]; -//-- Calculate the Charge Conjugation and non zero elements for proton and neutron extra + //-- Calculate the Charge Conjugation and non zero elements for proton and neutron extra if( (particle_id==41) || (particle_id==42) ){ for(al=0;al<4;al++) for(be=0;be<4;be++){ @@ -459,153 +462,153 @@ void qcd_contractions2pt(qcd_uint_4 particle_id, qcd_complex_16 *block[4][4], } }//-if -//-- Non zero elements of (Cg5)*(Cg5) + //-- Non zero elements of (Cg5)*(Cg5) ctr = 0; for(al=0;al<4;al++) - for(be=0;be<4;be++) - for(alp=0;alp<4;alp++) - for(bep=0;bep<4;bep++) - { - C = qcd_CMUL(qcd_CGAMMA[5][al][be],qcd_BAR_CGAMMA[5][bep][alp]); - if(qcd_NORM(C)>1e-3) - { - cg5cg5_val[ctr].re = C.re; - cg5cg5_val[ctr].im = C.im; - cg5cg5_ind[ctr][0] = al; - cg5cg5_ind[ctr][1] = be; - cg5cg5_ind[ctr][2] = bep; - cg5cg5_ind[ctr][3] = alp; - ctr++; - } - } + for(be=0;be<4;be++) + for(alp=0;alp<4;alp++) + for(bep=0;bep<4;bep++) + { + C = qcd_CMUL(qcd_CGAMMA[5][al][be],qcd_BAR_CGAMMA[5][bep][alp]); + if(qcd_NORM(C)>1e-3) + { + cg5cg5_val[ctr].re = C.re; + cg5cg5_val[ctr].im = C.im; + cg5cg5_ind[ctr][0] = al; + cg5cg5_ind[ctr][1] = be; + cg5cg5_ind[ctr][2] = bep; + cg5cg5_ind[ctr][3] = alp; + ctr++; + } + } switch(particle_id){ - case 1: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, dprop, geo, lt) ){ - if(geo->myid==0) printf("proton t=%d\n",lt); - } - break; - case 2: - if (qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, uprop, geo, lt) ){ - if(geo->myid==0) printf("neutron t=%d\n",lt); - } - break; - case 3: - if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, dprop, sprop, geo, lt) ){ - if(geo->myid==0) printf("lambda t=%d\n",lt); - } - break; - case 4: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, sprop, geo, lt) ){ - if(geo->myid==0) printf("sigmaplus t=%d\n",lt); - } - break; - case 5: - if ( qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, sprop, dprop, geo, lt) ){ - if(geo->myid==0) printf("sigmazero t=%d\n",lt); - } - break; - case 6: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, sprop, geo, lt) ){ - if(geo->myid==0) printf("sigmaminus t=%d\n",lt); - } - break; - case 7: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, uprop, geo, lt) ){ - if(geo->myid==0) printf("xizero t=%d\n",lt); - } - break; - case 8: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, dprop, geo, lt) ){ - if(geo->myid==0) printf("ximinus t=%d\n",lt); - } - break; -//--------------------------------------------------------------------- - case 19: - if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, dprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("lambdac_plus t=%d\n",lt); - } - break; - case 20: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("sigmac_plusplus t=%d\n",lt); - } - break; - case 21: - if ( qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, cprop, dprop, geo, lt) ){ - if(geo->myid==0) printf("sigmac_plus t=%d\n",lt); - } - break; - case 22: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("sigmac_zero t=%d\n",lt); - } - break; - case 23: - if ( qcd_f1f2f3_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, sprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("xicplus t=%d\n",lt); - } - break; - case 24: - if ( qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, cprop, sprop, geo, lt) ){ - if(geo->myid==0) printf("xicplus_prime t=%d\n",lt); - } - break; - case 25: - if ( qcd_f1f2f3_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, sprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("xiczero t=%d\n",lt); - } - break; - case 26: - if (qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, cprop, sprop, geo, lt) ){ - if(geo->myid==0) printf("xiczero_prime t=%d\n",lt); - } - break; - case 27: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("omegac_zero t=%d\n",lt); - } - break; -//----------------------------------------------------------------------------------- - case 34: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, cprop, uprop, geo, lt) ){ - if(geo->myid==0) printf("xiccplusplus t=%d\n",lt); - } - break; - case 35: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, cprop, dprop, geo, lt) ){ - if(geo->myid==0) printf("xiccplus t=%d\n",lt); - } - break; - case 36: - if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, cprop, sprop, geo, lt) ){ - if(geo->myid==0) printf("omegacc_plus t=%d\n",lt); - } - break; -//----------------------------------------------------------------------------------- - case 41: - if ( qcd_pnextra_2pt(ctr2, cgcg_ind, cgcg_val, block, uprop, dprop, geo, lt) ){ - if(geo->myid==0) printf("proton_extra t=%d\n",lt); - } - break; - case 42: - if ( qcd_pnextra_2pt(ctr2, cgcg_ind, cgcg_val, block, dprop, uprop, geo, lt) ){ - if(geo->myid==0) printf("neutron_extra t=%d\n",lt); - } - break; -//----------------------------------------------------------------------------------- - case 45: - if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, uprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("xicplus_extra t=%d\n",lt); - } - break; - case 46: - if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, dprop, cprop, geo, lt) ){ - if(geo->myid==0) printf("xiczero_extra t=%d\n",lt); - } - break; -//----------------------------------------------------------------------------------- + case 1: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, dprop, geo, lt) ){ + if(geo->myid==0) printf("proton t=%d\n",lt); + } + break; + case 2: + if (qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, uprop, geo, lt) ){ + if(geo->myid==0) printf("neutron t=%d\n",lt); + } + break; + case 3: + if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, dprop, sprop, geo, lt) ){ + if(geo->myid==0) printf("lambda t=%d\n",lt); + } + break; + case 4: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, sprop, geo, lt) ){ + if(geo->myid==0) printf("sigmaplus t=%d\n",lt); + } + break; + case 5: + if ( qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, sprop, dprop, geo, lt) ){ + if(geo->myid==0) printf("sigmazero t=%d\n",lt); + } + break; + case 6: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, sprop, geo, lt) ){ + if(geo->myid==0) printf("sigmaminus t=%d\n",lt); + } + break; + case 7: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, uprop, geo, lt) ){ + if(geo->myid==0) printf("xizero t=%d\n",lt); + } + break; + case 8: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, dprop, geo, lt) ){ + if(geo->myid==0) printf("ximinus t=%d\n",lt); + } + break; + //--------------------------------------------------------------------- + case 19: + if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, dprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("lambdac_plus t=%d\n",lt); + } + break; + case 20: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("sigmac_plusplus t=%d\n",lt); + } + break; + case 21: + if ( qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, cprop, dprop, geo, lt) ){ + if(geo->myid==0) printf("sigmac_plus t=%d\n",lt); + } + break; + case 22: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("sigmac_zero t=%d\n",lt); + } + break; + case 23: + if ( qcd_f1f2f3_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, sprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("xicplus t=%d\n",lt); + } + break; + case 24: + if ( qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, uprop, cprop, sprop, geo, lt) ){ + if(geo->myid==0) printf("xicplus_prime t=%d\n",lt); + } + break; + case 25: + if ( qcd_f1f2f3_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, sprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("xiczero t=%d\n",lt); + } + break; + case 26: + if (qcd_f123f321_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, dprop, cprop, sprop, geo, lt) ){ + if(geo->myid==0) printf("xiczero_prime t=%d\n",lt); + } + break; + case 27: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("omegac_zero t=%d\n",lt); + } + break; + //----------------------------------------------------------------------------------- + case 34: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, cprop, uprop, geo, lt) ){ + if(geo->myid==0) printf("xiccplusplus t=%d\n",lt); + } + break; + case 35: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, cprop, dprop, geo, lt) ){ + if(geo->myid==0) printf("xiccplus t=%d\n",lt); + } + break; + case 36: + if ( qcd_f1f2f1_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, cprop, sprop, geo, lt) ){ + if(geo->myid==0) printf("omegacc_plus t=%d\n",lt); + } + break; + //----------------------------------------------------------------------------------- + case 41: + if ( qcd_pnextra_2pt(ctr2, cgcg_ind, cgcg_val, block, uprop, dprop, geo, lt) ){ + if(geo->myid==0) printf("proton_extra t=%d\n",lt); + } + break; + case 42: + if ( qcd_pnextra_2pt(ctr2, cgcg_ind, cgcg_val, block, dprop, uprop, geo, lt) ){ + if(geo->myid==0) printf("neutron_extra t=%d\n",lt); + } + break; + //----------------------------------------------------------------------------------- + case 45: + if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, uprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("xicplus_extra t=%d\n",lt); + } + break; + case 46: + if ( qcd_lambdas_xis_2pt(ctr, cg5cg5_ind, cg5cg5_val, block, sprop, dprop, cprop, geo, lt) ){ + if(geo->myid==0) printf("xiczero_extra t=%d\n",lt); + } + break; + //----------------------------------------------------------------------------------- }//-switch diff --git a/lib/qcd_contract_2pt_pr.c b/lib/qcd_contract_2pt_pr.c index a4ccc43..664916b 100644 --- a/lib/qcd_contract_2pt_pr.c +++ b/lib/qcd_contract_2pt_pr.c @@ -15,115 +15,155 @@ #include int qcd_projector12_2pt(qcd_complex_16 gamma12[4][4], qcd_complex_16 gamma13[4][4], qcd_complex_16 gamma23[4][4], - qcd_complex_16 *block[4][4], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo){ + qcd_complex_16 *block[4][4], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo){ - qcd_uint_2 ga,gap,j; + qcd_uint_2 al,be,ga,j,i; qcd_uint_4 lx,ly,lz,v,v3; - qcd_complex_16 multiterm[4][4],diagterm[4][4]; - int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; - - for(lx=0; lxlL[1]; lx++) - for(ly=0; lylL[2]; ly++) - for(lz=0; lzlL[3]; lz++){ - - v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + qcd_complex_16 Pr12[9][4][4]; + qcd_real_8 fac = 1.0/3.0; + qcd_complex_16 cfac; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ - + for(i=0;i<9;i++){ + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr12[i][al][be] = (qcd_complex_16) {0.0,0.0}; + } + } + } - multiterm[ga][gap] = (qcd_complex_16) {0,0}; - - for(j=0;j<4;j++){ - multiterm[ga][gap] = qcd_CADD(multiterm[ga][gap], - qcd_CADD(qcd_CMUL(gamma12[ga][j],qcd_CSUB(block_pr[3][j][gap][v3],block_pr[1][j][gap][v3])), - qcd_CADD(qcd_CMUL(gamma13[ga][j],qcd_CSUB(block_pr[6][j][gap][v3],block_pr[2][j][gap][v3])), - qcd_CMUL(gamma23[ga][j],qcd_CSUB(block_pr[7][j][gap][v3],block_pr[5][j][gap][v3]))))); - }//-multiterm j loop - - multiterm[ga][gap] = qcd_CSCALE(multiterm[ga][gap],1.0/3.0); + // Define the digonal elements of the projector to 1/2 + // elements of [0][al][be], [4][al][be] [8][al][be] for al!=be are zero by definition + cfac = (qcd_complex_16) {1.0/3.0,0.0}; + for(al=0;al<4;al++){ + Pr12[0][al][al] = cfac; // Pr_11 + Pr12[4][al][al] = cfac; // Pr_22 + Pr12[8][al][al] = cfac; // Pr_33 + } - diagterm[ga][gap] = qcd_CSCALE(qcd_CADD(block_pr[0][ga][gap][v3],qcd_CADD(block_pr[4][ga][gap][v3],block_pr[8][ga][gap][v3])),1.0/3.0); + // Define the rest elements + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr12[1][al][be] = qcd_CSCALE(gamma12[al][be],fac); // Pr_12 + Pr12[2][al][be] = qcd_CSCALE(gamma13[al][be],fac); // Pr_13 + Pr12[5][al][be] = qcd_CSCALE(gamma23[al][be],fac); // Pr_23 + + Pr12[3][al][be] = qcd_CSCALE(qcd_CSCALE(gamma12[al][be],-1.0),fac); // Pr_21 + Pr12[6][al][be] = qcd_CSCALE(qcd_CSCALE(gamma13[al][be],-1.0),fac); // Pr_31 + Pr12[7][al][be] = qcd_CSCALE(qcd_CSCALE(gamma23[al][be],-1.0),fac); // Pr_32 + } + } - block[ga][gap][v3] = qcd_CADD( diagterm[ga][gap] , multiterm[ga][gap] ); - - }//-ga,gap - }//-space + for(lx=0; lxlL[1]; lx++) + for(ly=0; lylL[2]; ly++) + for(lz=0; lzlL[3]; lz++){ + v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + for(j=0;j<9;j++){ + i = ( (j < 8) ? (j*3)%8 : j ); + + for(al=0;al<4;al++){ + for(ga=0;ga<4;ga++){ + for(be=0;be<4;be++){ + + block[al][ga][v3] = qcd_CADD(block[al][ga][v3],qcd_CMUL(Pr12[j][al][be],block_pr[i][be][ga][v3])); + } + } + } + } + }//-space - return (1); + return (1); } //-routine //====================================================================== int qcd_projector32_2pt(qcd_complex_16 gamma12[4][4], qcd_complex_16 gamma13[4][4], qcd_complex_16 gamma23[4][4], - qcd_complex_16 *block[4][4], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo){ + qcd_complex_16 *block[4][4], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo){ - qcd_uint_2 ga,gap,j; + qcd_uint_2 al,be,ga,j,i; qcd_uint_4 lx,ly,lz,v,v3; - qcd_complex_16 multiterm[4][4],diagterm[4][4]; - int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; - - for(lx=0; lxlL[1]; lx++) - for(ly=0; lylL[2]; ly++) - for(lz=0; lzlL[3]; lz++){ - - v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + qcd_complex_16 Pr32[9][4][4],delta; + qcd_real_8 fac = 1.0/3.0; + qcd_complex_16 cfac; - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ - - multiterm[ga][gap] = (qcd_complex_16) {0,0}; - - for(j=0;j<4;j++){ - multiterm[ga][gap] = qcd_CADD(multiterm[ga][gap], - qcd_CADD(qcd_CMUL(gamma12[ga][j],qcd_CSUB(block_pr[3][j][gap][v3],block_pr[1][j][gap][v3])), - qcd_CADD(qcd_CMUL(gamma13[ga][j],qcd_CSUB(block_pr[6][j][gap][v3],block_pr[2][j][gap][v3])), - qcd_CMUL(gamma23[ga][j],qcd_CSUB(block_pr[7][j][gap][v3],block_pr[5][j][gap][v3]))))); - }//-multiterm j loop - - multiterm[ga][gap] = qcd_CSCALE(multiterm[ga][gap],1.0/6.0); - - diagterm[ga][gap] = qcd_CSCALE(qcd_CADD(block_pr[0][ga][gap][v3],qcd_CADD(block_pr[4][ga][gap][v3],block_pr[8][ga][gap][v3])),1.0/3.0); - - block[ga][gap][v3] = qcd_CSUB(diagterm[ga][gap] , multiterm[ga][gap]); - - //block[ga][gap][v3] = diagterm[ga][gap]; //-- only the diagonal terms + for(i=0;i<9;i++){ + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr32[i][al][be] = (qcd_complex_16) {0.0,0.0}; + } + } + } - - }//-ga,gap - }//-space + // Define the digonal elements of the projector to 3/2 + // elements of [0][al][be], [4][al][be] [8][al][be] for al!=be are zero by definition + delta = (qcd_complex_16) {1.0,0.0}; + cfac = (qcd_complex_16) {1.0/3.0,0.0}; + for(al=0;al<4;al++){ + Pr32[0][al][al] = qcd_CSUB(delta,cfac); // Pr_11 + Pr32[4][al][al] = qcd_CSUB(delta,cfac); // Pr_22 + Pr32[8][al][al] = qcd_CSUB(delta,cfac); // Pr_33 + } + // Define the rest elements + delta = (qcd_complex_16) {0.0,0.0}; + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr32[1][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma12[al][be],fac)); // Pr_12 + Pr32[2][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma13[al][be],fac)); // Pr_13 + Pr32[5][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma23[al][be],fac)); // Pr_23 + + Pr32[3][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma12[al][be],-1.0),fac)); // Pr_21 + Pr32[6][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma13[al][be],-1.0),fac)); // Pr_31 + Pr32[7][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma23[al][be],-1.0),fac)); // Pr_32 + } + } + + for(lx=0; lxlL[1]; lx++) + for(ly=0; lylL[2]; ly++) + for(lz=0; lzlL[3]; lz++){ + v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - - return (1); + for(j=0;j<9;j++){ + i = ( (j < 8) ? (j*3)%8 : j ); + + for(al=0;al<4;al++){ + for(ga=0;ga<4;ga++){ + for(be=0;be<4;be++){ + + block[al][ga][v3] = qcd_CADD(block[al][ga][v3],qcd_CMUL(Pr32[j][al][be],block_pr[i][be][ga][v3])); + } + } + } + } + + }//-space + + return (1); } //-routine //====================================================================== int qcd_noprojector_2pt(qcd_complex_16 *block[4][4], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo){ - + qcd_uint_2 ga,gap,j; qcd_uint_4 lx,ly,lz,v,v3; int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; - for(lx=0; lxlL[1]; lx++) - for(ly=0; lylL[2]; ly++) - for(lz=0; lzlL[3]; lz++){ + for(lx=0; lxlL[1]; lx++) + for(ly=0; lylL[2]; ly++) + for(lz=0; lzlL[3]; lz++){ v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ - block[ga][gap][v3] = qcd_CSCALE(qcd_CADD(block_pr[0][ga][gap][v3],qcd_CADD(block_pr[4][ga][gap][v3],block_pr[8][ga][gap][v3])),1.0/3.0); //- only diagonal terms - }//-ga,gap - }//-space + for(gap=0; gap<4; gap++){ + block[ga][gap][v3] = qcd_CSCALE(qcd_CADD(block_pr[0][ga][gap][v3],qcd_CADD(block_pr[4][ga][gap][v3],block_pr[8][ga][gap][v3])),1.0/3.0); //- only diagonal terms + }//-ga,gap + }//-space - return (1); + return (1); } //-routine //====================================================================== int qcd_f1f1f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], - qcd_propagator *prop, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem){ + qcd_propagator *prop, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -131,84 +171,85 @@ int qcd_f1f1f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); + /* lz = v3 % geo->lL[3]; */ + /* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ + /* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ + /* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][bep][a][bp], - qcd_CMUL(prop->D[v][be][gap][b][cp], - prop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][bep][a][bp], + qcd_CMUL(prop->D[v][be][gap][b][cp], + prop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][gap][a][cp], - qcd_CMUL(prop->D[v][be][alp][b][ap], - prop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][alp][a][ap], - qcd_CMUL(prop->D[v][be][bep][b][bp], - prop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][gap][a][cp], + qcd_CMUL(prop->D[v][be][alp][b][ap], + prop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][alp][a][ap], + qcd_CMUL(prop->D[v][be][bep][b][bp], + prop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][gap][a][cp], - qcd_CMUL(prop->D[v][be][bep][b][bp], - prop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][gap][a][cp], + qcd_CMUL(prop->D[v][be][bep][b][bp], + prop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][alp][a][ap], - qcd_CMUL(prop->D[v][be][gap][b][cp], - prop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][alp][a][ap], + qcd_CMUL(prop->D[v][be][gap][b][cp], + prop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][bep][a][bp], - qcd_CMUL(prop->D[v][be][alp][b][ap], - prop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][bep][a][bp], + qcd_CMUL(prop->D[v][be][alp][b][ap], + prop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//space loop + }//space loop }//color2 loop - }//color1 loop + }//color1 loop }//nonvanishing cgcg loop - }//nonvanishing projector condition + }//nonvanishing projector condition return (1); } @@ -216,7 +257,7 @@ int qcd_f1f1f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 //====================================================================== int qcd_deltas_xistar_omegastar_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -224,162 +265,422 @@ int qcd_deltas_xistar_omegastar_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][ int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); //-ok - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - );//-ok + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); //-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - );//-ok - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + );//-ok - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop return (1); } //====================================================================== -int qcd_f1f2f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem){ +int qcd_xistar_extra11_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; qcd_uint_4 lx,ly,lz,v,v3; int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); //-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-ok + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} + +//====================================================================== +int qcd_xistar_extra12_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-ok + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} + +//====================================================================== + +int qcd_xistar_extra21_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-ok + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} + +//====================================================================== + +int qcd_xistar_extra22_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-ok + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} + +//====================================================================== + +int qcd_f1f2f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); - }//space loop - }//color2 loop + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + }//space loop + }//color2 loop }//color1 loop - }//nonvanishing cgcg loop - }// ga gap indices + }//nonvanishing cgcg loop + }// ga gap indices return (1); } @@ -387,7 +688,7 @@ int qcd_f1f2f1_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 //====================================================================== int qcd_f1f2f3_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -395,50 +696,50 @@ int qcd_f1f2f3_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//space loop - }//color2 loop + }//space loop + }//color2 loop }//color1 loop - }//nonvanishing cgcg loop - }//ga gap indices + }//nonvanishing cgcg loop + }//ga gap indices return (1); } @@ -446,7 +747,7 @@ int qcd_f1f2f3_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 //====================================================================== int qcd_sigmas4_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + qcd_propagator *propf1, qcd_propagator *propf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -454,97 +755,97 @@ int qcd_sigmas4_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - );//-ok - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - propf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + propf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + propf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - propf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + propf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + propf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - propf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - propf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + propf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + propf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - propf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - );//-ok - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - );//-ok - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap indices - }//space loop + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + propf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + );//-ok + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + propf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + );//-ok + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap indices + }//space loop return (1); } @@ -552,7 +853,7 @@ int qcd_sigmas4_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 //====================================================================== int qcd_sigmas2_xistar_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 sflag){ + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 sflag){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -565,104 +866,105 @@ int qcd_sigmas2_xistar_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_co else fact = 1.0/3.0; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][be][alp][b][ap], - propf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][be][alp][b][ap], + propf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - propf3->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + propf3->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][al][bep][a][bp], - propf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][al][bep][a][bp], + propf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - propf3->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + propf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + propf3->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - propf3->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - propf3->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + propf3->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + propf3->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - propf3->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - );//-ok + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + propf3->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + );//-ok - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) }//ga gap - }//space loop + }//space loop return (1); } @@ -672,8 +974,8 @@ int qcd_sigmas2_xistar_2pt_pr(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_co //====================================================================== void qcd_contractions2pt_pr(qcd_uint_4 particle_id, qcd_complex_16 *block12[4][4],qcd_complex_16 *block32[4][4],qcd_complex_16 *blocknp[4][4], - qcd_propagator *uprop,qcd_propagator *dprop,qcd_propagator *sprop,qcd_propagator *cprop, - qcd_geometry *geo, qcd_uint_4 lt){ + qcd_propagator *uprop,qcd_propagator *dprop,qcd_propagator *sprop,qcd_propagator *cprop, + qcd_geometry *geo, qcd_uint_4 lt){ qcd_int_4 ctr1,ctr2,ctr3,ctr12,ctr21,ctr13,ctr31,ctr23,ctr32,v3; qcd_uint_2 al,be,alp,bep,check; @@ -693,507 +995,605 @@ void qcd_contractions2pt_pr(qcd_uint_4 particle_id, qcd_complex_16 *block12[4][4 qcd_uint_4 i,j,k,det,sflag; for(i=0;i<9;i++) - for(j=0;j<4;j++) - for(k=0;k<4;k++){ - block_pr[i][j][k] = (qcd_complex_16*) malloc(geo->lV3*sizeof(qcd_complex_16)); + for(j=0;j<4;j++) + for(k=0;k<4;k++){ + block_pr[i][j][k] = (qcd_complex_16*) malloc(geo->lV3*sizeof(qcd_complex_16)); - if(block_pr[i][j][k]==NULL){ - printf("Block %d %d %d not properly initialized\n",i,j,k); - exit(EXIT_FAILURE); - } + if(block_pr[i][j][k]==NULL){ + printf("Block %d %d %d not properly initialized\n",i,j,k); + exit(EXIT_FAILURE); + } - for(v3=0;v3<(geo->lV3);v3++){ - block_pr[i][j][k][v3] = (qcd_complex_16) {0,0}; - } - } + for(v3=0;v3<(geo->lV3);v3++){ + block_pr[i][j][k][v3] = (qcd_complex_16) {0,0}; + } + } -//-- Non zero elements of all combinations of gamma_{1,2,3} matrices + //-- Non zero elements of all combinations of gamma_{1,2,3} matrices ctr1 = 0; ctr2 = 0; ctr3 = 0; ctr13 = 0; ctr31 = 0; ctr12 = 0; ctr21 = 0; ctr23 = 0; ctr32 = 0; for(al=0;al<4;al++) - for(be=0;be<4;be++) - for(alp=0;alp<4;alp++) - for(bep=0;bep<4;bep++) - { - C1 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[1][bep][alp]); - C12 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[2][bep][alp]); - C13 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[3][bep][alp]); + for(be=0;be<4;be++) + for(alp=0;alp<4;alp++) + for(bep=0;bep<4;bep++) + { + C1 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[1][bep][alp]); + C12 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[2][bep][alp]); + C13 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[3][bep][alp]); - C21 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[1][bep][alp]); - C2 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[2][bep][alp]); - C23 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[3][bep][alp]); + C21 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[1][bep][alp]); + C2 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[2][bep][alp]); + C23 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[3][bep][alp]); - C31 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[1][bep][alp]); - C32 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[2][bep][alp]); - C3 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[3][bep][alp]); + C31 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[1][bep][alp]); + C32 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[2][bep][alp]); + C3 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[3][bep][alp]); - if(qcd_NORM(C1)>1e-3) - { - cg1cg1_val[ctr1].re = C1.re; - cg1cg1_val[ctr1].im = C1.im; - cg1cg1_ind[ctr1][0] = al; - cg1cg1_ind[ctr1][1] = be; - cg1cg1_ind[ctr1][2] = bep; - cg1cg1_ind[ctr1][3] = alp; - ctr1++; - } - if(qcd_NORM(C2)>1e-3) - { - cg2cg2_val[ctr2].re = C2.re; - cg2cg2_val[ctr2].im = C2.im; - cg2cg2_ind[ctr2][0] = al; - cg2cg2_ind[ctr2][1] = be; - cg2cg2_ind[ctr2][2] = bep; - cg2cg2_ind[ctr2][3] = alp; - ctr2++; - } - if(qcd_NORM(C3)>1e-3) - { - cg3cg3_val[ctr3].re = C3.re; - cg3cg3_val[ctr3].im = C3.im; - cg3cg3_ind[ctr3][0] = al; - cg3cg3_ind[ctr3][1] = be; - cg3cg3_ind[ctr3][2] = bep; - cg3cg3_ind[ctr3][3] = alp; - ctr3++; - } - if(qcd_NORM(C23)>2e-3) - { - cg2cg3_val[ctr23].re = C23.re; - cg2cg3_val[ctr23].im = C23.im; - cg2cg3_ind[ctr23][0] = al; - cg2cg3_ind[ctr23][1] = be; - cg2cg3_ind[ctr23][2] = bep; - cg2cg3_ind[ctr23][3] = alp; - ctr23++; - } - if(qcd_NORM(C32)>2e-3) - { - cg3cg2_val[ctr32].re = C32.re; - cg3cg2_val[ctr32].im = C32.im; - cg3cg2_ind[ctr32][0] = al; - cg3cg2_ind[ctr32][1] = be; - cg3cg2_ind[ctr32][2] = bep; - cg3cg2_ind[ctr32][3] = alp; - ctr32++; - } - if(qcd_NORM(C13)>1e-3) - { - cg1cg3_val[ctr13].re = C13.re; - cg1cg3_val[ctr13].im = C13.im; - cg1cg3_ind[ctr13][0] = al; - cg1cg3_ind[ctr13][1] = be; - cg1cg3_ind[ctr13][2] = bep; - cg1cg3_ind[ctr13][3] = alp; - ctr13++; - } - if(qcd_NORM(C31)>1e-3) - { - cg3cg1_val[ctr31].re = C31.re; - cg3cg1_val[ctr31].im = C31.im; - cg3cg1_ind[ctr31][0] = al; - cg3cg1_ind[ctr31][1] = be; - cg3cg1_ind[ctr31][2] = bep; - cg3cg1_ind[ctr31][3] = alp; - ctr31++; - } - if(qcd_NORM(C12)>1e-2) - { - cg1cg2_val[ctr12].re = C12.re; - cg1cg2_val[ctr12].im = C12.im; - cg1cg2_ind[ctr12][0] = al; - cg1cg2_ind[ctr12][1] = be; - cg1cg2_ind[ctr12][2] = bep; - cg1cg2_ind[ctr12][3] = alp; - ctr12++; - } - if(qcd_NORM(C21)>1e-2) - { - cg2cg1_val[ctr21].re = C21.re; - cg2cg1_val[ctr21].im = C21.im; - cg2cg1_ind[ctr21][0] = al; - cg2cg1_ind[ctr21][1] = be; - cg2cg1_ind[ctr21][2] = bep; - cg2cg1_ind[ctr21][3] = alp; - ctr21++; - } - } - -//-- Multiplication of gamma_1,gamma_2,gamma_3 between each other - - for(i=0;i<4;i++){ - for(j=0;j<4;j++){ - gamma12[i][j] = (qcd_complex_16) {0,0}; - gamma13[i][j] = (qcd_complex_16) {0,0}; - gamma23[i][j] = (qcd_complex_16) {0,0}; + if(qcd_NORM(C1)>1e-3) + { + cg1cg1_val[ctr1].re = C1.re; + cg1cg1_val[ctr1].im = C1.im; + cg1cg1_ind[ctr1][0] = al; + cg1cg1_ind[ctr1][1] = be; + cg1cg1_ind[ctr1][2] = bep; + cg1cg1_ind[ctr1][3] = alp; + ctr1++; + } + if(qcd_NORM(C2)>1e-3) + { + cg2cg2_val[ctr2].re = C2.re; + cg2cg2_val[ctr2].im = C2.im; + cg2cg2_ind[ctr2][0] = al; + cg2cg2_ind[ctr2][1] = be; + cg2cg2_ind[ctr2][2] = bep; + cg2cg2_ind[ctr2][3] = alp; + ctr2++; + } + if(qcd_NORM(C3)>1e-3) + { + cg3cg3_val[ctr3].re = C3.re; + cg3cg3_val[ctr3].im = C3.im; + cg3cg3_ind[ctr3][0] = al; + cg3cg3_ind[ctr3][1] = be; + cg3cg3_ind[ctr3][2] = bep; + cg3cg3_ind[ctr3][3] = alp; + ctr3++; + } + if(qcd_NORM(C23)>2e-3) + { + cg2cg3_val[ctr23].re = C23.re; + cg2cg3_val[ctr23].im = C23.im; + cg2cg3_ind[ctr23][0] = al; + cg2cg3_ind[ctr23][1] = be; + cg2cg3_ind[ctr23][2] = bep; + cg2cg3_ind[ctr23][3] = alp; + ctr23++; + } + if(qcd_NORM(C32)>2e-3) + { + cg3cg2_val[ctr32].re = C32.re; + cg3cg2_val[ctr32].im = C32.im; + cg3cg2_ind[ctr32][0] = al; + cg3cg2_ind[ctr32][1] = be; + cg3cg2_ind[ctr32][2] = bep; + cg3cg2_ind[ctr32][3] = alp; + ctr32++; + } + if(qcd_NORM(C13)>1e-3) + { + cg1cg3_val[ctr13].re = C13.re; + cg1cg3_val[ctr13].im = C13.im; + cg1cg3_ind[ctr13][0] = al; + cg1cg3_ind[ctr13][1] = be; + cg1cg3_ind[ctr13][2] = bep; + cg1cg3_ind[ctr13][3] = alp; + ctr13++; + } + if(qcd_NORM(C31)>1e-3) + { + cg3cg1_val[ctr31].re = C31.re; + cg3cg1_val[ctr31].im = C31.im; + cg3cg1_ind[ctr31][0] = al; + cg3cg1_ind[ctr31][1] = be; + cg3cg1_ind[ctr31][2] = bep; + cg3cg1_ind[ctr31][3] = alp; + ctr31++; + } + if(qcd_NORM(C12)>1e-2) + { + cg1cg2_val[ctr12].re = C12.re; + cg1cg2_val[ctr12].im = C12.im; + cg1cg2_ind[ctr12][0] = al; + cg1cg2_ind[ctr12][1] = be; + cg1cg2_ind[ctr12][2] = bep; + cg1cg2_ind[ctr12][3] = alp; + ctr12++; + } + if(qcd_NORM(C21)>1e-2) + { + cg2cg1_val[ctr21].re = C21.re; + cg2cg1_val[ctr21].im = C21.im; + cg2cg1_ind[ctr21][0] = al; + cg2cg1_ind[ctr21][1] = be; + cg2cg1_ind[ctr21][2] = bep; + cg2cg1_ind[ctr21][3] = alp; + ctr21++; + } + } + + //-- Multiplication of gamma_1,gamma_2,gamma_3 between each other + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + gamma12[i][j] = (qcd_complex_16) {0,0}; + gamma13[i][j] = (qcd_complex_16) {0,0}; + gamma23[i][j] = (qcd_complex_16) {0,0}; - for(k=0;k<4;k++){ - gamma12[i][j] = qcd_CADD(gamma12[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[2][k][j])); - gamma13[i][j] = qcd_CADD(gamma13[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[3][k][j])); - gamma23[i][j] = qcd_CADD(gamma23[i][j],qcd_CMUL(qcd_GAMMA[2][i][k],qcd_GAMMA[3][k][j])); - } - } - } + for(k=0;k<4;k++){ + gamma12[i][j] = qcd_CADD(gamma12[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[2][k][j])); + gamma13[i][j] = qcd_CADD(gamma13[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[3][k][j])); + gamma23[i][j] = qcd_CADD(gamma23[i][j],qcd_CMUL(qcd_GAMMA[2][i][k],qcd_GAMMA[3][k][j])); + } + } + } switch(particle_id){ - case 9: - check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, geo, lt,0); - check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, geo, lt,1); - check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, geo, lt,2); - check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, geo, lt,3); - check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, geo, lt,4); - check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, geo, lt,5); - check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, geo, lt,6); - check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, geo, lt,7); - check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, geo, lt,8); - break; - - case 10: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, geo, lt,8); - break; + case 9: + check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, geo, lt,0); + check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, geo, lt,1); + check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, geo, lt,2); + check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, geo, lt,3); + check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, geo, lt,4); + check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, geo, lt,5); + check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, geo, lt,6); + check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, geo, lt,7); + check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, geo, lt,8); + break; + + case 10: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, geo, lt,8); + break; - case 11: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, uprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, uprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, uprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, uprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, uprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, uprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, uprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, uprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, uprop, geo, lt,8); - break; - - case 12: - check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, geo, lt,0); - check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, geo, lt,1); - check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, geo, lt,2); + case 11: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, uprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, uprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, uprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, uprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, uprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, uprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, uprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, uprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, uprop, geo, lt,8); + break; + + case 12: + check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, geo, lt,0); + check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, geo, lt,1); + check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, geo, lt,2); - check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, geo, lt,3); - check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, geo, lt,4); - check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, geo, lt,5); - - check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, geo, lt,6); - check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, geo, lt,7); - check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, geo, lt,8); - break; + check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, geo, lt,3); + check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, geo, lt,4); + check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, geo, lt,5); + + check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, geo, lt,6); + check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, geo, lt,7); + check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, geo, lt,8); + break; - case 13: - check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, geo, lt,0); - check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, geo, lt,1); - check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, geo, lt,2); - check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, geo, lt,3); - check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, geo, lt,4); - check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, geo, lt,5); - check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, geo, lt,6); - check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, geo, lt,7); - check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, geo, lt,8); - break; + case 13: + check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, geo, lt,0); + check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, geo, lt,1); + check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, geo, lt,2); + check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, geo, lt,3); + check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, geo, lt,4); + check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, geo, lt,5); + check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, geo, lt,6); + check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, geo, lt,7); + check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, geo, lt,8); + break; - case 14: - check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, sprop, geo, lt,0,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, sprop, geo, lt,1,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, sprop, geo, lt,2,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, sprop, geo, lt,3,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, sprop, geo, lt,4,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, sprop, geo, lt,5,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, sprop, geo, lt,6,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, sprop, geo, lt,7,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, sprop, geo, lt,8,1); - break; + case 14: + check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, sprop, geo, lt,0,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, sprop, geo, lt,1,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, sprop, geo, lt,2,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, sprop, geo, lt,3,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, sprop, geo, lt,4,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, sprop, geo, lt,5,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, sprop, geo, lt,6,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, sprop, geo, lt,7,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, sprop, geo, lt,8,1); + break; - case 15: - check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, geo, lt,0); - check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, geo, lt,1); - check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, geo, lt,2); - check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, geo, lt,3); - check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, geo, lt,4); - check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, geo, lt,5); - check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, geo, lt,6); - check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, geo, lt,7); - check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, geo, lt,8); - break; + case 15: + check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, geo, lt,0); + check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, geo, lt,1); + check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, geo, lt,2); + check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, geo, lt,3); + check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, geo, lt,4); + check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, geo, lt,5); + check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, geo, lt,6); + check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, geo, lt,7); + check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, geo, lt,8); + break; - case 16: - check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); - check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); - check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); - check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); - check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); - check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); - check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); - check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); - check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); - break; + case 16: + check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); + check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); + check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); + check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); + check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); + check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); + check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); + check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); + check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); + break; - case 17: - check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); - check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); - check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); - check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); - check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); - check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); - check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); - check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); - check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); - break; + case 17: + check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); + check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); + check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); + check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); + check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); + check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); + check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); + check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); + check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); + break; - case 18: - check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, geo, lt,0); - check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, geo, lt,1); - check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, geo, lt,2); - check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, geo, lt,3); - check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, geo, lt,4); - check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, geo, lt,5); - check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, geo, lt,6); - check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, geo, lt,7); - check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, geo, lt,8); - break; -//--------------------------------------------------------------------- - case 28: - check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, geo, lt,0); - check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, geo, lt,1); - check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, geo, lt,2); - check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, geo, lt,3); - check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, geo, lt,4); - check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, geo, lt,5); - check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, geo, lt,6); - check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, geo, lt,7); - check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, geo, lt,8); - break; + case 18: + check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, geo, lt,0); + check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, geo, lt,1); + check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, geo, lt,2); + check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, geo, lt,3); + check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, geo, lt,4); + check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, geo, lt,5); + check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, geo, lt,6); + check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, geo, lt,7); + check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, geo, lt,8); + break; + //--------------------------------------------------------------------- + case 28: + check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, geo, lt,0); + check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, geo, lt,1); + check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, geo, lt,2); + check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, geo, lt,3); + check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, geo, lt,4); + check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, geo, lt,5); + check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, geo, lt,6); + check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, geo, lt,7); + check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, geo, lt,8); + break; - case 29: - check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, cprop, geo, lt,0,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, cprop, geo, lt,1,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, cprop, geo, lt,2,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, cprop, geo, lt,3,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, cprop, geo, lt,4,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, cprop, geo, lt,5,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, cprop, geo, lt,6,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, cprop, geo, lt,7,1); - check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, cprop, geo, lt,8,1); - break; + case 29: + check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, cprop, geo, lt,0,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, cprop, geo, lt,1,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, cprop, geo, lt,2,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, cprop, geo, lt,3,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, cprop, geo, lt,4,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, cprop, geo, lt,5,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, cprop, geo, lt,6,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, cprop, geo, lt,7,1); + check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, cprop, geo, lt,8,1); + break; - case 30: - check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, geo, lt,0); - check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, geo, lt,1); - check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, geo, lt,2); - check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, geo, lt,3); - check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, geo, lt,4); - check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, geo, lt,5); - check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, geo, lt,6); - check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, geo, lt,7); - check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, geo, lt,8); - break; + case 30: + check = qcd_sigmas4_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, geo, lt,0); + check += qcd_sigmas4_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, geo, lt,1); + check += qcd_sigmas4_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, geo, lt,2); + check += qcd_sigmas4_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, geo, lt,3); + check += qcd_sigmas4_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, geo, lt,4); + check += qcd_sigmas4_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, geo, lt,5); + check += qcd_sigmas4_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, geo, lt,6); + check += qcd_sigmas4_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, geo, lt,7); + check += qcd_sigmas4_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, geo, lt,8); + break; - case 31: - check = qcd_f1f2f3_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, cprop, geo, lt,0); - check += qcd_f1f2f3_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, cprop, geo, lt,1); - check += qcd_f1f2f3_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, cprop, geo, lt,2); - check += qcd_f1f2f3_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, cprop, geo, lt,3); - check += qcd_f1f2f3_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, cprop, geo, lt,4); - check += qcd_f1f2f3_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, cprop, geo, lt,5); - check += qcd_f1f2f3_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, cprop, geo, lt,6); - check += qcd_f1f2f3_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, cprop, geo, lt,7); - check += qcd_f1f2f3_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, cprop, geo, lt,8); - break; + case 31: + check = qcd_f1f2f3_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, cprop, geo, lt,0); + check += qcd_f1f2f3_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, cprop, geo, lt,1); + check += qcd_f1f2f3_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, cprop, geo, lt,2); + check += qcd_f1f2f3_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, cprop, geo, lt,3); + check += qcd_f1f2f3_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, cprop, geo, lt,4); + check += qcd_f1f2f3_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, cprop, geo, lt,5); + check += qcd_f1f2f3_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, cprop, geo, lt,6); + check += qcd_f1f2f3_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, cprop, geo, lt,7); + check += qcd_f1f2f3_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, cprop, geo, lt,8); + break; - case 32: - check = qcd_f1f2f3_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, cprop, geo, lt,0); - check += qcd_f1f2f3_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, cprop, geo, lt,1); - check += qcd_f1f2f3_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, cprop, geo, lt,2); - check += qcd_f1f2f3_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, cprop, geo, lt,3); - check += qcd_f1f2f3_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, cprop, geo, lt,4); - check += qcd_f1f2f3_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, cprop, geo, lt,5); - check += qcd_f1f2f3_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, cprop, geo, lt,6); - check += qcd_f1f2f3_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, cprop, geo, lt,7); - check += qcd_f1f2f3_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, cprop, geo, lt,8); - break; + case 32: + check = qcd_f1f2f3_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, cprop, geo, lt,0); + check += qcd_f1f2f3_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, cprop, geo, lt,1); + check += qcd_f1f2f3_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, cprop, geo, lt,2); + check += qcd_f1f2f3_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, cprop, geo, lt,3); + check += qcd_f1f2f3_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, cprop, geo, lt,4); + check += qcd_f1f2f3_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, cprop, geo, lt,5); + check += qcd_f1f2f3_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, cprop, geo, lt,6); + check += qcd_f1f2f3_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, cprop, geo, lt,7); + check += qcd_f1f2f3_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, cprop, geo, lt,8); + break; - case 33: - check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, geo, lt,0); - check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, geo, lt,1); - check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, geo, lt,2); - check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, geo, lt,3); - check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, geo, lt,4); - check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, geo, lt,5); - check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, geo, lt,6); - check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, geo, lt,7); - check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, geo, lt,8); - break; -//----------------------------------------------------------------------------------- - case 37: - check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, geo, lt,0); - check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, geo, lt,1); - check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, geo, lt,2); - check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, geo, lt,3); - check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, geo, lt,4); - check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, geo, lt,5); - check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, geo, lt,6); - check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, geo, lt,7); - check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, geo, lt,8); - break; + case 33: + check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, geo, lt,0); + check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, geo, lt,1); + check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, geo, lt,2); + check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, geo, lt,3); + check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, geo, lt,4); + check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, geo, lt,5); + check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, geo, lt,6); + check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, geo, lt,7); + check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, geo, lt,8); + break; + //----------------------------------------------------------------------------------- + case 37: + check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, geo, lt,0); + check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, geo, lt,1); + check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, geo, lt,2); + check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, geo, lt,3); + check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, geo, lt,4); + check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, geo, lt,5); + check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, geo, lt,6); + check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, geo, lt,7); + check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, geo, lt,8); + break; - case 38: - check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, geo, lt,0); - check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, geo, lt,1); - check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, geo, lt,2); - check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, geo, lt,3); - check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, geo, lt,4); - check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, geo, lt,5); - check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, geo, lt,6); - check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, geo, lt,7); - check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, geo, lt,8); - break; + case 38: + check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, geo, lt,0); + check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, geo, lt,1); + check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, geo, lt,2); + check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, geo, lt,3); + check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, geo, lt,4); + check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, geo, lt,5); + check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, geo, lt,6); + check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, geo, lt,7); + check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, geo, lt,8); + break; - case 39: - check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, geo, lt,0); - check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, geo, lt,1); - check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, geo, lt,2); - check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, geo, lt,3); - check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, geo, lt,4); - check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, geo, lt,5); - check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, geo, lt,6); - check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, geo, lt,7); - check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, geo, lt,8); - break; -//----------------------------------------------------------------------------------- - case 40: - check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, geo, lt,0); - check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, geo, lt,1); - check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, geo, lt,2); - check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, geo, lt,3); - check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, geo, lt,4); - check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, geo, lt,5); - check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, geo, lt,6); - check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, geo, lt,7); - check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, geo, lt,8); - break; + case 39: + check = qcd_f1f2f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, geo, lt,0); + check += qcd_f1f2f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, geo, lt,1); + check += qcd_f1f2f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, geo, lt,2); + check += qcd_f1f2f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, geo, lt,3); + check += qcd_f1f2f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, geo, lt,4); + check += qcd_f1f2f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, geo, lt,5); + check += qcd_f1f2f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, geo, lt,6); + check += qcd_f1f2f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, geo, lt,7); + check += qcd_f1f2f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, geo, lt,8); + break; + //----------------------------------------------------------------------------------- + case 40: + check = qcd_f1f1f1_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, geo, lt,0); + check += qcd_f1f1f1_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, geo, lt,1); + check += qcd_f1f1f1_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, geo, lt,2); + check += qcd_f1f1f1_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, geo, lt,3); + check += qcd_f1f1f1_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, geo, lt,4); + check += qcd_f1f1f1_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, geo, lt,5); + check += qcd_f1f1f1_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, geo, lt,6); + check += qcd_f1f1f1_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, geo, lt,7); + check += qcd_f1f1f1_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, geo, lt,8); + break; -//----------------------------------------------------------------------------------- - - case 43: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); - break; + //----------------------------------------------------------------------------------- + + case 43: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); + break; - case 44: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); - break; - - case 47: - check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, cprop, geo, lt,0,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, cprop, geo, lt,1,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, cprop, geo, lt,2,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, cprop, geo, lt,3,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, cprop, geo, lt,4,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, cprop, geo, lt,5,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, cprop, geo, lt,6,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, cprop, geo, lt,7,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, cprop, geo, lt,8,0); - break; - - case 48: - check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, cprop, geo, lt,0,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, cprop, geo, lt,1,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, cprop, geo, lt,2,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, cprop, geo, lt,3,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, cprop, geo, lt,4,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, cprop, geo, lt,5,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, cprop, geo, lt,6,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, cprop, geo, lt,7,0); - check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, cprop, geo, lt,8,0); - break; - - case 49: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, geo, lt,8); - break; - - case 50: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, geo, lt,8); - break; - - case 51: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, geo, lt,8); - break; + case 44: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); + break; + + case 47: + check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, cprop, geo, lt,0,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, cprop, geo, lt,1,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, cprop, geo, lt,2,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, cprop, geo, lt,3,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, cprop, geo, lt,4,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, cprop, geo, lt,5,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, cprop, geo, lt,6,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, cprop, geo, lt,7,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, cprop, geo, lt,8,0); + break; + + case 48: + check = qcd_sigmas2_xistar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, cprop, geo, lt,0,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, cprop, geo, lt,1,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, cprop, geo, lt,2,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, cprop, geo, lt,3,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, cprop, geo, lt,4,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, cprop, geo, lt,5,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, cprop, geo, lt,6,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, cprop, geo, lt,7,0); + check += qcd_sigmas2_xistar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, cprop, geo, lt,8,0); + break; + + case 49: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, geo, lt,8); + break; + + case 50: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, geo, lt,8); + break; + + case 51: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, geo, lt,8); + break; - case 52: - check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, geo, lt,0); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, geo, lt,1); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, geo, lt,2); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, geo, lt,3); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, geo, lt,4); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, geo, lt,5); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, geo, lt,6); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, geo, lt,7); - check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, geo, lt,8); - break; + case 52: + check = qcd_deltas_xistar_omegastar_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, geo, lt,0); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, geo, lt,1); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, geo, lt,2); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, geo, lt,3); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, geo, lt,4); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, geo, lt,5); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, geo, lt,6); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, geo, lt,7); + check += qcd_deltas_xistar_omegastar_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, geo, lt,8); + break; + + //----------------------------------------------------------------------------------- + + case 53: + check = qcd_xistar_extra11_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); + check += qcd_xistar_extra11_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); + check += qcd_xistar_extra11_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); + check += qcd_xistar_extra11_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); + check += qcd_xistar_extra11_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); + check += qcd_xistar_extra11_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); + check += qcd_xistar_extra11_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); + check += qcd_xistar_extra11_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); + check += qcd_xistar_extra11_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); + break; + + case 54: + check = qcd_xistar_extra12_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); + check += qcd_xistar_extra12_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); + check += qcd_xistar_extra12_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); + check += qcd_xistar_extra12_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); + check += qcd_xistar_extra12_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); + check += qcd_xistar_extra12_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); + check += qcd_xistar_extra12_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); + check += qcd_xistar_extra12_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); + check += qcd_xistar_extra12_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); + break; + + case 55: + check = qcd_xistar_extra21_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); + check += qcd_xistar_extra21_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); + check += qcd_xistar_extra21_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); + check += qcd_xistar_extra21_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); + check += qcd_xistar_extra21_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); + check += qcd_xistar_extra21_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); + check += qcd_xistar_extra21_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); + check += qcd_xistar_extra21_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); + check += qcd_xistar_extra21_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); + break; + + case 56: + check = qcd_xistar_extra22_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, geo, lt,0); + check += qcd_xistar_extra22_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, geo, lt,1); + check += qcd_xistar_extra22_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, geo, lt,2); + check += qcd_xistar_extra22_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, geo, lt,3); + check += qcd_xistar_extra22_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, geo, lt,4); + check += qcd_xistar_extra22_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, geo, lt,5); + check += qcd_xistar_extra22_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, geo, lt,6); + check += qcd_xistar_extra22_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, geo, lt,7); + check += qcd_xistar_extra22_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, geo, lt,8); + break; + + //----------------------------------------------------------------------------------- + + case 57: + check = qcd_xistar_extra11_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); + check += qcd_xistar_extra11_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); + check += qcd_xistar_extra11_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); + check += qcd_xistar_extra11_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); + check += qcd_xistar_extra11_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); + check += qcd_xistar_extra11_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); + check += qcd_xistar_extra11_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); + check += qcd_xistar_extra11_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); + check += qcd_xistar_extra11_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); + break; + + case 58: + check = qcd_xistar_extra12_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); + check += qcd_xistar_extra12_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); + check += qcd_xistar_extra12_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); + check += qcd_xistar_extra12_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); + check += qcd_xistar_extra12_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); + check += qcd_xistar_extra12_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); + check += qcd_xistar_extra12_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); + check += qcd_xistar_extra12_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); + check += qcd_xistar_extra12_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); + break; + + case 59: + check = qcd_xistar_extra21_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); + check += qcd_xistar_extra21_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); + check += qcd_xistar_extra21_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); + check += qcd_xistar_extra21_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); + check += qcd_xistar_extra21_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); + check += qcd_xistar_extra21_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); + check += qcd_xistar_extra21_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); + check += qcd_xistar_extra21_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); + check += qcd_xistar_extra21_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); + break; + + case 60: + check = qcd_xistar_extra22_2pt_pr(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, geo, lt,0); + check += qcd_xistar_extra22_2pt_pr(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, geo, lt,1); + check += qcd_xistar_extra22_2pt_pr(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, geo, lt,2); + check += qcd_xistar_extra22_2pt_pr(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, geo, lt,3); + check += qcd_xistar_extra22_2pt_pr(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, geo, lt,4); + check += qcd_xistar_extra22_2pt_pr(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, geo, lt,5); + check += qcd_xistar_extra22_2pt_pr(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, geo, lt,6); + check += qcd_xistar_extra22_2pt_pr(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, geo, lt,7); + check += qcd_xistar_extra22_2pt_pr(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, geo, lt,8); + break; }//-switch - check += qcd_projector12_2pt(gamma12,gamma13,gamma23,block12,block_pr,geo); - check += qcd_projector32_2pt(gamma12,gamma13,gamma23,block32,block_pr,geo); - check += qcd_noprojector_2pt(blocknp,block_pr,geo); + check += qcd_projector12_2pt(gamma12,gamma13,gamma23,block12,block_pr,geo); + check += qcd_projector32_2pt(gamma12,gamma13,gamma23,block32,block_pr,geo); + check += qcd_noprojector_2pt(blocknp,block_pr,geo); - if ( check==12 ){ - if(geo->myid==0) printf("%s projector 1/2, 3/2 and diagonal t=%d\n",particle_names[particle_id],lt); - } + if ( check==12 ){ + if(geo->myid==0) printf("Particle: %s projector 1/2, 3/2 and diagonal t=%d\n",particle_names[particle_id],lt); + } - for(i=0;i<9;i++) - for(j=0;j<4;j++) - for(k=0;k<4;k++){ - free(block_pr[i][j][k]); - } - - + for(i=0;i<9;i++) + for(j=0;j<4;j++) + for(k=0;k<4;k++){ + free(block_pr[i][j][k]); + } }//--main function closes diff --git a/lib/qcd_contract_3pt_all.c b/lib/qcd_contract_3pt_all.c index 0ad0422..a65cbe7 100644 --- a/lib/qcd_contract_3pt_all.c +++ b/lib/qcd_contract_3pt_all.c @@ -15,78 +15,162 @@ #include #include -int qcd_projector_3pt(qcd_complex_16 *block[5], qcd_complex_16 *block_pr[10][4][4], qcd_geometry *geo, qcd_uint_4 prid){ +int qcd_projector_3pt_spin12(qcd_complex_16 *block[5], qcd_complex_16 *block_pr[9][4][4], qcd_geometry *geo){ - qcd_uint_2 ga,gap,j; + qcd_uint_2 ga,gap,prid; qcd_uint_4 lx,ly,lz,v,v3; qcd_uint_4 projlist[5] = {3,4,13,15,16},proj; - proj = projlist[prid]; - - for(lx=0; lxlL[1]; lx++) - for(ly=0; lylL[2]; ly++) - for(lz=0; lzlL[3]; lz++){ - v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++) - if(qcd_NORM(PROJECTOR[proj][ga][gap])>0.0001){ - - block[prid][v3] = qcd_CADD( block[prid][v3],qcd_CMUL(PROJECTOR[proj][gap][ga],block_pr[9][ga][gap][v3]) ); - - }//-non vanishing projector condition - }//-space + for(prid=0;prid<5;prid++){ + proj = projlist[prid]; - - return (1); + for(lx=0; lxlL[1]; lx++) + for(ly=0; lylL[2]; ly++) + for(lz=0; lzlL[3]; lz++){ + v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++) + block[prid][v3] = qcd_CADD( block[prid][v3],qcd_CMUL(PROJECTOR[proj][ga][gap],block_pr[8][gap][ga][v3]) ); + + }//-space + }//-prid + + return (1); } //-routine //====================================================================== -int qcd_projector32_3pt(qcd_complex_16 gamma12[4][4], qcd_complex_16 gamma13[4][4], qcd_complex_16 gamma23[4][4], - qcd_complex_16 *block_pr[10][4][4], qcd_geometry *geo){ +int qcd_projector_pr32_3pt_spin32(qcd_complex_16 *block[5], qcd_complex_16 *block_pr[9][4][4], + qcd_complex_16 gamma12[4][4], qcd_complex_16 gamma13[4][4], qcd_complex_16 gamma23[4][4], qcd_geometry *geo){ - qcd_uint_2 ga,gap,j; + qcd_uint_2 al,be,ga,de,j,i,k,i1,i2,prid,proj; qcd_uint_4 lx,ly,lz,v,v3; - qcd_complex_16 multiterm[4][4],diagterm[4][4]; - - for(lx=0; lxlL[1]; lx++) - for(ly=0; lylL[2]; ly++) - for(lz=0; lzlL[3]; lz++){ - v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + qcd_complex_16 Pr32[9][4][4],delta; + qcd_complex_16 Fin_proj[5][4][4][3][3]; + qcd_real_8 fac = 1.0/3.0; + qcd_complex_16 cfac; + + qcd_uint_4 projlist[5] = {3,4,13,15,16}; + + for(i=0;i<9;i++){ + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr32[i][al][be] = (qcd_complex_16) {0.0,0.0}; + } + } + } - multiterm[ga][gap] = (qcd_complex_16) {0,0}; - - for(j=0;j<4;j++){ - multiterm[ga][gap] = qcd_CADD(multiterm[ga][gap], - qcd_CADD(qcd_CMUL(gamma12[ga][j],qcd_CSUB(block_pr[3][j][gap][v3],block_pr[1][j][gap][v3])), - qcd_CADD(qcd_CMUL(gamma13[ga][j],qcd_CSUB(block_pr[6][j][gap][v3],block_pr[2][j][gap][v3])), - qcd_CMUL(gamma23[ga][j],qcd_CSUB(block_pr[7][j][gap][v3],block_pr[5][j][gap][v3]))))); - }//-multiterm j loop - - multiterm[ga][gap] = qcd_CSCALE(multiterm[ga][gap],1.0/6.0); - diagterm[ga][gap] = qcd_CSCALE(qcd_CADD(block_pr[0][ga][gap][v3],qcd_CADD(block_pr[4][ga][gap][v3],block_pr[8][ga][gap][v3])),1.0/3.0); - - block_pr[9][ga][gap][v3] = qcd_CSUB(diagterm[ga][gap],multiterm[ga][gap]); - - -/* block[prid][v3] = qcd_CADD(block[prid][v3],qcd_CMUL(PROJECTOR[proj][gap][ga], - qcd_CSUB(diagterm[ga][gap],multiterm[ga][gap]) - ) - ); -*/ - }//-ga, gap - }//-space - - return (1); + // Define the digonal elements of the projector to 3/2 + // elements of [0][al][be], [4][al][be] [8][al][be] for al!=be are zero by definition + delta = (qcd_complex_16) {1.0,0.0}; + cfac = (qcd_complex_16) {1.0/3.0,0.0}; + for(al=0;al<4;al++){ + Pr32[0][al][al] = qcd_CSUB(delta,cfac); // Pr_11 + Pr32[4][al][al] = qcd_CSUB(delta,cfac); // Pr_22 + Pr32[8][al][al] = qcd_CSUB(delta,cfac); // Pr_33 + } + + // Define the rest elements + delta = (qcd_complex_16) {0.0,0.0}; + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr32[1][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma12[al][be],fac)); // Pr_12 + Pr32[2][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma13[al][be],fac)); // Pr_13 + Pr32[5][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma23[al][be],fac)); // Pr_23 + + Pr32[3][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma12[al][be],-1.0),fac)); // Pr_21 + Pr32[6][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma13[al][be],-1.0),fac)); // Pr_31 + Pr32[7][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma23[al][be],-1.0),fac)); // Pr_32 + } + } + + /* //- Print the projector to 3/2 */ + /* for(i=0;i<3;i++){ */ + /* for(j=0;j<3;j++){ */ + /* for(al=0;al<4;al++){ */ + /* for(be=0;be<4;be++){ */ + /* i1 = j+3*i; */ + /* printf("Pr %d %d %d %d = %lf %lf\n",al+1,be+1,i+1,j+1,Pr32[i1][al][be].re,Pr32[i1][al][be].im); */ + /* } */ + /* } */ + /* } */ + /* } */ + + + //- Print the unprojected 3pt-function + /* v3=0; */ + /* for(i=0;i<3;i++){ */ + /* for(j=0;j<3;j++){ */ + /* for(al=0;al<4;al++){ */ + /* for(be=0;be<4;be++){ */ + /* i1 = j+3*i; */ + /* printf("Rank %d: 3pt_unproj[v=%d] %d %d %d %d = %+e %+e\n",geo->myid,v3,al+1,be+1,i+1,j+1,block_pr[i1][al][be][v3].re,block_pr[i1][al][be][v3].im); */ + /* } */ + /* } */ + /* } */ + /* } */ + + //-Define the projector + for(prid=0;prid<5;prid++){ + proj = projlist[prid]; + + for(al=0;al<4;al++){ + for(de=0;de<4;de++){ + for(k=0;k<3;k++){ + for(j=0;j<3;j++){ + Fin_proj[prid][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; + + for(i=0;i<3;i++){ + i1 = i+3*k; + i2 = j+3*i; + for(be=0;be<4;be++){ + for(ga=0;ga<4;ga++){ + + Fin_proj[prid][al][de][k][j] = qcd_CADD(Fin_proj[prid][al][de][k][j],qcd_CMUL(Pr32[i1][al][be],qcd_CMUL(PROJECTOR[proj][be][ga],Pr32[i2][ga][de]))); + + }//-ga + }//-be + }//-i + }//-j + }//-k + }//-de + }//-al + }//-prid + + //-Project + for(prid=0;prid<5;prid++){ + proj = projlist[prid]; + for(lx=0; lxlL[1]; lx++) + for(ly=0; lylL[2]; ly++) + for(lz=0; lzlL[3]; lz++){ + v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + + for(k=0;k<3;k++){ + for(j=0;j<3;j++){ + i2 = k+j*3; + for(al=0;al<4;al++){ + for(de=0;de<4;de++){ + block[prid][v3] = qcd_CADD(block[prid][v3],qcd_CMUL(Fin_proj[prid][al][de][k][j],block_pr[i2][de][al][v3])); + }//-de + }//-al + }//-k + }//-j + }//-volume + }//-prid + + //- Print the projected 3pt-function + /* v3=0; */ + /* printf("Rank %d: 3pt_g5g1[v=%d] = %+e %+e\n",geo->myid,v3,block[4][v3].re,block[4][v3].im); */ + /* printf("Rank %d: 3pt_g5g2[v=%d] = %+e %+e\n",geo->myid,v3,block[3][v3].re,block[3][v3].im); */ + /* printf("Rank %d: 3pt_g5g3[v=%d] = %+e %+e\n",geo->myid,v3,block[1][v3].re,block[1][v3].im); */ + + return (1); } //-routine //====================================================================== -int qcd_f1f1f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *prop, qcd_propagator *seqprop, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem){ +int qcd_f1f1f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *prop, qcd_propagator *seqprop, qcd_geometry *geo, qcd_uint_4 lt,qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -94,170 +178,171 @@ int qcd_f1f1f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cg int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][be][bep][b][bp], - qcd_CMUL(prop->D[v][ga][alp][c][ap], - seqprop->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); //-1 + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][be][bep][b][bp], + qcd_CMUL(prop->D[v][ga][alp][c][ap], + seqprop->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); //-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][be][gap][b][cp], - qcd_CMUL(prop->D[v][ga][alp][c][ap], - seqprop->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-2 - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][be][alp][b][ap], - qcd_CMUL(prop->D[v][ga][bep][c][bp], - seqprop->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][be][gap][b][cp], + qcd_CMUL(prop->D[v][ga][alp][c][ap], + seqprop->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-2 + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][be][alp][b][ap], + qcd_CMUL(prop->D[v][ga][bep][c][bp], + seqprop->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-3 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][be][gap][b][cp], - qcd_CMUL(prop->D[v][ga][bep][c][bp], - seqprop->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-4 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][be][gap][b][cp], + qcd_CMUL(prop->D[v][ga][bep][c][bp], + seqprop->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-4 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][be][alp][b][ap], - qcd_CMUL(prop->D[v][ga][gap][c][cp], - seqprop->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-5 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][be][alp][b][ap], + qcd_CMUL(prop->D[v][ga][gap][c][cp], + seqprop->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-5 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][be][bep][b][bp], - qcd_CMUL(prop->D[v][ga][gap][c][cp], - seqprop->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-6 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][be][bep][b][bp], + qcd_CMUL(prop->D[v][ga][gap][c][cp], + seqprop->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-6 -//------------------------- + //------------------------- - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][bep][a][bp], - qcd_CMUL(prop->D[v][ga][alp][c][ap], - seqprop->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); //-7 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][bep][a][bp], + qcd_CMUL(prop->D[v][ga][alp][c][ap], + seqprop->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); //-7 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][gap][a][cp], - qcd_CMUL(prop->D[v][ga][alp][c][ap], - seqprop->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-8 - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][alp][a][ap], - qcd_CMUL(prop->D[v][ga][bep][c][bp], - seqprop->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-9 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][gap][a][cp], + qcd_CMUL(prop->D[v][ga][alp][c][ap], + seqprop->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-8 + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][alp][a][ap], + qcd_CMUL(prop->D[v][ga][bep][c][bp], + seqprop->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-9 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][gap][a][cp], - qcd_CMUL(prop->D[v][ga][bep][c][bp], - seqprop->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-10 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][gap][a][cp], + qcd_CMUL(prop->D[v][ga][bep][c][bp], + seqprop->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-10 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][alp][a][ap], - qcd_CMUL(prop->D[v][ga][gap][c][cp], - seqprop->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-11 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][alp][a][ap], + qcd_CMUL(prop->D[v][ga][gap][c][cp], + seqprop->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-11 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][bep][a][bp], - qcd_CMUL(prop->D[v][ga][gap][c][cp], - seqprop->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-12 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][bep][a][bp], + qcd_CMUL(prop->D[v][ga][gap][c][cp], + seqprop->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-12 -//------------------------- + //------------------------- - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][bep][a][bp], - qcd_CMUL(prop->D[v][be][alp][b][ap], - seqprop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); //-13 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][bep][a][bp], + qcd_CMUL(prop->D[v][be][alp][b][ap], + seqprop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); //-13 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][gap][a][cp], - qcd_CMUL(prop->D[v][be][alp][b][ap], - seqprop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-14 - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][alp][a][ap], - qcd_CMUL(prop->D[v][be][bep][b][bp], - seqprop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-15 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][gap][a][cp], + qcd_CMUL(prop->D[v][be][alp][b][ap], + seqprop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-14 + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][alp][a][ap], + qcd_CMUL(prop->D[v][be][bep][b][bp], + seqprop->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-15 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][gap][a][cp], - qcd_CMUL(prop->D[v][be][bep][b][bp], - seqprop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-16 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][gap][a][cp], + qcd_CMUL(prop->D[v][be][bep][b][bp], + seqprop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-16 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][alp][a][ap], - qcd_CMUL(prop->D[v][be][gap][b][cp], - seqprop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-17 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][alp][a][ap], + qcd_CMUL(prop->D[v][be][gap][b][cp], + seqprop->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-17 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(prop->D[v][al][bep][a][bp], - qcd_CMUL(prop->D[v][be][gap][b][cp], - seqprop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - );//-18 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(prop->D[v][al][bep][a][bp], + qcd_CMUL(prop->D[v][be][gap][b][cp], + seqprop->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + );//-18 - }//space loop + }//space loop }//color2 loop - }//color1 loop + }//color1 loop }//nonvanishing cgcg loop }//nonvanishing projector condition @@ -265,8 +350,8 @@ int qcd_f1f1f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cg } //====================================================================== -int qcd_f1f2f1_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_f1f2f1_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -274,68 +359,69 @@ int qcd_f1f2f1_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//space loop - }//color2 loop + }//space loop + }//color2 loop }//color1 loop - }//nonvanishing cgcg loop + }//nonvanishing cgcg loop }// ga gap indices return (1); @@ -343,8 +429,8 @@ int qcd_f1f2f1_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 //====================================================================== -int qcd_pnextra_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_pnextra_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2,de,dep; @@ -353,82 +439,83 @@ int qcd_pnextra_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; for(de =0; de <4; de ++) - for(dep=0; dep<4; dep++){ + for(dep=0; dep<4; dep++){ - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - block[elem][de][dep][v3] = qcd_CADD(block[elem][de][dep][v3],qcd_CMUL( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][alp][a][ap]))),term) - ); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + block[elem][de][dep][v3] = qcd_CADD(block[elem][de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),term) + ); - block[elem][de][dep][v3] = qcd_CADD(block[elem][de][dep][v3],qcd_CMUL( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - seqpropf1->D[v][ga][gap][c][cp]))),term) - ); + block[elem][de][dep][v3] = qcd_CADD(block[elem][de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][gap][c][cp]))),term) + ); - block[elem][de][dep][v3] = qcd_CSUB(block[elem][de][dep][v3],qcd_CMUL( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][gap][a][cp]))),term) - ); - - block[elem][de][dep][v3] = qcd_CSUB(block[elem][de][dep][v3],qcd_CMUL( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - seqpropf1->D[v][ga][alp][c][ap]))),term) - ); + block[elem][de][dep][v3] = qcd_CSUB(block[elem][de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][gap][a][cp]))),term) + ); + + block[elem][de][dep][v3] = qcd_CSUB(block[elem][de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + seqpropf1->D[v][ga][alp][c][ap]))),term) + ); - }//space loop - }//color2 loop - }//color1 loop - }//nonvanishing cgcg loop - }// ga gap indices - }// de dep indices + }//space loop + }//color2 loop + }//color1 loop + }//nonvanishing cgcg loop + }// ga gap indices + }// de dep indices return (1); } //====================================================================== -int qcd_f1f2f1_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_f1f2f1_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -436,63 +523,64 @@ int qcd_f1f2f1_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//space loop - }//color2 loop + }//space loop + }//color2 loop }//color1 loop - }//nonvanishing cgcg loop + }//nonvanishing cgcg loop }// ga gap indices return (1); } //====================================================================== -int qcd_pnextra_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_pnextra_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2,de,dep; @@ -502,70 +590,71 @@ int qcd_pnextra_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; for(de =0; de <4; de ++) - for(dep=0; dep<4; dep++){ + for(dep=0; dep<4; dep++){ - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - block[elem][de][dep][v3] = qcd_CADD(block[elem][de][dep][v3],qcd_CMUL( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - seqpropf2->D[v][be][bep][b][bp]))),term) - ); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + block[elem][de][dep][v3] = qcd_CADD(block[elem][de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf2->D[v][be][bep][b][bp]))),term) + ); - block[elem][de][dep][v3] = qcd_CSUB(block[elem][de][dep][v3],qcd_CMUL( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf2->D[v][be][bep][b][bp]))),term) - ); + block[elem][de][dep][v3] = qcd_CSUB(block[elem][de][dep][v3],qcd_CMUL( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][bep][b][bp]))),term) + ); - }//space loop - }//color2 loop - }//color1 loop - }//nonvanishing cgcg loop - }// ga gap indices - }// de dep indices + }//space loop + }//color2 loop + }//color1 loop + }//nonvanishing cgcg loop + }// ga gap indices + }// de dep indices return (1); } //====================================================================== -int qcd_deltas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_deltas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -573,162 +662,242 @@ int qcd_deltas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== + +int qcd_xistar_extra11_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop return (1); } //====================================================================== -int qcd_deltas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + +int qcd_xistar_extra12_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -736,110 +905,348 @@ int qcd_deltas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== + +int qcd_xistar_extra21_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== + +int qcd_xistar_extra22_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== + +int qcd_deltas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop return (1); } //====================================================================== -int qcd_f123f321_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_xistar_extra11_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -847,79 +1254,131 @@ int qcd_f123f321_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_ int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== + +int qcd_xistar_extra12_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf3->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf3->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf3->D[v][al][gap][a][cp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - qcd_CMUL(propf3->D[v][al][alp][a][ap], - seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap - }//space loop - + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop return (1); } //====================================================================== -int qcd_f123f321_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_xistar_extra21_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -927,79 +1386,131 @@ int qcd_f123f321_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_ int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== +int qcd_xistar_extra22_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][ga][gap][c][cp], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf3->D[v][ga][alp][c][ap], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf3->D[v][al][gap][a][cp], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf3->D[v][al][alp][a][ap], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); + + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap - }//space loop - + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop return (1); } //====================================================================== -int qcd_f123f321_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_f123f321_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1007,78 +1518,238 @@ int qcd_f123f321_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_ int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][be][bep][b][bp], + qcd_CMUL(propf3->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf3->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf3->D[v][al][gap][a][cp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf3->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== + +int qcd_f123f321_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - seqpropf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - seqpropf3->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - seqpropf3->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - seqpropf3->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][ga][gap][c][cp], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf3->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf3->D[v][al][gap][a][cp], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf3->D[v][al][alp][a][ap], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + return (1); } //====================================================================== -int qcd_f1f2f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_f123f321_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ + + qcd_int_4 ctr2; + qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; + qcd_uint_4 lx,ly,lz,v,v3; + int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; + +#pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ + + for(ctr2=0; ctr2D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + seqpropf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + seqpropf3->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + seqpropf3->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + seqpropf3->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*0.5) + ); + + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap + }//space loop + + return (1); +} +//====================================================================== + +int qcd_f1f2f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *propf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1086,55 +1757,56 @@ int qcd_f1f2f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cg int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) - ); + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + propf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]) + ); - }//space loop - }//color2 loop + }//space loop + }//color2 loop }//color1 loop - }//nonvanishing cgcg loop + }//nonvanishing cgcg loop }//ga gap indices return (1); } //====================================================================== -int qcd_sigmas4_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_sigmas4_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1142,163 +1814,163 @@ int qcd_sigmas4_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][be][alp][b][ap], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap indices - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap indices + }//space loop return (1); } //====================================================================== -int qcd_sigmas4_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_sigmas4_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1306,107 +1978,107 @@ int qcd_sigmas4_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][bep][a][bp], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/3.0) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/3.0) + ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); - - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) - ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); + + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/3.0) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap indices - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap indices + }//space loop return (1); } //====================================================================== -int qcd_lambdas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_lambdas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1414,113 +2086,113 @@ int qcd_lambdas_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf3->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf3->D[v][ga][bep][c][bp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 1-3 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][alp][b][ap], - qcd_CMUL(propf3->D[v][ga][bep][c][bp], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf3->D[v][be][gap][b][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 2-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 3-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][bep][a][bp], - qcd_CMUL(propf3->D[v][be][gap][b][cp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 3-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 3-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf3->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf3->D[v][ga][bep][c][bp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 1-3 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][alp][b][ap], + qcd_CMUL(propf3->D[v][ga][bep][c][bp], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf3->D[v][be][gap][b][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 2-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 3-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][bep][a][bp], + qcd_CMUL(propf3->D[v][be][gap][b][cp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 3-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 3-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap indices - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap indices + }//space loop return (1); } //====================================================================== -int qcd_lambdas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_lambdas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1528,113 +2200,113 @@ int qcd_lambdas_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][ga][gap][c][cp], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][ga][bep][c][bp], - seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 1-3 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf3->D[v][ga][bep][c][bp], - seqpropf2->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][be][gap][b][cp], - seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 2-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 3-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf3->D[v][be][gap][b][cp], - seqpropf2->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 3-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 3-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][ga][gap][c][cp], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][ga][bep][c][bp], + seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 1-3 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf3->D[v][ga][bep][c][bp], + seqpropf2->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][be][gap][b][cp], + seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 2-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 3-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf3->D[v][be][gap][b][cp], + seqpropf2->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 3-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 3-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap indices - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap indices + }//space loop return (1); } //====================================================================== -int qcd_lambdas_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ +int qcd_lambdas_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1642,113 +2314,113 @@ int qcd_lambdas_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 int lv3 = geo->lL[1]*geo->lL[2]*geo->lL[3]; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - seqpropf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - seqpropf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 1-3 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][be][alp][b][ap], - seqpropf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - seqpropf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 2-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 3-1 - block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][al][bep][a][bp], - seqpropf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) - ); -//-- 3-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); -//-- 3-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) - ); + for(cc2=0;cc2<6;cc2++){ + ap=qcd_EPS[cc2][0]; + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + seqpropf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*4.0/6.0) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + seqpropf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 1-3 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][be][alp][b][ap], + seqpropf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + seqpropf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 2-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 3-1 + block[elem][ga][gap][v3] = qcd_CSUB(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][al][bep][a][bp], + seqpropf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*2.0/6.0) + ); + //-- 3-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); + //-- 3-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]/6.0) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) - }//ga gap indices - }//space loop + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) + }//ga gap indices + }//space loop return (1); } //====================================================================== -int qcd_sigmas2_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis){ +int qcd_sigmas2_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf2, qcd_propagator *propf3, qcd_propagator *seqpropf1, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1760,113 +2432,114 @@ int qcd_sigmas2_f1_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 else fact = 2.0/3.0; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][be][bep][b][bp], - qcd_CMUL(propf3->D[v][ga][gap][c][cp], - seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][alp][b][ap], - qcd_CMUL(propf3->D[v][ga][bep][c][bp], - seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 1-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - qcd_CMUL(propf3->D[v][ga][alp][c][ap], - seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][bep][a][bp], - qcd_CMUL(propf3->D[v][be][gap][b][cp], - seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - qcd_CMUL(propf3->D[v][be][alp][b][ap], - seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - qcd_CMUL(propf3->D[v][al][gap][a][cp], - seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - qcd_CMUL(propf3->D[v][al][bep][a][bp], - seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - qcd_CMUL(propf3->D[v][al][alp][a][ap], - seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + qcd_CMUL(propf3->D[v][ga][gap][c][cp], + seqpropf1->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][alp][b][ap], + qcd_CMUL(propf3->D[v][ga][bep][c][bp], + seqpropf1->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 1-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + qcd_CMUL(propf3->D[v][ga][alp][c][ap], + seqpropf1->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][bep][a][bp], + qcd_CMUL(propf3->D[v][be][gap][b][cp], + seqpropf1->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf1->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + qcd_CMUL(propf3->D[v][be][alp][b][ap], + seqpropf1->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + qcd_CMUL(propf3->D[v][al][gap][a][cp], + seqpropf1->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + qcd_CMUL(propf3->D[v][al][bep][a][bp], + seqpropf1->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + qcd_CMUL(propf3->D[v][al][alp][a][ap], + seqpropf1->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) }//ga gap - }//space loop + }//space loop return (1); } //====================================================================== -int qcd_sigmas2_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis){ +int qcd_sigmas2_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf3, qcd_propagator *seqpropf2, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1878,113 +2551,114 @@ int qcd_sigmas2_f2_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 else fact = 2.0/3.0; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf3->D[v][ga][gap][c][cp], - seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf3->D[v][ga][bep][c][bp], - seqpropf2->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 1-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf3->D[v][ga][alp][c][ap], - seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf3->D[v][be][gap][b][cp], - seqpropf2->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf3->D[v][be][bep][b][bp], - seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - qcd_CMUL(propf3->D[v][be][alp][b][ap], - seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - qcd_CMUL(propf3->D[v][al][gap][a][cp], - seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - qcd_CMUL(propf3->D[v][al][bep][a][bp], - seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf3->D[v][al][alp][a][ap], - seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf3->D[v][ga][gap][c][cp], + seqpropf2->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf3->D[v][ga][bep][c][bp], + seqpropf2->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 1-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf3->D[v][ga][alp][c][ap], + seqpropf2->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf3->D[v][be][gap][b][cp], + seqpropf2->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf3->D[v][be][bep][b][bp], + seqpropf2->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + qcd_CMUL(propf3->D[v][be][alp][b][ap], + seqpropf2->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + qcd_CMUL(propf3->D[v][al][gap][a][cp], + seqpropf2->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + qcd_CMUL(propf3->D[v][al][bep][a][bp], + seqpropf2->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf3->D[v][al][alp][a][ap], + seqpropf2->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) }//ga gap - }//space loop + }//space loop return (1); } //====================================================================== -int qcd_sigmas2_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[10][4][4], - qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis){ +int qcd_sigmas2_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_16 cgcg_val[16*16], qcd_complex_16 *block[9][4][4], + qcd_propagator *propf1, qcd_propagator *propf2, qcd_propagator *seqpropf3, qcd_geometry *geo, qcd_uint_4 lt, qcd_uint_4 elem, qcd_uint_4 xis){ qcd_int_4 ctr2; qcd_uint_2 a,b,c,ap,bp,cp,al,be,ga,alp,bep,gap,cc1,cc2; @@ -1996,106 +2670,107 @@ int qcd_sigmas2_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 else fact = 2.0/3.0; #pragma omp parallel for private(lz,ly,lx,v,ga,gap,ctr2,al,be,bep,alp,cc1,a,b,c,cc2,ap,bp,cp) - for(v3=0; v3lL[1]; lx++) */ - /* for(ly=0; lylL[2]; ly++) */ - /* for(lz=0; lzlL[3]; lz++){ */ - //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); - //qcd_LEXIC(lt,lx,ly,lz,geo->lL); - lz = v3 % geo->lL[3]; - ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; - lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; - v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); - - for(ga =0; ga <4; ga ++) - for(gap=0; gap<4; gap++){ + for(v3=0; v3lL[1]; lx++) */ + /* for(ly=0; lylL[2]; ly++) */ + /* for(lz=0; lzlL[3]; lz++){ */ + //v3 = qcd_LEXIC0(lx,ly,lz,geo->lL); + //qcd_LEXIC(lt,lx,ly,lz,geo->lL); +/* lz = v3 % geo->lL[3]; */ +/* ly = ((v3 - lz)/geo->lL[3]) % geo->lL[2]; */ +/* lx = ((v3 - lz)/geo->lL[3] - ly) / geo->lL[2]; */ +/* v = qcd_LEXIC(lt,lx,ly,lz,geo->lL); */ + v = lt + v3*geo->lL[0]; + + for(ga =0; ga <4; ga ++) + for(gap=0; gap<4; gap++){ - for(ctr2=0; ctr2D[v][al][alp][a][ap], - qcd_CMUL(propf2->D[v][be][bep][b][bp], - seqpropf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 1-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][gap][a][cp], - qcd_CMUL(propf2->D[v][be][alp][b][ap], - seqpropf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 1-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][al][bep][a][bp], - qcd_CMUL(propf2->D[v][be][gap][b][cp], - seqpropf3->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][alp][c][ap], - qcd_CMUL(propf2->D[v][al][bep][a][bp], - seqpropf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][gap][c][cp], - qcd_CMUL(propf2->D[v][al][alp][a][ap], - seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 2-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][ga][bep][c][bp], - qcd_CMUL(propf2->D[v][al][gap][a][cp], - seqpropf3->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-1 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][alp][b][ap], - qcd_CMUL(propf2->D[v][ga][bep][c][bp], - seqpropf3->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-2 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][gap][b][cp], - qcd_CMUL(propf2->D[v][ga][alp][c][ap], - seqpropf3->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); -//-- 3-3 - block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( - qcd_CMUL(cgcg_val[ctr2], - qcd_CMUL(propf1->D[v][be][bep][b][bp], - qcd_CMUL(propf2->D[v][ga][gap][c][cp], - seqpropf3->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) - ); + bp=qcd_EPS[cc2][1]; + cp=qcd_EPS[cc2][2]; + + //-- 1-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][alp][a][ap], + qcd_CMUL(propf2->D[v][be][bep][b][bp], + seqpropf3->D[v][ga][gap][c][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 1-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][gap][a][cp], + qcd_CMUL(propf2->D[v][be][alp][b][ap], + seqpropf3->D[v][ga][bep][c][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 1-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][al][bep][a][bp], + qcd_CMUL(propf2->D[v][be][gap][b][cp], + seqpropf3->D[v][ga][alp][c][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][alp][c][ap], + qcd_CMUL(propf2->D[v][al][bep][a][bp], + seqpropf3->D[v][be][gap][b][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][gap][c][cp], + qcd_CMUL(propf2->D[v][al][alp][a][ap], + seqpropf3->D[v][be][bep][b][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 2-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][ga][bep][c][bp], + qcd_CMUL(propf2->D[v][al][gap][a][cp], + seqpropf3->D[v][be][alp][b][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-1 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][alp][b][ap], + qcd_CMUL(propf2->D[v][ga][bep][c][bp], + seqpropf3->D[v][al][gap][a][cp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-2 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][gap][b][cp], + qcd_CMUL(propf2->D[v][ga][alp][c][ap], + seqpropf3->D[v][al][bep][a][bp]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); + //-- 3-3 + block[elem][ga][gap][v3] = qcd_CADD(block[elem][ga][gap][v3],qcd_CSCALE( + qcd_CMUL(cgcg_val[ctr2], + qcd_CMUL(propf1->D[v][be][bep][b][bp], + qcd_CMUL(propf2->D[v][ga][gap][c][cp], + seqpropf3->D[v][al][alp][a][ap]))),qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]*fact) + ); - }//color2 loop - }//color1 loop - }//spin loop (cg_cg) + }//color2 loop + }//color1 loop + }//spin loop (cg_cg) }//ga gap - }//space loop + }//space loop return (1); } @@ -2106,9 +2781,9 @@ int qcd_sigmas2_f3_3pt(qcd_int_4 ctr, qcd_int_2 cgcg_ind[16*16][4],qcd_complex_1 //====================================================================== void qcd_contractions3pt_new(qcd_uint_4 p_id, qcd_uint_4 np, qcd_complex_16 *block[5], - qcd_propagator *uprop, qcd_propagator *dprop, qcd_propagator *sprop, qcd_propagator *cprop, - qcd_propagator *sequprop, qcd_propagator *seqdprop, qcd_propagator *seqsprop, qcd_propagator *seqcprop, - qcd_geometry *geo, qcd_uint_4 lt){ + qcd_propagator *uprop, qcd_propagator *dprop, qcd_propagator *sprop, qcd_propagator *cprop, + qcd_propagator *sequprop, qcd_propagator *seqdprop, qcd_propagator *seqsprop, qcd_propagator *seqcprop, + qcd_geometry *geo, qcd_uint_4 lt){ qcd_uint_4 ctr,ctr5,ctr1,ctr2,ctr3,ctr12,ctr21,ctr13,ctr31,ctr23,ctr32,v3; @@ -2131,1438 +2806,1545 @@ void qcd_contractions3pt_new(qcd_uint_4 p_id, qcd_uint_4 np, qcd_complex_16 *blo qcd_complex_16 CG[4][4],CG_bar[4][4]; - qcd_complex_16 *block_pr[10][4][4]; + qcd_complex_16 *block_pr[9][4][4]; - qcd_uint_4 i,j,k,det; + qcd_uint_4 i,j,k,p,det; -//-- Allocation of local blocks + //-- Allocation of local blocks - if( particles32[p_id] ){ - for(i=0;i<10;i++) - for(j=0;j<4;j++) - for(k=0;k<4;k++){ - block_pr[i][j][k] = (qcd_complex_16*) malloc(geo->lV3*sizeof(qcd_complex_16)); + if( particles32[p_id] ){ + for(i=0;i<9;i++) + for(j=0;j<4;j++) + for(k=0;k<4;k++){ + block_pr[i][j][k] = (qcd_complex_16*) malloc(geo->lV3*sizeof(qcd_complex_16)); - if(block_pr[i][j][k]==NULL){ - printf("Block %d %d %d not properly initialized\n",i,j,k); - exit(EXIT_FAILURE); - } - - for(v3=0;v3<(geo->lV3);v3++){ - block_pr[i][j][k][v3] = (qcd_complex_16) {0,0}; - } - } - } - else{ - for(j=0;j<4;j++) - for(k=0;k<4;k++){ - block_pr[9][j][k] = (qcd_complex_16*) malloc(geo->lV3*sizeof(qcd_complex_16)); + if(block_pr[i][j][k]==NULL){ + printf("Process %d: Block_pr[%d][%d][%d] not properly initialized\n",i,j,k,geo->myid); + exit(EXIT_FAILURE); + } + + for(v3=0;v3<(geo->lV3);v3++){ + block_pr[i][j][k][v3] = (qcd_complex_16) {0,0}; + } + } + } + else{ + for(j=0;j<4;j++) + for(k=0;k<4;k++){ + block_pr[8][j][k] = (qcd_complex_16*) malloc(geo->lV3*sizeof(qcd_complex_16)); - if(block_pr[9][j][k]==NULL){ - printf("Block 9 %d %d not properly initialized\n",j,k); - exit(EXIT_FAILURE); - } - - for(v3=0;v3<(geo->lV3);v3++){ - block_pr[9][j][k][v3] = (qcd_complex_16) {0,0}; - } - } + if(block_pr[8][j][k]==NULL){ + printf("Process %d: Block_pr[8][%d][%d] not properly initialized\n",j,k,geo->myid); + exit(EXIT_FAILURE); + } + + for(v3=0;v3<(geo->lV3);v3++){ + block_pr[8][j][k][v3] = (qcd_complex_16) {0,0}; } + } + } + + //if(geo->myid==0) printf("Local blocks allocated properly for particle t=%d\n",lt); -//-- Non zero elements of all combinations of gamma_{1,2,3} matrices and gamma_5 + //-- Non zero elements of all combinations of gamma_{1,2,3} matrices and gamma_5 if ( particles32[p_id] ){ - ctr1 = 0; ctr2 = 0; ctr3 = 0; - ctr13 = 0; ctr31 = 0; ctr12 = 0; ctr21 = 0; ctr23 = 0; ctr32 = 0; + ctr1 = 0; ctr2 = 0; ctr3 = 0; + ctr13 = 0; ctr31 = 0; ctr12 = 0; ctr21 = 0; ctr23 = 0; ctr32 = 0; - for(al=0;al<4;al++) - for(be=0;be<4;be++) - for(alp=0;alp<4;alp++) - for(bep=0;bep<4;bep++) - { - C1 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[1][bep][alp]); - C12 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[2][bep][alp]); - C13 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[3][bep][alp]); + for(al=0;al<4;al++) + for(be=0;be<4;be++) + for(alp=0;alp<4;alp++) + for(bep=0;bep<4;bep++) + { + C1 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[1][bep][alp]); + C12 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[2][bep][alp]); + C13 = qcd_CMUL(qcd_CGAMMA[1][al][be],qcd_BAR_CGAMMA[3][bep][alp]); - C21 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[1][bep][alp]); - C2 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[2][bep][alp]); - C23 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[3][bep][alp]); + C21 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[1][bep][alp]); + C2 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[2][bep][alp]); + C23 = qcd_CMUL(qcd_CGAMMA[2][al][be],qcd_BAR_CGAMMA[3][bep][alp]); - C31 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[1][bep][alp]); - C32 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[2][bep][alp]); - C3 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[3][bep][alp]); + C31 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[1][bep][alp]); + C32 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[2][bep][alp]); + C3 = qcd_CMUL(qcd_CGAMMA[3][al][be],qcd_BAR_CGAMMA[3][bep][alp]); - if(qcd_NORM(C1)>1e-3) - { - cg1cg1_val[ctr1].re = C1.re; - cg1cg1_val[ctr1].im = C1.im; - cg1cg1_ind[ctr1][0] = al; - cg1cg1_ind[ctr1][1] = be; - cg1cg1_ind[ctr1][2] = bep; - cg1cg1_ind[ctr1][3] = alp; - ctr1++; - } - if(qcd_NORM(C2)>1e-3) - { - cg2cg2_val[ctr2].re = C2.re; - cg2cg2_val[ctr2].im = C2.im; - cg2cg2_ind[ctr2][0] = al; - cg2cg2_ind[ctr2][1] = be; - cg2cg2_ind[ctr2][2] = bep; - cg2cg2_ind[ctr2][3] = alp; - ctr2++; - } - if(qcd_NORM(C3)>1e-3) - { - cg3cg3_val[ctr3].re = C3.re; - cg3cg3_val[ctr3].im = C3.im; - cg3cg3_ind[ctr3][0] = al; - cg3cg3_ind[ctr3][1] = be; - cg3cg3_ind[ctr3][2] = bep; - cg3cg3_ind[ctr3][3] = alp; - ctr3++; - } - if(qcd_NORM(C23)>1e-3) - { - cg2cg3_val[ctr23].re = C23.re; - cg2cg3_val[ctr23].im = C23.im; - cg2cg3_ind[ctr23][0] = al; - cg2cg3_ind[ctr23][1] = be; - cg2cg3_ind[ctr23][2] = bep; - cg2cg3_ind[ctr23][3] = alp; - ctr23++; - } - if(qcd_NORM(C32)>1e-3) - { - cg3cg2_val[ctr32].re = C32.re; - cg3cg2_val[ctr32].im = C32.im; - cg3cg2_ind[ctr32][0] = al; - cg3cg2_ind[ctr32][1] = be; - cg3cg2_ind[ctr32][2] = bep; - cg3cg2_ind[ctr32][3] = alp; - ctr32++; - } - if(qcd_NORM(C13)>1e-3) - { - cg1cg3_val[ctr13].re = C13.re; - cg1cg3_val[ctr13].im = C13.im; - cg1cg3_ind[ctr13][0] = al; - cg1cg3_ind[ctr13][1] = be; - cg1cg3_ind[ctr13][2] = bep; - cg1cg3_ind[ctr13][3] = alp; - ctr13++; - } - if(qcd_NORM(C31)>1e-3) - { - cg3cg1_val[ctr31].re = C31.re; - cg3cg1_val[ctr31].im = C31.im; - cg3cg1_ind[ctr31][0] = al; - cg3cg1_ind[ctr31][1] = be; - cg3cg1_ind[ctr31][2] = bep; - cg3cg1_ind[ctr31][3] = alp; - ctr31++; - } - if(qcd_NORM(C12)>1e-3) - { - cg1cg2_val[ctr12].re = C12.re; - cg1cg2_val[ctr12].im = C12.im; - cg1cg2_ind[ctr12][0] = al; - cg1cg2_ind[ctr12][1] = be; - cg1cg2_ind[ctr12][2] = bep; - cg1cg2_ind[ctr12][3] = alp; - ctr12++; - } - if(qcd_NORM(C21)>1e-3) - { - cg2cg1_val[ctr21].re = C21.re; - cg2cg1_val[ctr21].im = C21.im; - cg2cg1_ind[ctr21][0] = al; - cg2cg1_ind[ctr21][1] = be; - cg2cg1_ind[ctr21][2] = bep; - cg2cg1_ind[ctr21][3] = alp; - ctr21++; - } - }//-for's + if(qcd_NORM(C1)>1e-3) + { + cg1cg1_val[ctr1].re = C1.re; + cg1cg1_val[ctr1].im = C1.im; + cg1cg1_ind[ctr1][0] = al; + cg1cg1_ind[ctr1][1] = be; + cg1cg1_ind[ctr1][2] = bep; + cg1cg1_ind[ctr1][3] = alp; + ctr1++; + } + if(qcd_NORM(C2)>1e-3) + { + cg2cg2_val[ctr2].re = C2.re; + cg2cg2_val[ctr2].im = C2.im; + cg2cg2_ind[ctr2][0] = al; + cg2cg2_ind[ctr2][1] = be; + cg2cg2_ind[ctr2][2] = bep; + cg2cg2_ind[ctr2][3] = alp; + ctr2++; + } + if(qcd_NORM(C3)>1e-3) + { + cg3cg3_val[ctr3].re = C3.re; + cg3cg3_val[ctr3].im = C3.im; + cg3cg3_ind[ctr3][0] = al; + cg3cg3_ind[ctr3][1] = be; + cg3cg3_ind[ctr3][2] = bep; + cg3cg3_ind[ctr3][3] = alp; + ctr3++; + } + if(qcd_NORM(C23)>1e-3) + { + cg2cg3_val[ctr23].re = C23.re; + cg2cg3_val[ctr23].im = C23.im; + cg2cg3_ind[ctr23][0] = al; + cg2cg3_ind[ctr23][1] = be; + cg2cg3_ind[ctr23][2] = bep; + cg2cg3_ind[ctr23][3] = alp; + ctr23++; + } + if(qcd_NORM(C32)>1e-3) + { + cg3cg2_val[ctr32].re = C32.re; + cg3cg2_val[ctr32].im = C32.im; + cg3cg2_ind[ctr32][0] = al; + cg3cg2_ind[ctr32][1] = be; + cg3cg2_ind[ctr32][2] = bep; + cg3cg2_ind[ctr32][3] = alp; + ctr32++; + } + if(qcd_NORM(C13)>1e-3) + { + cg1cg3_val[ctr13].re = C13.re; + cg1cg3_val[ctr13].im = C13.im; + cg1cg3_ind[ctr13][0] = al; + cg1cg3_ind[ctr13][1] = be; + cg1cg3_ind[ctr13][2] = bep; + cg1cg3_ind[ctr13][3] = alp; + ctr13++; + } + if(qcd_NORM(C31)>1e-3) + { + cg3cg1_val[ctr31].re = C31.re; + cg3cg1_val[ctr31].im = C31.im; + cg3cg1_ind[ctr31][0] = al; + cg3cg1_ind[ctr31][1] = be; + cg3cg1_ind[ctr31][2] = bep; + cg3cg1_ind[ctr31][3] = alp; + ctr31++; + } + if(qcd_NORM(C12)>1e-3) + { + cg1cg2_val[ctr12].re = C12.re; + cg1cg2_val[ctr12].im = C12.im; + cg1cg2_ind[ctr12][0] = al; + cg1cg2_ind[ctr12][1] = be; + cg1cg2_ind[ctr12][2] = bep; + cg1cg2_ind[ctr12][3] = alp; + ctr12++; + } + if(qcd_NORM(C21)>1e-3) + { + cg2cg1_val[ctr21].re = C21.re; + cg2cg1_val[ctr21].im = C21.im; + cg2cg1_ind[ctr21][0] = al; + cg2cg1_ind[ctr21][1] = be; + cg2cg1_ind[ctr21][2] = bep; + cg2cg1_ind[ctr21][3] = alp; + ctr21++; + } + }//-for's }//-particles condition else{ - ctr5 = 0; + ctr5 = 0; - for(al=0;al<4;al++) - for(be=0;be<4;be++) + for(al=0;al<4;al++) + for(be=0;be<4;be++) for(alp=0;alp<4;alp++) - for(bep=0;bep<4;bep++) - { - C5 = qcd_CMUL(qcd_CGAMMA[5][al][be],qcd_BAR_CGAMMA[5][bep][alp]); + for(bep=0;bep<4;bep++) + { + C5 = qcd_CMUL(qcd_CGAMMA[5][al][be],qcd_BAR_CGAMMA[5][bep][alp]); - if(qcd_NORM(C5)>1e-3) + if(qcd_NORM(C5)>1e-3) { - cg5cg5_val[ctr5].re = C5.re; - cg5cg5_val[ctr5].im = C5.im; - cg5cg5_ind[ctr5][0] = al; - cg5cg5_ind[ctr5][1] = be; - cg5cg5_ind[ctr5][2] = bep; - cg5cg5_ind[ctr5][3] = alp; - ctr5++; + cg5cg5_val[ctr5].re = C5.re; + cg5cg5_val[ctr5].im = C5.im; + cg5cg5_ind[ctr5][0] = al; + cg5cg5_ind[ctr5][1] = be; + cg5cg5_ind[ctr5][2] = bep; + cg5cg5_ind[ctr5][3] = alp; + ctr5++; } - } + } } -//-- Calculate the Charge Conjugation and non zero elements + //-- Calculate the Charge Conjugation and non zero elements if( (p_id==41) || (p_id==42) ){ - for(al=0;al<4;al++) - for(be=0;be<4;be++){ - CG[al][be] = (qcd_complex_16) {0.0,0.0}; - CG_bar[al][be] = (qcd_complex_16) {0.0,0.0}; - for(ga=0;ga<4;ga++){ - CG[al][be] = qcd_CADD( CG[al][be],qcd_CMUL(qcd_GAMMA[4][al][ga],qcd_GAMMA[2][ga][be]) ); - CG_bar[al][be] = CG[al][be]; - } - } + for(al=0;al<4;al++) + for(be=0;be<4;be++){ + CG[al][be] = (qcd_complex_16) {0.0,0.0}; + CG_bar[al][be] = (qcd_complex_16) {0.0,0.0}; + for(ga=0;ga<4;ga++){ + CG[al][be] = qcd_CADD( CG[al][be],qcd_CMUL(qcd_GAMMA[4][al][ga],qcd_GAMMA[2][ga][be]) ); + CG_bar[al][be] = CG[al][be]; + } + } - ctr = 0; - for(al=0;al<4;al++) - for(be=0;be<4;be++) + ctr = 0; + for(al=0;al<4;al++) + for(be=0;be<4;be++) for(alp=0;alp<4;alp++) - for(bep=0;bep<4;bep++) - { - C = qcd_CMUL(CG[al][be],CG_bar[bep][alp]); + for(bep=0;bep<4;bep++) + { + C = qcd_CMUL(CG[al][be],CG_bar[bep][alp]); - if(qcd_NORM(C)>1e-3) + if(qcd_NORM(C)>1e-3) { - cgcg_val[ctr].re = C.re; - cgcg_val[ctr].im = C.im; - cgcg_ind[ctr][0] = al; - cgcg_ind[ctr][1] = be; - cgcg_ind[ctr][2] = bep; - cgcg_ind[ctr][3] = alp; - ctr++; + cgcg_val[ctr].re = C.re; + cgcg_val[ctr].im = C.im; + cgcg_ind[ctr][0] = al; + cgcg_ind[ctr][1] = be; + cgcg_ind[ctr][2] = bep; + cgcg_ind[ctr][3] = alp; + ctr++; } - } + } }//-if -//-- Multiplication of gamma_1,gamma_2,gamma_3 between each other + //-- Multiplication of gamma_1,gamma_2,gamma_3 between each other if (particles32[p_id]){ - for(i=0;i<4;i++){ - for(j=0;j<4;j++){ - gamma12[i][j] = (qcd_complex_16) {0,0}; - gamma13[i][j] = (qcd_complex_16) {0,0}; - gamma23[i][j] = (qcd_complex_16) {0,0}; + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + gamma12[i][j] = (qcd_complex_16) {0,0}; + gamma13[i][j] = (qcd_complex_16) {0,0}; + gamma23[i][j] = (qcd_complex_16) {0,0}; - for(k=0;k<4;k++){ - gamma12[i][j] = qcd_CADD(gamma12[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[2][k][j])); - gamma13[i][j] = qcd_CADD(gamma13[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[3][k][j])); - gamma23[i][j] = qcd_CADD(gamma23[i][j],qcd_CMUL(qcd_GAMMA[2][i][k],qcd_GAMMA[3][k][j])); - } - } - } + for(k=0;k<4;k++){ + gamma12[i][j] = qcd_CADD(gamma12[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[2][k][j])); + gamma13[i][j] = qcd_CADD(gamma13[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[3][k][j])); + gamma23[i][j] = qcd_CADD(gamma23[i][j],qcd_CMUL(qcd_GAMMA[2][i][k],qcd_GAMMA[3][k][j])); + } + } + } } -//----------------------------------------------- + //----------------------------------------------- switch(p_id){ - case 1://-proton - switch(np){ - case 0: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqdprop, geo, lt,9); - break; - } - break; - - case 2://-neutron - switch(np){ - case 0: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, uprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, uprop, seqdprop, geo, lt,9); - break; - } - break; - - case 3://-lambda - switch(np){ - case 0: - check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqdprop, geo, lt,9); - break; - case 2: - check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqsprop, geo, lt,9); - break; - } - break; - - case 4://-sigma plus - switch(np){ - case 0: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, sequprop, geo, lt,9); - break; - case 2: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqsprop, geo, lt,9); - break; - } - break; - - case 5://-sigma zero - switch(np){ - case 0: - check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqdprop, geo, lt,9); - break; - case 2: - check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqsprop, geo, lt,9); - break; - } - break; - - case 6://-sigma minus - switch(np){ - case 1: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqdprop, geo, lt,9); - break; - case 2: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqsprop, geo, lt,9); - break; - } - break; - - case 7://-xi zero - switch(np){ - case 0: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, uprop, sequprop, geo, lt,9); - break; - case 2: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, uprop, seqsprop, geo, lt,9); - break; - } - break; - - case 8://-xi minus - switch(np){ - case 1: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, seqdprop, geo, lt,9); - break; - case 2: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, seqsprop, geo, lt,9); - break; - } - break; -//----------------------------------------------------------------------------------- - case 9://-delta plus plus - check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sequprop, geo, lt,0); - check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sequprop, geo, lt,1); - check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sequprop, geo, lt,2); - check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sequprop, geo, lt,3); - check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sequprop, geo, lt,4); - check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sequprop, geo, lt,5); - check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sequprop, geo, lt,6); - check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sequprop, geo, lt,7); - check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - - case 10://-delta plus - switch(np){ - case 0: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, sequprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, sequprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, sequprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, sequprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, sequprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, sequprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, sequprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, sequprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 1: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, seqdprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, seqdprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, seqdprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, seqdprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, seqdprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, seqdprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, seqdprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, seqdprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 1://-proton + switch(np){ + case 0: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqdprop, geo, lt,8); + break; + } + break; + + case 2://-neutron + switch(np){ + case 0: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, uprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, uprop, seqdprop, geo, lt,8); + break; + } + break; + + case 3://-lambda + switch(np){ + case 0: + check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqdprop, geo, lt,8); + break; + case 2: + check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + + case 4://-sigma plus + switch(np){ + case 0: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, sequprop, geo, lt,8); + break; + case 2: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqsprop, geo, lt,8); + break; + } + break; + + case 5://-sigma zero + switch(np){ + case 0: + check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqdprop, geo, lt,8); + break; + case 2: + check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + + case 6://-sigma minus + switch(np){ + case 1: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqdprop, geo, lt,8); + break; + case 2: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqsprop, geo, lt,8); + break; + } + break; + + case 7://-xi zero + switch(np){ + case 0: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, uprop, sequprop, geo, lt,8); + break; + case 2: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); + break; + } + break; + + case 8://-xi minus + switch(np){ + case 1: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); + break; + case 2: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + //----------------------------------------------------------------------------------- + case 9://-delta plus plus + check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sequprop, geo, lt,0); + check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sequprop, geo, lt,1); + check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sequprop, geo, lt,2); + check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sequprop, geo, lt,3); + check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sequprop, geo, lt,4); + check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sequprop, geo, lt,5); + check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sequprop, geo, lt,6); + check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sequprop, geo, lt,7); + check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sequprop, geo, lt,8); + break; + + case 10://-delta plus + switch(np){ + case 0: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, sequprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, sequprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, sequprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, sequprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, sequprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, sequprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, sequprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, sequprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, sequprop, geo, lt,8); + break; + case 1: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, seqdprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, seqdprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, seqdprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, seqdprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, seqdprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, seqdprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, seqdprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, seqdprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, seqdprop, geo, lt,8); + break; + } + break; - case 11://-delta zero - switch(np){ - case 0: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, uprop, sequprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, uprop, sequprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, uprop, sequprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, uprop, sequprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, uprop, sequprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, uprop, sequprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, uprop, sequprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, uprop, sequprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, uprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 1: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, uprop, seqdprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, uprop, seqdprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, uprop, seqdprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, uprop, seqdprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, uprop, seqdprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, uprop, seqdprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, uprop, seqdprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, uprop, seqdprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, uprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 12://-delta minus - check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, seqdprop, geo, lt,0); - check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, seqdprop, geo, lt,1); - check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, seqdprop, geo, lt,2); - check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, seqdprop, geo, lt,3); - check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, seqdprop, geo, lt,4); - check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, seqdprop, geo, lt,5); - check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, seqdprop, geo, lt,6); - check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, seqdprop, geo, lt,7); - check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; + case 11://-delta zero + switch(np){ + case 0: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, uprop, sequprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, uprop, sequprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, uprop, sequprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, uprop, sequprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, uprop, sequprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, uprop, sequprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, uprop, sequprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, uprop, sequprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, uprop, sequprop, geo, lt,8); + break; + case 1: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, uprop, seqdprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, uprop, seqdprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, uprop, seqdprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, uprop, seqdprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, uprop, seqdprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, uprop, seqdprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, uprop, seqdprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, uprop, seqdprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, uprop, seqdprop, geo, lt,8); + break; + } + break; + + case 12://-delta minus + check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, seqdprop, geo, lt,0); + check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, seqdprop, geo, lt,1); + check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, seqdprop, geo, lt,2); + check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, seqdprop, geo, lt,3); + check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, seqdprop, geo, lt,4); + check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, seqdprop, geo, lt,5); + check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, seqdprop, geo, lt,6); + check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, seqdprop, geo, lt,7); + check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, seqdprop, geo, lt,8); + break; - case 13://-sigma star plus - switch(np){ - case 0: - check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, sequprop, geo, lt,0); - check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, sequprop, geo, lt,1); - check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, sequprop, geo, lt,2); - check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, sequprop, geo, lt,3); - check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, sequprop, geo, lt,4); - check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, sequprop, geo, lt,5); - check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, sequprop, geo, lt,6); - check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, sequprop, geo, lt,7); - check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, seqsprop, geo, lt,0); - check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, seqsprop, geo, lt,1); - check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, seqsprop, geo, lt,2); - check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, seqsprop, geo, lt,3); - check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, seqsprop, geo, lt,4); - check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, seqsprop, geo, lt,5); - check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, seqsprop, geo, lt,6); - check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, seqsprop, geo, lt,7); - check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 13://-sigma star plus + switch(np){ + case 0: + check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, sequprop, geo, lt,0); + check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, sequprop, geo, lt,1); + check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, sequprop, geo, lt,2); + check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, sequprop, geo, lt,3); + check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, sequprop, geo, lt,4); + check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, sequprop, geo, lt,5); + check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, sequprop, geo, lt,6); + check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, sequprop, geo, lt,7); + check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, sequprop, geo, lt,8); + break; + case 2: + check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, seqsprop, geo, lt,0); + check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, seqsprop, geo, lt,1); + check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, seqsprop, geo, lt,2); + check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, seqsprop, geo, lt,3); + check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, seqsprop, geo, lt,4); + check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, seqsprop, geo, lt,5); + check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, seqsprop, geo, lt,6); + check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, seqsprop, geo, lt,7); + check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, seqsprop, geo, lt,8); + break; + } + break; - case 14://-sigma star zero - switch(np){ - case 0: - check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, sequprop, geo, lt,0,0); - check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, sequprop, geo, lt,1,0); - check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, sequprop, geo, lt,2,0); - check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, sequprop, geo, lt,3,0); - check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, sequprop, geo, lt,4,0); - check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, sequprop, geo, lt,5,0); - check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, sequprop, geo, lt,6,0); - check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, sequprop, geo, lt,7,0); - check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, sequprop, geo, lt,8,0); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 1: - check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, seqdprop, geo, lt,0,0); - check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, seqdprop, geo, lt,1,0); - check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, seqdprop, geo, lt,2,0); - check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, seqdprop, geo, lt,3,0); - check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, seqdprop, geo, lt,4,0); - check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, seqdprop, geo, lt,5,0); - check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, seqdprop, geo, lt,6,0); - check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, seqdprop, geo, lt,7,0); - check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, seqdprop, geo, lt,8,0); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, seqsprop, geo, lt,0,0); - check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, seqsprop, geo, lt,1,0); - check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, seqsprop, geo, lt,2,0); - check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, seqsprop, geo, lt,3,0); - check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, seqsprop, geo, lt,4,0); - check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, seqsprop, geo, lt,5,0); - check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, seqsprop, geo, lt,6,0); - check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, seqsprop, geo, lt,7,0); - check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, seqsprop, geo, lt,8,0); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 14://-sigma star zero + switch(np){ + case 0: + check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, sequprop, geo, lt,0,0); + check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, sequprop, geo, lt,1,0); + check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, sequprop, geo, lt,2,0); + check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, sequprop, geo, lt,3,0); + check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, sequprop, geo, lt,4,0); + check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, sequprop, geo, lt,5,0); + check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, sequprop, geo, lt,6,0); + check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, sequprop, geo, lt,7,0); + check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, sequprop, geo, lt,8,0); + break; + case 1: + check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, seqdprop, geo, lt,0,0); + check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, seqdprop, geo, lt,1,0); + check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, seqdprop, geo, lt,2,0); + check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, seqdprop, geo, lt,3,0); + check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, seqdprop, geo, lt,4,0); + check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, seqdprop, geo, lt,5,0); + check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, seqdprop, geo, lt,6,0); + check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, seqdprop, geo, lt,7,0); + check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, seqdprop, geo, lt,8,0); + break; + case 2: + check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, seqsprop, geo, lt,0,0); + check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, seqsprop, geo, lt,1,0); + check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, seqsprop, geo, lt,2,0); + check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, seqsprop, geo, lt,3,0); + check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, seqsprop, geo, lt,4,0); + check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, seqsprop, geo, lt,5,0); + check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, seqsprop, geo, lt,6,0); + check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, seqsprop, geo, lt,7,0); + check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, seqsprop, geo, lt,8,0); + break; + } + break; - case 15://-sigma star minus - switch(np){ - case 1: - check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, seqdprop, geo, lt,0); - check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, seqdprop, geo, lt,1); - check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, seqdprop, geo, lt,2); - check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, seqdprop, geo, lt,3); - check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, seqdprop, geo, lt,4); - check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, seqdprop, geo, lt,5); - check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, seqdprop, geo, lt,6); - check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, seqdprop, geo, lt,7); - check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, seqsprop, geo, lt,0); - check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, seqsprop, geo, lt,1); - check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, seqsprop, geo, lt,2); - check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, seqsprop, geo, lt,3); - check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, seqsprop, geo, lt,4); - check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, seqsprop, geo, lt,5); - check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, seqsprop, geo, lt,6); - check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, seqsprop, geo, lt,7); - check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 15://-sigma star minus + switch(np){ + case 1: + check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, seqdprop, geo, lt,0); + check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, seqdprop, geo, lt,1); + check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, seqdprop, geo, lt,2); + check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, seqdprop, geo, lt,3); + check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, seqdprop, geo, lt,4); + check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, seqdprop, geo, lt,5); + check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, seqdprop, geo, lt,6); + check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, seqdprop, geo, lt,7); + check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, seqdprop, geo, lt,8); + break; + case 2: + check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, seqsprop, geo, lt,0); + check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, seqsprop, geo, lt,1); + check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, seqsprop, geo, lt,2); + check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, seqsprop, geo, lt,3); + check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, seqsprop, geo, lt,4); + check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, seqsprop, geo, lt,5); + check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, seqsprop, geo, lt,6); + check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, seqsprop, geo, lt,7); + check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, seqsprop, geo, lt,8); + break; + } + break; - case 16://-xi star zero - switch(np){ - case 0: - check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); - check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); - check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); - check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); - check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); - check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); - check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); - check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); - check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); - check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); - check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); - check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); - check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); - check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); - check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); - check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); - check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 17://-xi star minus - switch(np){ - case 1: - check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); - check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); - check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); - check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); - check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); - check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); - check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); - check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); - check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); - check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); - check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); - check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); - check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); - check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); - check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); - check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); - check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 16://-xi star zero + switch(np){ + case 0: + check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); + check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); + check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); + check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); + check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); + check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); + check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); + check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); + check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); + break; + case 2: + check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); + check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); + check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); + check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); + check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); + check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); + check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); + check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); + check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); + break; + } + break; + + case 17://-xi star minus + switch(np){ + case 1: + check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); + check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); + check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); + check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); + check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); + check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); + check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); + check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); + check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); + break; + case 2: + check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); + check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); + check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); + check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); + check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); + check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); + check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); + check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); + check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); + break; + } + break; - case 18://-omega - check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, seqsprop, geo, lt,0); - check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, seqsprop, geo, lt,1); - check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, seqsprop, geo, lt,2); - check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, seqsprop, geo, lt,3); - check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, seqsprop, geo, lt,4); - check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, seqsprop, geo, lt,5); - check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, seqsprop, geo, lt,6); - check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, seqsprop, geo, lt,7); - check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; -//-------------------------------------------------------------------------------- - case 19://-lambda c plus - switch(np){ - case 0: - check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqdprop, geo, lt,9); - break; - case 3: - check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqcprop, geo, lt,9); - break; - } - break; - - case 20://-sigma c plus plus - switch(np){ - case 0: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, sequprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqcprop, geo, lt,9); - break; - } - break; - - case 21://-sigma c plus - switch(np){ - case 0: - check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, dprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqdprop, geo, lt,9); - break; - case 3: - check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqcprop, geo, lt,9); - break; - } - break; - - case 22://-sigma c zero - switch(np){ - case 1: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqdprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqcprop, geo, lt,9); - break; - } - break; - - case 23://-xi c plus - switch(np){ - case 0: - check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sequprop, sprop, cprop, geo, lt,9); - break; - case 2: - check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, seqsprop, cprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqcprop, geo, lt,9); - break; - } - break; + case 18://-omega + check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, seqsprop, geo, lt,0); + check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, seqsprop, geo, lt,1); + check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, seqsprop, geo, lt,2); + check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, seqsprop, geo, lt,3); + check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, seqsprop, geo, lt,4); + check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, seqsprop, geo, lt,5); + check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, seqsprop, geo, lt,6); + check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, seqsprop, geo, lt,7); + check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, seqsprop, geo, lt,8); + break; + //-------------------------------------------------------------------------------- + case 19://-lambda c plus + switch(np){ + case 0: + check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqdprop, geo, lt,8); + break; + case 3: + check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqcprop, geo, lt,8); + break; + } + break; + + case 20://-sigma c plus plus + switch(np){ + case 0: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, sequprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqcprop, geo, lt,8); + break; + } + break; + + case 21://-sigma c plus + switch(np){ + case 0: + check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, dprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqdprop, geo, lt,8); + break; + case 3: + check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, dprop, seqcprop, geo, lt,8); + break; + } + break; + + case 22://-sigma c zero + switch(np){ + case 1: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqdprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqcprop, geo, lt,8); + break; + } + break; + + case 23://-xi c plus + switch(np){ + case 0: + check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sequprop, sprop, cprop, geo, lt,8); + break; + case 2: + check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, seqsprop, cprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqcprop, geo, lt,8); + break; + } + break; - case 24://-xi prime c plus - switch(np){ - case 0: - check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, sequprop, geo, lt,9); - break; - case 2: - check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqsprop, geo, lt,9); - break; - case 3: - check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqcprop, geo, lt,9); - break; - } - break; + case 24://-xi prime c plus + switch(np){ + case 0: + check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, sequprop, geo, lt,8); + break; + case 2: + check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqsprop, geo, lt,8); + break; + case 3: + check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, sprop, seqcprop, geo, lt,8); + break; + } + break; - case 25://-xi c zero - switch(np){ - case 1: - check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, seqdprop, sprop, cprop, geo, lt,9); - break; - case 2: - check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, seqsprop, cprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqcprop, geo, lt,9); - break; - } - break; - - case 26://-xi prime c zero - switch(np){ - case 1: - check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, seqdprop, geo, lt,9); - break; - case 2: - check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqsprop, geo, lt,9); - break; - case 3: - check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqcprop, geo, lt,9); - break; - } - break; - - case 27://-omega c zero - switch(np){ - case 2: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, seqsprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, seqcprop, geo, lt,9); - break; - } - break; -//-------------------------------------------------------------------------------- - case 28://-sigma star c plus plus - switch(np){ - case 0: - check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, sequprop, geo, lt,0); - check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, sequprop, geo, lt,1); - check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, sequprop, geo, lt,2); - check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, sequprop, geo, lt,3); - check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, sequprop, geo, lt,4); - check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, sequprop, geo, lt,5); - check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, sequprop, geo, lt,6); - check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, sequprop, geo, lt,7); - check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, seqcprop, geo, lt,0); - check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, seqcprop, geo, lt,1); - check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, seqcprop, geo, lt,2); - check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, seqcprop, geo, lt,3); - check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, seqcprop, geo, lt,4); - check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, seqcprop, geo, lt,5); - check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, seqcprop, geo, lt,6); - check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, seqcprop, geo, lt,7); - check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 25://-xi c zero + switch(np){ + case 1: + check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, seqdprop, sprop, cprop, geo, lt,8); + break; + case 2: + check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, seqsprop, cprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqcprop, geo, lt,8); + break; + } + break; + + case 26://-xi prime c zero + switch(np){ + case 1: + check += qcd_f123f321_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, seqdprop, geo, lt,8); + break; + case 2: + check += qcd_f123f321_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqsprop, geo, lt,8); + break; + case 3: + check += qcd_f123f321_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, sprop, seqcprop, geo, lt,8); + break; + } + break; + + case 27://-omega c zero + switch(np){ + case 2: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, seqsprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, seqcprop, geo, lt,8); + break; + } + break; + //-------------------------------------------------------------------------------- + case 28://-sigma star c plus plus + switch(np){ + case 0: + check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, sequprop, geo, lt,0); + check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, sequprop, geo, lt,1); + check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, sequprop, geo, lt,2); + check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, sequprop, geo, lt,3); + check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, sequprop, geo, lt,4); + check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, sequprop, geo, lt,5); + check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, sequprop, geo, lt,6); + check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, sequprop, geo, lt,7); + check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, sequprop, geo, lt,8); + break; + case 3: + check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, seqcprop, geo, lt,0); + check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, seqcprop, geo, lt,1); + check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, seqcprop, geo, lt,2); + check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, seqcprop, geo, lt,3); + check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, seqcprop, geo, lt,4); + check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, seqcprop, geo, lt,5); + check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, seqcprop, geo, lt,6); + check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, seqcprop, geo, lt,7); + check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, seqcprop, geo, lt,8); + break; + } + break; - case 29://-sigma star c plus - switch(np){ - case 0: - check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, sequprop, geo, lt,0,0); - check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, sequprop, geo, lt,1,0); - check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, sequprop, geo, lt,2,0); - check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, sequprop, geo, lt,3,0); - check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, sequprop, geo, lt,4,0); - check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, sequprop, geo, lt,5,0); - check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, sequprop, geo, lt,6,0); - check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, sequprop, geo, lt,7,0); - check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, sequprop, geo, lt,8,0); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 1: - check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, seqdprop, geo, lt,0,0); - check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, seqdprop, geo, lt,1,0); - check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, seqdprop, geo, lt,2,0); - check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, seqdprop, geo, lt,3,0); - check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, seqdprop, geo, lt,4,0); - check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, seqdprop, geo, lt,5,0); - check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, seqdprop, geo, lt,6,0); - check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, seqdprop, geo, lt,7,0); - check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, seqdprop, geo, lt,8,0); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, seqcprop, geo, lt,0,0); - check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, seqcprop, geo, lt,1,0); - check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, seqcprop, geo, lt,2,0); - check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, seqcprop, geo, lt,3,0); - check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, seqcprop, geo, lt,4,0); - check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, seqcprop, geo, lt,5,0); - check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, seqcprop, geo, lt,6,0); - check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, seqcprop, geo, lt,7,0); - check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, seqcprop, geo, lt,8,0); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 29://-sigma star c plus + switch(np){ + case 0: + check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, sequprop, geo, lt,0,0); + check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, sequprop, geo, lt,1,0); + check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, sequprop, geo, lt,2,0); + check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, sequprop, geo, lt,3,0); + check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, sequprop, geo, lt,4,0); + check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, sequprop, geo, lt,5,0); + check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, sequprop, geo, lt,6,0); + check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, sequprop, geo, lt,7,0); + check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, sequprop, geo, lt,8,0); + break; + case 1: + check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, seqdprop, geo, lt,0,0); + check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, seqdprop, geo, lt,1,0); + check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, seqdprop, geo, lt,2,0); + check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, seqdprop, geo, lt,3,0); + check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, seqdprop, geo, lt,4,0); + check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, seqdprop, geo, lt,5,0); + check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, seqdprop, geo, lt,6,0); + check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, seqdprop, geo, lt,7,0); + check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, seqdprop, geo, lt,8,0); + break; + case 3: + check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, dprop, seqcprop, geo, lt,0,0); + check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, dprop, seqcprop, geo, lt,1,0); + check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, dprop, seqcprop, geo, lt,2,0); + check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, dprop, seqcprop, geo, lt,3,0); + check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, dprop, seqcprop, geo, lt,4,0); + check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, dprop, seqcprop, geo, lt,5,0); + check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, dprop, seqcprop, geo, lt,6,0); + check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, dprop, seqcprop, geo, lt,7,0); + check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, dprop, seqcprop, geo, lt,8,0); + break; + } + break; - case 30://-sigma star c zero - switch(np){ - case 1: - check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, seqdprop, geo, lt,0); - check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, seqdprop, geo, lt,1); - check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, seqdprop, geo, lt,2); - check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, seqdprop, geo, lt,3); - check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, seqdprop, geo, lt,4); - check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, seqdprop, geo, lt,5); - check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, seqdprop, geo, lt,6); - check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, seqdprop, geo, lt,7); - check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, seqcprop, geo, lt,0); - check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, seqcprop, geo, lt,1); - check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, seqcprop, geo, lt,2); - check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, seqcprop, geo, lt,3); - check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, seqcprop, geo, lt,4); - check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, seqcprop, geo, lt,5); - check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, seqcprop, geo, lt,6); - check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, seqcprop, geo, lt,7); - check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 30://-sigma star c zero + switch(np){ + case 1: + check = qcd_sigmas4_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, seqdprop, geo, lt,0); + check += qcd_sigmas4_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, seqdprop, geo, lt,1); + check += qcd_sigmas4_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, seqdprop, geo, lt,2); + check += qcd_sigmas4_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, seqdprop, geo, lt,3); + check += qcd_sigmas4_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, seqdprop, geo, lt,4); + check += qcd_sigmas4_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, seqdprop, geo, lt,5); + check += qcd_sigmas4_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, seqdprop, geo, lt,6); + check += qcd_sigmas4_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, seqdprop, geo, lt,7); + check += qcd_sigmas4_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, seqdprop, geo, lt,8); + break; + case 3: + check = qcd_sigmas4_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, seqcprop, geo, lt,0); + check += qcd_sigmas4_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, seqcprop, geo, lt,1); + check += qcd_sigmas4_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, seqcprop, geo, lt,2); + check += qcd_sigmas4_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, seqcprop, geo, lt,3); + check += qcd_sigmas4_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, seqcprop, geo, lt,4); + check += qcd_sigmas4_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, seqcprop, geo, lt,5); + check += qcd_sigmas4_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, seqcprop, geo, lt,6); + check += qcd_sigmas4_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, seqcprop, geo, lt,7); + check += qcd_sigmas4_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, seqcprop, geo, lt,8); + break; + } + break; - case 31://-xi star c plus - switch(np){ - case 0: - check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, sequprop, cprop, geo, lt,0); - check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, sequprop, cprop, geo, lt,1); - check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, sequprop, cprop, geo, lt,2); - check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, sequprop, cprop, geo, lt,3); - check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, sequprop, cprop, geo, lt,4); - check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, sequprop, cprop, geo, lt,5); - check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, sequprop, cprop, geo, lt,6); - check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, sequprop, cprop, geo, lt,7); - check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, sequprop, cprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, seqsprop, uprop, cprop, geo, lt,0); - check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, seqsprop, uprop, cprop, geo, lt,1); - check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, seqsprop, uprop, cprop, geo, lt,2); - check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, seqsprop, uprop, cprop, geo, lt,3); - check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, seqsprop, uprop, cprop, geo, lt,4); - check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, seqsprop, uprop, cprop, geo, lt,5); - check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, seqsprop, uprop, cprop, geo, lt,6); - check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, seqsprop, uprop, cprop, geo, lt,7); - check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, seqsprop, uprop, cprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqcprop, geo, lt,0); - check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqcprop, geo, lt,1); - check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqcprop, geo, lt,2); - check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqcprop, geo, lt,3); - check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqcprop, geo, lt,4); - check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqcprop, geo, lt,5); - check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqcprop, geo, lt,6); - check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqcprop, geo, lt,7); - check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 32://-xi star c zero - switch(np){ - case 1: - check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, seqdprop, cprop, geo, lt,0); - check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, seqdprop, cprop, geo, lt,1); - check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, seqdprop, cprop, geo, lt,2); - check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, seqdprop, cprop, geo, lt,3); - check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, seqdprop, cprop, geo, lt,4); - check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, seqdprop, cprop, geo, lt,5); - check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, seqdprop, cprop, geo, lt,6); - check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, seqdprop, cprop, geo, lt,7); - check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, seqdprop, cprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, seqsprop, dprop, cprop, geo, lt,0); - check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, seqsprop, dprop, cprop, geo, lt,1); - check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, seqsprop, dprop, cprop, geo, lt,2); - check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, seqsprop, dprop, cprop, geo, lt,3); - check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, seqsprop, dprop, cprop, geo, lt,4); - check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, seqsprop, dprop, cprop, geo, lt,5); - check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, seqsprop, dprop, cprop, geo, lt,6); - check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, seqsprop, dprop, cprop, geo, lt,7); - check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, seqsprop, dprop, cprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqcprop, geo, lt,0); - check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqcprop, geo, lt,1); - check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqcprop, geo, lt,2); - check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqcprop, geo, lt,3); - check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqcprop, geo, lt,4); - check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqcprop, geo, lt,5); - check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqcprop, geo, lt,6); - check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqcprop, geo, lt,7); - check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; + case 31://-xi star c plus + switch(np){ + case 0: + check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, sequprop, cprop, geo, lt,0); + check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, sequprop, cprop, geo, lt,1); + check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, sequprop, cprop, geo, lt,2); + check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, sequprop, cprop, geo, lt,3); + check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, sequprop, cprop, geo, lt,4); + check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, sequprop, cprop, geo, lt,5); + check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, sequprop, cprop, geo, lt,6); + check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, sequprop, cprop, geo, lt,7); + check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, sequprop, cprop, geo, lt,8); + break; + case 2: + check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, seqsprop, uprop, cprop, geo, lt,0); + check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, seqsprop, uprop, cprop, geo, lt,1); + check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, seqsprop, uprop, cprop, geo, lt,2); + check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, seqsprop, uprop, cprop, geo, lt,3); + check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, seqsprop, uprop, cprop, geo, lt,4); + check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, seqsprop, uprop, cprop, geo, lt,5); + check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, seqsprop, uprop, cprop, geo, lt,6); + check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, seqsprop, uprop, cprop, geo, lt,7); + check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, seqsprop, uprop, cprop, geo, lt,8); + break; + case 3: + check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqcprop, geo, lt,0); + check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqcprop, geo, lt,1); + check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqcprop, geo, lt,2); + check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqcprop, geo, lt,3); + check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqcprop, geo, lt,4); + check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqcprop, geo, lt,5); + check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqcprop, geo, lt,6); + check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqcprop, geo, lt,7); + check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqcprop, geo, lt,8); + break; + } + break; + + case 32://-xi star c zero + switch(np){ + case 1: + check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, seqdprop, cprop, geo, lt,0); + check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, seqdprop, cprop, geo, lt,1); + check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, seqdprop, cprop, geo, lt,2); + check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, seqdprop, cprop, geo, lt,3); + check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, seqdprop, cprop, geo, lt,4); + check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, seqdprop, cprop, geo, lt,5); + check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, seqdprop, cprop, geo, lt,6); + check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, seqdprop, cprop, geo, lt,7); + check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, seqdprop, cprop, geo, lt,8); + break; + case 2: + check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, seqsprop, dprop, cprop, geo, lt,0); + check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, seqsprop, dprop, cprop, geo, lt,1); + check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, seqsprop, dprop, cprop, geo, lt,2); + check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, seqsprop, dprop, cprop, geo, lt,3); + check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, seqsprop, dprop, cprop, geo, lt,4); + check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, seqsprop, dprop, cprop, geo, lt,5); + check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, seqsprop, dprop, cprop, geo, lt,6); + check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, seqsprop, dprop, cprop, geo, lt,7); + check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, seqsprop, dprop, cprop, geo, lt,8); + break; + case 3: + check = qcd_f1f2f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqcprop, geo, lt,0); + check += qcd_f1f2f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqcprop, geo, lt,1); + check += qcd_f1f2f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqcprop, geo, lt,2); + check += qcd_f1f2f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqcprop, geo, lt,3); + check += qcd_f1f2f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqcprop, geo, lt,4); + check += qcd_f1f2f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqcprop, geo, lt,5); + check += qcd_f1f2f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqcprop, geo, lt,6); + check += qcd_f1f2f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqcprop, geo, lt,7); + check += qcd_f1f2f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqcprop, geo, lt,8); + break; + } + break; - case 33://-omega star c zero - switch(np){ - case 2: - check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,0); - check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,1); - check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,2); - check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,3); - check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,4); - check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,5); - check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,6); - check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,7); - check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,0); - check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,1); - check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,2); - check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,3); - check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,4); - check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,5); - check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,6); - check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,7); - check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; -//----------------------------------------------------------------------------------- - case 34://-xi c c plus plus - switch(np){ - case 0: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, uprop, sequprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, uprop, seqcprop, geo, lt,9); - break; - } - break; - - case 35://-xi c c plus - switch(np){ - case 1: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, dprop, seqdprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, dprop, seqcprop, geo, lt,9); - break; - } - break; - - case 36://-omega c c plus - switch(np){ - case 2: - check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, seqsprop, geo, lt,9); - break; - case 3: - check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, seqcprop, geo, lt,9); - break; - } - break; -//----------------------------------------------------------------------------------- - case 37://-xi star c c plus plus - switch(np){ - case 0: - check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,0); - check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,1); - check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,2); - check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,3); - check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,4); - check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,5); - check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,6); - check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,7); - check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,0); - check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,1); - check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,2); - check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,3); - check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,4); - check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,5); - check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,6); - check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,7); - check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 38://-xi star c c plus - switch(np){ - case 1: - check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,0); - check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,1); - check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,2); - check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,3); - check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,4); - check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,5); - check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,6); - check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,7); - check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,0); - check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,1); - check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,2); - check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,3); - check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,4); - check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,5); - check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,6); - check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,7); - check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 39://-omega star c c plus - switch(np){ - case 2: - check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,0); - check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,1); - check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,2); - check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,3); - check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,4); - check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,5); - check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,6); - check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,7); - check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,0); - check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,1); - check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,2); - check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,3); - check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,4); - check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,5); - check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,6); - check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,7); - check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; -//----------------------------------------------------------------------------------- - case 40://-omega c c c plus plus - check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, seqcprop, geo, lt,0); - check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, seqcprop, geo, lt,1); - check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, seqcprop, geo, lt,2); - check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, seqcprop, geo, lt,3); - check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, seqcprop, geo, lt,4); - check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, seqcprop, geo, lt,5); - check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, seqcprop, geo, lt,6); - check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, seqcprop, geo, lt,7); - check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; -//----------------------------------------------------------------------------------- - case 41://-proton extra - switch(np){ - case 0: - check += qcd_pnextra_f1_3pt(ctr, cgcg_ind, cgcg_val, block_pr, uprop, dprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_pnextra_f2_3pt(ctr, cgcg_ind, cgcg_val, block_pr, uprop, dprop, seqdprop, geo, lt,9); - break; - } - break; - - case 42://-neutron extra - switch(np){ - case 0: - check += qcd_pnextra_f2_3pt(ctr, cgcg_ind, cgcg_val, block_pr, dprop, uprop, sequprop, geo, lt,9); - break; - case 1: - check += qcd_pnextra_f1_3pt(ctr, cgcg_ind, cgcg_val, block_pr, dprop, uprop, seqdprop, geo, lt,9); - break; - } - break; -//----------------------------------------------------------------------------------- - case 43://-xistar_zero extra - switch(np){ - case 0: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 44://-xistar_minus extra - switch(np){ - case 1: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; -//----------------------------------------------------------------------------------- - case 45://-xi_cplus extra - switch(np){ - case 0: - check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, sequprop, geo, lt,9); - break; - case 2: - check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqsprop, geo, lt,9); - break; - case 3: - check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, uprop, seqcprop, geo, lt,9); - break; - } - break; - - case 46://-xi_czero extra - switch(np){ - case 1: - check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, seqdprop, geo, lt,9); - break; - case 2: - check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqsprop, geo, lt,9); - break; - case 3: - check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, seqcprop, geo, lt,9); - break; - } - break; -//----------------------------------------------------------------------------------- - case 47://-xistar_cplus extra - switch(np){ - case 0: - check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, sequprop, geo, lt,0,1); - check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, sequprop, geo, lt,1,1); - check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, sequprop, geo, lt,2,1); - check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, sequprop, geo, lt,3,1); - check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, sequprop, geo, lt,4,1); - check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, sequprop, geo, lt,5,1); - check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, sequprop, geo, lt,6,1); - check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, sequprop, geo, lt,7,1); - check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, sequprop, geo, lt,8,1); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, seqsprop, geo, lt,0,1); - check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, seqsprop, geo, lt,1,1); - check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, seqsprop, geo, lt,2,1); - check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, seqsprop, geo, lt,3,1); - check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, seqsprop, geo, lt,4,1); - check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, seqsprop, geo, lt,5,1); - check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, seqsprop, geo, lt,6,1); - check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, seqsprop, geo, lt,7,1); - check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, seqsprop, geo, lt,8,1); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, seqcprop, geo, lt,0,1); - check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, seqcprop, geo, lt,1,1); - check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, seqcprop, geo, lt,2,1); - check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, seqcprop, geo, lt,3,1); - check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, seqcprop, geo, lt,4,1); - check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, seqcprop, geo, lt,5,1); - check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, seqcprop, geo, lt,6,1); - check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, seqcprop, geo, lt,7,1); - check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, seqcprop, geo, lt,8,1); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 48://-xistar_czero extra - switch(np){ - case 1: - check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqdprop, geo, lt,0,1); - check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqdprop, geo, lt,1,1); - check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqdprop, geo, lt,2,1); - check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqdprop, geo, lt,3,1); - check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqdprop, geo, lt,4,1); - check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqdprop, geo, lt,5,1); - check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqdprop, geo, lt,6,1); - check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqdprop, geo, lt,7,1); - check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqdprop, geo, lt,8,1); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 2: - check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, seqsprop, geo, lt,0,1); - check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, seqsprop, geo, lt,1,1); - check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, seqsprop, geo, lt,2,1); - check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, seqsprop, geo, lt,3,1); - check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, seqsprop, geo, lt,4,1); - check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, seqsprop, geo, lt,5,1); - check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, seqsprop, geo, lt,6,1); - check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, seqsprop, geo, lt,7,1); - check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, seqsprop, geo, lt,8,1); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, seqcprop, geo, lt,0,1); - check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, seqcprop, geo, lt,1,1); - check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, seqcprop, geo, lt,2,1); - check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, seqcprop, geo, lt,3,1); - check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, seqcprop, geo, lt,4,1); - check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, seqcprop, geo, lt,5,1); - check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, seqcprop, geo, lt,6,1); - check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, seqcprop, geo, lt,7,1); - check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, seqcprop, geo, lt,8,1); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; -//----------------------------------------------------------------------------------- - case 49://-omegastar_czero extra - switch(np){ - case 2: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 50://-xistar_ccplusplus extra - switch(np){ - case 0: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 51://-xistar_ccplus extra - switch(np){ - case 1: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - - case 52://-omegastar_ccplus extra - switch(np){ - case 2: - check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,0); - check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,1); - check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,2); - check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,3); - check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,4); - check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,5); - check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,6); - check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,7); - check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - case 3: - check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,0); - check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,1); - check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,2); - check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,3); - check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,4); - check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,5); - check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,6); - check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,7); - check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,8); - - check += qcd_projector32_3pt(gamma12,gamma13,gamma23,block_pr,geo); - break; - } - break; - -//----------------------------------------------------------------------------------- - }//-main switch + case 33://-omega star c zero + switch(np){ + case 2: + check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,0); + check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,1); + check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,2); + check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,3); + check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,4); + check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,5); + check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,6); + check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,7); + check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,8); + break; + case 3: + check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,0); + check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,1); + check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,2); + check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,3); + check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,4); + check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,5); + check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,6); + check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,7); + check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,8); + break; + } + break; + //----------------------------------------------------------------------------------- + case 34://-xi c c plus plus + switch(np){ + case 0: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, uprop, sequprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, uprop, seqcprop, geo, lt,8); + break; + } + break; - - for(k=0;k<5;k++) check += qcd_projector_3pt(block,block_pr,geo,k); //--project the blocks + case 35://-xi c c plus + switch(np){ + case 1: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, dprop, seqdprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, dprop, seqcprop, geo, lt,8); + break; + } + break; + + case 36://-omega c c plus + switch(np){ + case 2: + check += qcd_f1f2f1_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, seqsprop, geo, lt,8); + break; + case 3: + check += qcd_f1f2f1_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, cprop, sprop, seqcprop, geo, lt,8); + break; + } + break; + //----------------------------------------------------------------------------------- + case 37://-xi star c c plus plus + switch(np){ + case 0: + check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,0); + check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,1); + check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,2); + check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,3); + check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,4); + check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,5); + check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,6); + check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,7); + check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,8); + break; + case 3: + check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,0); + check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,1); + check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,2); + check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,3); + check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,4); + check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,5); + check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,6); + check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,7); + check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,8); + break; + } + break; - if(geo->myid==0){ - if(particles32[p_id]){ - if ( check==15 ) printf("ROUTINE %s part %s t=%d\n",particle_names[p_id],particles_parts[p_id][np], lt); - } - else{ - if ( check==6 ) printf("ROUTINE %s part %s t=%d\n",particle_names[p_id],particles_parts[p_id][np], lt); - } - } - - if( particles32[p_id] ){ - for(i=0;i<10;i++) - for(j=0;j<4;j++) - for(k=0;k<4;k++){ - free(block_pr[i][j][k]); - } - } - else{ - for(j=0;j<4;j++) - for(k=0;k<4;k++){ - free(block_pr[9][j][k]); - } - } + case 38://-xi star c c plus + switch(np){ + case 1: + check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,0); + check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,1); + check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,2); + check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,3); + check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,4); + check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,5); + check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,6); + check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,7); + check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,8); + break; + case 3: + check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,0); + check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,1); + check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,2); + check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,3); + check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,4); + check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,5); + check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,6); + check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,7); + check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,8); + break; + } + break; + + case 39://-omega star c c plus + switch(np){ + case 2: + check = qcd_f1f2f1_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,0); + check += qcd_f1f2f1_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,1); + check += qcd_f1f2f1_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,2); + check += qcd_f1f2f1_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,3); + check += qcd_f1f2f1_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,4); + check += qcd_f1f2f1_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,5); + check += qcd_f1f2f1_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,6); + check += qcd_f1f2f1_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,7); + check += qcd_f1f2f1_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,8); + break; + case 3: + check = qcd_f1f2f1_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,0); + check += qcd_f1f2f1_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,1); + check += qcd_f1f2f1_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,2); + check += qcd_f1f2f1_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,3); + check += qcd_f1f2f1_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,4); + check += qcd_f1f2f1_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,5); + check += qcd_f1f2f1_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,6); + check += qcd_f1f2f1_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,7); + check += qcd_f1f2f1_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,8); + + + break; + } + break; + //----------------------------------------------------------------------------------- + case 40://-omega c c c plus plus + check = qcd_f1f1f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, seqcprop, geo, lt,0); + check += qcd_f1f1f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, seqcprop, geo, lt,1); + check += qcd_f1f1f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, seqcprop, geo, lt,2); + check += qcd_f1f1f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, seqcprop, geo, lt,3); + check += qcd_f1f1f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, seqcprop, geo, lt,4); + check += qcd_f1f1f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, seqcprop, geo, lt,5); + check += qcd_f1f1f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, seqcprop, geo, lt,6); + check += qcd_f1f1f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, seqcprop, geo, lt,7); + check += qcd_f1f1f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, seqcprop, geo, lt,8); + break; + //----------------------------------------------------------------------------------- + case 41://-proton extra + switch(np){ + case 0: + check += qcd_pnextra_f1_3pt(ctr, cgcg_ind, cgcg_val, block_pr, uprop, dprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_pnextra_f2_3pt(ctr, cgcg_ind, cgcg_val, block_pr, uprop, dprop, seqdprop, geo, lt,8); + break; + } + break; + + case 42://-neutron extra + switch(np){ + case 0: + check += qcd_pnextra_f2_3pt(ctr, cgcg_ind, cgcg_val, block_pr, dprop, uprop, sequprop, geo, lt,8); + break; + case 1: + check += qcd_pnextra_f1_3pt(ctr, cgcg_ind, cgcg_val, block_pr, dprop, uprop, seqdprop, geo, lt,8); + break; + } + break; + //----------------------------------------------------------------------------------- + case 43://-xistar_zero extra + switch(np){ + case 0: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); + break; + case 2: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); + break; + } + break; + + case 44://-xistar_minus extra + switch(np){ + case 1: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); + break; + case 2: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + //----------------------------------------------------------------------------------- + case 45://-xi_cplus extra + switch(np){ + case 0: + check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, sequprop, geo, lt,8); + break; + case 2: + check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, uprop, cprop, seqsprop, geo, lt,8); + break; + case 3: + check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, uprop, seqcprop, geo, lt,8); + break; + } + break; + + case 46://-xi_czero extra + switch(np){ + case 1: + check += qcd_lambdas_f2_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, cprop, seqdprop, geo, lt,8); + break; + case 2: + check += qcd_lambdas_f1_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, dprop, cprop, seqsprop, geo, lt,8); + break; + case 3: + check += qcd_lambdas_f3_3pt(ctr5, cg5cg5_ind, cg5cg5_val, block_pr, sprop, dprop, seqcprop, geo, lt,8); + break; + } + break; + //----------------------------------------------------------------------------------- + case 47://-xistar_cplus extra + switch(np){ + case 0: + check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, sequprop, geo, lt,0,1); + check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, sequprop, geo, lt,1,1); + check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, sequprop, geo, lt,2,1); + check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, sequprop, geo, lt,3,1); + check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, sequprop, geo, lt,4,1); + check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, sequprop, geo, lt,5,1); + check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, sequprop, geo, lt,6,1); + check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, sequprop, geo, lt,7,1); + check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, sequprop, geo, lt,8,1); + break; + case 2: + check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, cprop, seqsprop, geo, lt,0,1); + check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, cprop, seqsprop, geo, lt,1,1); + check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, cprop, seqsprop, geo, lt,2,1); + check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, cprop, seqsprop, geo, lt,3,1); + check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, cprop, seqsprop, geo, lt,4,1); + check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, cprop, seqsprop, geo, lt,5,1); + check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, cprop, seqsprop, geo, lt,6,1); + check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, cprop, seqsprop, geo, lt,7,1); + check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, cprop, seqsprop, geo, lt,8,1); + break; + case 3: + check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, uprop, sprop, seqcprop, geo, lt,0,1); + check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, uprop, sprop, seqcprop, geo, lt,1,1); + check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, uprop, sprop, seqcprop, geo, lt,2,1); + check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, uprop, sprop, seqcprop, geo, lt,3,1); + check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, uprop, sprop, seqcprop, geo, lt,4,1); + check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, uprop, sprop, seqcprop, geo, lt,5,1); + check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, uprop, sprop, seqcprop, geo, lt,6,1); + check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, uprop, sprop, seqcprop, geo, lt,7,1); + check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, uprop, sprop, seqcprop, geo, lt,8,1); + break; + } + break; + + case 48://-xistar_czero extra + switch(np){ + case 1: + check = qcd_sigmas2_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqdprop, geo, lt,0,1); + check += qcd_sigmas2_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqdprop, geo, lt,1,1); + check += qcd_sigmas2_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqdprop, geo, lt,2,1); + check += qcd_sigmas2_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqdprop, geo, lt,3,1); + check += qcd_sigmas2_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqdprop, geo, lt,4,1); + check += qcd_sigmas2_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqdprop, geo, lt,5,1); + check += qcd_sigmas2_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqdprop, geo, lt,6,1); + check += qcd_sigmas2_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqdprop, geo, lt,7,1); + check += qcd_sigmas2_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqdprop, geo, lt,8,1); + + + break; + case 2: + check = qcd_sigmas2_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, cprop, seqsprop, geo, lt,0,1); + check += qcd_sigmas2_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, cprop, seqsprop, geo, lt,1,1); + check += qcd_sigmas2_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, cprop, seqsprop, geo, lt,2,1); + check += qcd_sigmas2_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, cprop, seqsprop, geo, lt,3,1); + check += qcd_sigmas2_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, cprop, seqsprop, geo, lt,4,1); + check += qcd_sigmas2_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, cprop, seqsprop, geo, lt,5,1); + check += qcd_sigmas2_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, cprop, seqsprop, geo, lt,6,1); + check += qcd_sigmas2_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, cprop, seqsprop, geo, lt,7,1); + check += qcd_sigmas2_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, cprop, seqsprop, geo, lt,8,1); + break; + case 3: + check = qcd_sigmas2_f3_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, dprop, sprop, seqcprop, geo, lt,0,1); + check += qcd_sigmas2_f3_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, dprop, sprop, seqcprop, geo, lt,1,1); + check += qcd_sigmas2_f3_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, dprop, sprop, seqcprop, geo, lt,2,1); + check += qcd_sigmas2_f3_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, dprop, sprop, seqcprop, geo, lt,3,1); + check += qcd_sigmas2_f3_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, dprop, sprop, seqcprop, geo, lt,4,1); + check += qcd_sigmas2_f3_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, dprop, sprop, seqcprop, geo, lt,5,1); + check += qcd_sigmas2_f3_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, dprop, sprop, seqcprop, geo, lt,6,1); + check += qcd_sigmas2_f3_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, dprop, sprop, seqcprop, geo, lt,7,1); + check += qcd_sigmas2_f3_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, dprop, sprop, seqcprop, geo, lt,8,1); + break; + } + break; + //----------------------------------------------------------------------------------- + case 49://-omegastar_czero extra + switch(np){ + case 2: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqsprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqsprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqsprop, geo, lt,8); + break; + case 3: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, cprop, seqcprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, cprop, seqcprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, cprop, seqcprop, geo, lt,8); + break; + } + break; + + case 50://-xistar_ccplusplus extra + switch(np){ + case 0: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, sequprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, sequprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, sequprop, geo, lt,8); + break; + case 3: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, uprop, seqcprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, uprop, seqcprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, uprop, seqcprop, geo, lt,8); + break; + } + break; + + case 51://-xistar_ccplus extra + switch(np){ + case 1: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqdprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqdprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqdprop, geo, lt,8); + break; + case 3: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, dprop, seqcprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, dprop, seqcprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, dprop, seqcprop, geo, lt,8); + break; + } + break; + + case 52://-omegastar_ccplus extra + switch(np){ + case 2: + check = qcd_deltas_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,0); + check += qcd_deltas_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,1); + check += qcd_deltas_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,2); + check += qcd_deltas_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,3); + check += qcd_deltas_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,4); + check += qcd_deltas_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,5); + check += qcd_deltas_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqsprop, geo, lt,6); + check += qcd_deltas_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqsprop, geo, lt,7); + check += qcd_deltas_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqsprop, geo, lt,8); + break; + case 3: + check = qcd_deltas_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,0); + check += qcd_deltas_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,1); + check += qcd_deltas_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,2); + check += qcd_deltas_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,3); + check += qcd_deltas_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,4); + check += qcd_deltas_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,5); + check += qcd_deltas_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, cprop, sprop, seqcprop, geo, lt,6); + check += qcd_deltas_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, cprop, sprop, seqcprop, geo, lt,7); + check += qcd_deltas_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, cprop, sprop, seqcprop, geo, lt,8); + break; + } + break; + + //----------------------------------------------------------------------------------- + + case 53://-xistar_zero extra 11 + switch(np){ + case 0: + check = qcd_xistar_extra11_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); + check += qcd_xistar_extra11_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); + check += qcd_xistar_extra11_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); + check += qcd_xistar_extra11_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); + check += qcd_xistar_extra11_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); + check += qcd_xistar_extra11_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); + check += qcd_xistar_extra11_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); + check += qcd_xistar_extra11_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); + check += qcd_xistar_extra11_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra11_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra11_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra11_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra11_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra11_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra11_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra11_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra11_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra11_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); + break; + } + break; + + case 54://-xistar_zero extra 12 + switch(np){ + case 0: + check = qcd_xistar_extra12_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); + check += qcd_xistar_extra12_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); + check += qcd_xistar_extra12_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); + check += qcd_xistar_extra12_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); + check += qcd_xistar_extra12_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); + check += qcd_xistar_extra12_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); + check += qcd_xistar_extra12_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); + check += qcd_xistar_extra12_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); + check += qcd_xistar_extra12_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra12_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra12_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra12_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra12_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra12_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra12_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra12_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra12_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra12_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); + break; + } + break; + case 55://-xistar_zero extra 21 + switch(np){ + case 0: + check = qcd_xistar_extra21_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); + check += qcd_xistar_extra21_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); + check += qcd_xistar_extra21_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); + check += qcd_xistar_extra21_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); + check += qcd_xistar_extra21_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); + check += qcd_xistar_extra21_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); + check += qcd_xistar_extra21_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); + check += qcd_xistar_extra21_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); + check += qcd_xistar_extra21_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra21_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra21_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra21_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra21_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra21_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra21_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra21_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra21_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra21_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); + break; + } + break; + case 56://-xistar_zero extra 22 + switch(np){ + case 0: + check = qcd_xistar_extra22_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,0); + check += qcd_xistar_extra22_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,1); + check += qcd_xistar_extra22_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,2); + check += qcd_xistar_extra22_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,3); + check += qcd_xistar_extra22_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,4); + check += qcd_xistar_extra22_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,5); + check += qcd_xistar_extra22_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, sequprop, geo, lt,6); + check += qcd_xistar_extra22_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, sequprop, geo, lt,7); + check += qcd_xistar_extra22_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, sequprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra22_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra22_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra22_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra22_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra22_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra22_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra22_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, uprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra22_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, uprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra22_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, uprop, seqsprop, geo, lt,8); + break; + } + break; + + //----------------------------------------------------------------------------------- + + case 57://-xistar_minus extra 11 + switch(np){ + case 1: + check = qcd_xistar_extra11_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); + check += qcd_xistar_extra11_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); + check += qcd_xistar_extra11_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); + check += qcd_xistar_extra11_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); + check += qcd_xistar_extra11_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); + check += qcd_xistar_extra11_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); + check += qcd_xistar_extra11_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); + check += qcd_xistar_extra11_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); + check += qcd_xistar_extra11_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra11_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra11_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra11_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra11_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra11_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra11_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra11_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra11_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra11_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + + case 58://-xistar_minus extra 12 + switch(np){ + case 1: + check = qcd_xistar_extra12_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); + check += qcd_xistar_extra12_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); + check += qcd_xistar_extra12_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); + check += qcd_xistar_extra12_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); + check += qcd_xistar_extra12_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); + check += qcd_xistar_extra12_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); + check += qcd_xistar_extra12_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); + check += qcd_xistar_extra12_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); + check += qcd_xistar_extra12_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra12_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra12_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra12_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra12_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra12_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra12_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra12_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra12_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra12_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + case 59://-xistar_minus extra 21 + switch(np){ + case 1: + check = qcd_xistar_extra21_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); + check += qcd_xistar_extra21_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); + check += qcd_xistar_extra21_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); + check += qcd_xistar_extra21_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); + check += qcd_xistar_extra21_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); + check += qcd_xistar_extra21_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); + check += qcd_xistar_extra21_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); + check += qcd_xistar_extra21_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); + check += qcd_xistar_extra21_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra21_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra21_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra21_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra21_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra21_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra21_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra21_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra21_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra21_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + case 60://-xistar_minus extra 22 + switch(np){ + case 1: + check = qcd_xistar_extra22_f2_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,0); + check += qcd_xistar_extra22_f2_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,1); + check += qcd_xistar_extra22_f2_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,2); + check += qcd_xistar_extra22_f2_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,3); + check += qcd_xistar_extra22_f2_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,4); + check += qcd_xistar_extra22_f2_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,5); + check += qcd_xistar_extra22_f2_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqdprop, geo, lt,6); + check += qcd_xistar_extra22_f2_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqdprop, geo, lt,7); + check += qcd_xistar_extra22_f2_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqdprop, geo, lt,8); + break; + case 2: + check = qcd_xistar_extra22_f1_3pt(ctr1 , cg1cg1_ind, cg1cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,0); + check += qcd_xistar_extra22_f1_3pt(ctr12, cg1cg2_ind, cg1cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,1); + check += qcd_xistar_extra22_f1_3pt(ctr13, cg1cg3_ind, cg1cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,2); + check += qcd_xistar_extra22_f1_3pt(ctr21, cg2cg1_ind, cg2cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,3); + check += qcd_xistar_extra22_f1_3pt(ctr2, cg2cg2_ind, cg2cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,4); + check += qcd_xistar_extra22_f1_3pt(ctr23, cg2cg3_ind, cg2cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,5); + check += qcd_xistar_extra22_f1_3pt(ctr31, cg3cg1_ind, cg3cg1_val, block_pr, sprop, dprop, seqsprop, geo, lt,6); + check += qcd_xistar_extra22_f1_3pt(ctr32, cg3cg2_ind, cg3cg2_val, block_pr, sprop, dprop, seqsprop, geo, lt,7); + check += qcd_xistar_extra22_f1_3pt(ctr3 , cg3cg3_ind, cg3cg3_val, block_pr, sprop, dprop, seqsprop, geo, lt,8); + break; + } + break; + + }//-main switch + + if(particles32[p_id]){ + check += qcd_projector_pr32_3pt_spin32(block,block_pr,gamma12,gamma13,gamma23,geo); + if(check==10){ + if(geo->myid==0) printf("Particle: %s part %s t=%d\n",particle_names[p_id],particles_parts[p_id][np], lt); + } + } + else{ + check += qcd_projector_3pt_spin12(block,block_pr,geo); + if(check==2){ + if(geo->myid==0) printf("Particle: %s part %s t=%d\n",particle_names[p_id],particles_parts[p_id][np], lt); + } + } + + if( particles32[p_id] ){ + for(i=0;i<9;i++) + for(j=0;j<4;j++) + for(k=0;k<4;k++){ + free(block_pr[i][j][k]); + } + } + else{ + for(j=0;j<4;j++) + for(k=0;k<4;k++){ + free(block_pr[8][j][k]); + } + } }//--main function closes + diff --git a/lib/qcd_gamma.c b/lib/qcd_gamma.c index 4f29fe9..577e7c0 100644 --- a/lib/qcd_gamma.c +++ b/lib/qcd_gamma.c @@ -453,4 +453,20 @@ void qcd_gamma5Propagator(qcd_propagator *p) p->D[l][3][mu][c1][c2].re = -p->D[l][3][mu][c1][c2].re; p->D[l][3][mu][c1][c2].im = -p->D[l][3][mu][c1][c2].im; } -}//end qcd_gamma5Vector +}//end qcd_gamma5Propagator + +void qcd_Propagatorgamma5(qcd_propagator *p) +{ + qcd_uint_8 l; + qcd_uint_2 c1,c2,mu; + for(l=0; lgeo->lV; l++) + for(mu=0; mu<4; mu++) + for(c1=0; c1<3; c1++) + for(c2=0; c2<3; c2++) + { + p->D[l][mu][2][c1][c2].re = -p->D[l][mu][2][c1][c2].re; + p->D[l][mu][2][c1][c2].im = -p->D[l][mu][2][c1][c2].im; + p->D[l][mu][3][c1][c2].re = -p->D[l][mu][3][c1][c2].re; + p->D[l][mu][3][c1][c2].im = -p->D[l][mu][3][c1][c2].im; + } +}//end qcd_gamma5Propagator diff --git a/lib/qcd_init.c b/lib/qcd_init.c index 8d0bcff..1ee5c38 100644 --- a/lib/qcd_init.c +++ b/lib/qcd_init.c @@ -665,6 +665,49 @@ int qcd_initGaugeField(qcd_gaugeField *u, qcd_geometry *geo) }//end qcd_initGaugeField +// C. Kallidonis +// Function to set a gauge field to zero +int qcd_setZeroGaugeField(qcd_gaugeField *u, qcd_geometry *geo){ + + if(!u->initialized){ + fprintf(stderr,"Error in qcd_setZeroGaugeField! GaugeField not initialized\n"); + return 1; + } + + for(int v=0;vlV;v++){ + for(int mu=0;mu<4;mu++){ + for(int c1=0;c1<3;c1++){ + for(int c2=0;c2<3;c2++){ + u->D[v][mu][c1][c2] = (qcd_complex_16) {0.0,0.0}; + } + } + } + } + + return(0); +} + +// C. Kallidonis +// Function to set a gauge field to zero +int qcd_setUnityGaugeField(qcd_gaugeField *u, qcd_geometry *geo){ + + if(!u->initialized){ + fprintf(stderr,"Error in qcd_setUnityGaugeField! GaugeField not initialized\n"); + return 1; + } + + for(int v=0;vlV;v++){ + for(int mu=0;mu<4;mu++){ + for(int c1=0;c1<3;c1++){ + u->D[v][mu][c1][c1] = (qcd_complex_16) {1.0,0.0}; + } + } + } + + return(0); +} + + void qcd_destroyGaugeField(qcd_gaugeField *u) { if(!u->initialized) diff --git a/lib/qcd_io.c b/lib/qcd_io.c index 9caa0d3..77ecc95 100644 --- a/lib/qcd_io.c +++ b/lib/qcd_io.c @@ -1671,6 +1671,76 @@ int qcd_writePropagator(char *fname, int type, qcd_propagator *p) }//end qcd_writePropagator +//-C. Kallidonis July 2016 +//- Function to write a propagator in ASCII format +//- Each process writes its own chunk +int qcd_writePropagatorASCII(char *fname_basis, qcd_propagator *prop){ + + FILE *outf; + char *filename; + + asprintf(&filename,"%s_%d",fname_basis,prop->geo->myid); + outf=fopen(filename,"w"); + if(outf==NULL){ + if(prop->geo->myid==0) fprintf(stderr,"Cannot open %s for writing\n",filename); + exit(EXIT_FAILURE); + } + + for(int x=0; xgeo->lL[1]; x++){ + int gx = x + prop->geo->lL[1]*prop->geo->Pos[1]; + for(int y=0; ygeo->lL[2]; y++){ + int gy = y + prop->geo->lL[2]*prop->geo->Pos[2]; + for(int z=0; zgeo->lL[3]; z++){ + int gz = z + prop->geo->lL[3]*prop->geo->Pos[3]; + for(int t=0; tgeo->lL[0]; t++){ + int gt = t + prop->geo->lL[0]*prop->geo->Pos[0]; + for(int mu=0; mu<4; mu++){ + for(int nu=0; nu<4; nu++){ + for(int c1=0; c1<3; c1++){ + for(int c2=0; c2<3; c2++){ + fprintf(outf,"%02d %02d %02d %02d %02d %02d %02d %02d\t%+e %+e\n",gx,gy,gz,gt,mu,nu,c1,c2,prop->D[qcd_LEXIC(t,x,y,z,prop->geo->lL)][mu][nu][c1][c2].re,prop->D[qcd_LEXIC(t,x,y,z,prop->geo->lL)][mu][nu][c1][c2].im); + }}}}}}} + } + + fclose(outf); + + return 0; +} + +//-C. Kallidonis July 2016 +//- Function to write a vector in ASCII format +//- Each process writes its own chunk +int qcd_writeVectorASCII(char *fname_basis, int mu, qcd_vector *vec){ + + FILE *outf; + char *filename; + + asprintf(&filename,"%s.%05d.%d",fname_basis,mu,vec->geo->myid); + outf=fopen(filename,"w"); + if(outf==NULL){ + if(vec->geo->myid==0) fprintf(stderr,"Cannot open %s for writing\n",filename); + exit(EXIT_FAILURE); + } + + for(int x=0; xgeo->lL[1]; x++){ + int gx = x + vec->geo->lL[1]*vec->geo->Pos[1]; + for(int y=0; ygeo->lL[2]; y++){ + int gy = y + vec->geo->lL[2]*vec->geo->Pos[2]; + for(int z=0; zgeo->lL[3]; z++){ + int gz = z + vec->geo->lL[3]*vec->geo->Pos[3]; + for(int t=0; tgeo->lL[0]; t++){ + int gt = t + vec->geo->lL[0]*vec->geo->Pos[0]; + for(int mu=0; mu<4; mu++){ + for(int c1=0; c1<3; c1++){ + fprintf(outf,"%02d %02d %02d %02d %02d %02d\t%+e %+e\n",gx,gy,gz,gt,mu,c1,vec->D[qcd_LEXIC(t,x,y,z,vec->geo->lL)][mu][c1].re,vec->D[qcd_LEXIC(t,x,y,z,vec->geo->lL)][mu][c1].im); + }}}}} + } + + fclose(outf); + + return 0; +} + int qcd_writeVectorCMI(char *fname, qcd_uint_2 nu, qcd_uint_2 c2, qcd_vector *v) { diff --git a/lib/qcd_particle_data.c b/lib/qcd_particle_data.c index d004fa5..48ae270 100644 --- a/lib/qcd_particle_data.c +++ b/lib/qcd_particle_data.c @@ -6,220 +6,260 @@ * Christos Kallidonis **************************************/ -char *particles_parts[53][4] = { - {"u" , "d", "z", "z" }, // DUMMY - {"u" , "d", "z", "z" }, // PROTON - {"u" , "d", "z", "z" }, // NEUTRON - {"u" , "d", "s", "z" }, // LAMBDA - {"u" , "z", "s", "z" }, // SIGMA_PLUS - {"u" , "d", "s", "z" }, // SIGMA_ZERO - {"z" , "d", "s", "z" }, // SIGMA_MINUS - {"u" , "z", "s", "z" }, // KSI_ZERO - {"z" , "d", "s", "z" }, // KSI_MINUS +char *particles_parts[61][4] = { + {"u" , "d", "z", "z" }, // DUMMY + {"u" , "d", "z", "z" }, // PROTON + {"u" , "d", "z", "z" }, // NEUTRON + {"u" , "d", "s", "z" }, // LAMBDA + {"u" , "z", "s", "z" }, // SIGMA_PLUS + {"u" , "d", "s", "z" }, // SIGMA_ZERO + {"z" , "d", "s", "z" }, // SIGMA_MINUS + {"u" , "z", "s", "z" }, // KSI_ZERO + {"z" , "d", "s", "z" }, // KSI_MINUS - {"u" , "z", "z", "z" }, // DELTA_PLUS_PLUS - {"u" , "d", "z", "z" }, // DELTA_PLUS - {"u" , "d", "z", "z" }, // DELTA_ZERO - {"z" , "d", "z", "z" }, // DELTA_MINUS - {"u" , "z", "s", "z" }, // SIGMA_STAR_PLUS - {"u" , "d", "s", "z" }, // SIGMA_STAR_ZERO - {"z" , "d", "s", "z" }, // SIGMA_STAR_MINUS - {"u" , "z", "s", "z" }, // KSI_STAR_ZERO - {"z" , "d", "s", "z" }, // KSI_STAR_MINUS - {"z" , "z", "s", "z" }, // OMEGA - - {"u" , "d", "z", "c" }, // LAMBDA_C - {"u" , "z", "z", "c" }, // SIGMA_PLUS_PLUS_C - {"u" , "d", "z", "c" }, // SIGMA_PLUS_C - {"z" , "d", "z", "c" }, // SIGMA_ZERO_C - {"u" , "z", "s", "c" }, // KSI_PLUS_C - {"u" , "z", "s", "c" }, // KSI_PRIME_PLUS_C - {"z" , "d", "s", "c" }, // KSI_ZERO_C - {"z" , "d", "s", "c" }, // KSI_PRIME_ZERO_C - {"z" , "z", "s", "c" }, // OMEGA_ZERO_C - - {"u" , "z", "z", "c" }, // SIGMA_STAR_PLUS_PLUS_C - {"u" , "d", "z", "c" }, // SIGMA_STAR_PLUS_C - {"z" , "d", "z", "c" }, // SIGMA_STAR_ZERO_C - {"u" , "z", "s", "c" }, // KSI_STAR_PLUS_C - {"z" , "d", "s", "c" }, // KSI_STAR_ZERO_C - {"z" , "z", "s", "c" }, // OMEGA_STAR_ZERO_C - - {"u" , "z", "z", "c" }, // KSI_PLUS_PLUS_C_C - {"z" , "d", "z", "c" }, // KSI_PLUS_C_C - {"z" , "z", "s", "c" }, // OMEGA_PLUS_C_C - - {"u" , "z", "z", "c" }, // KSI_STAR_PLUS_PLUS_C_C - {"z" , "d", "z", "c" }, // KSI_STAR_PLUS_C_C - {"z" , "z", "s", "c" }, // OMEGA_STAR_PLUS_C_C - - {"z" , "z", "z", "c" }, // OMEGA_PLUS_PLUS_C_C_C - -//-EXTRA PARTICLES - {"u" , "d", "z", "z" }, // PROTON EXTRA - {"u" , "d", "z", "z" }, // NEUTRON EXTRA + {"u" , "z", "z", "z" }, // DELTA_PLUS_PLUS + {"u" , "d", "z", "z" }, // DELTA_PLUS + {"u" , "d", "z", "z" }, // DELTA_ZERO + {"z" , "d", "z", "z" }, // DELTA_MINUS + {"u" , "z", "s", "z" }, // SIGMA_STAR_PLUS + {"u" , "d", "s", "z" }, // SIGMA_STAR_ZERO + {"z" , "d", "s", "z" }, // SIGMA_STAR_MINUS + {"u" , "z", "s", "z" }, // KSI_STAR_ZERO + {"z" , "d", "s", "z" }, // KSI_STAR_MINUS + {"z" , "z", "s", "z" }, // OMEGA + + {"u" , "d", "z", "c" }, // LAMBDA_C + {"u" , "z", "z", "c" }, // SIGMA_PLUS_PLUS_C + {"u" , "d", "z", "c" }, // SIGMA_PLUS_C + {"z" , "d", "z", "c" }, // SIGMA_ZERO_C + {"u" , "z", "s", "c" }, // KSI_PLUS_C + {"u" , "z", "s", "c" }, // KSI_PRIME_PLUS_C + {"z" , "d", "s", "c" }, // KSI_ZERO_C + {"z" , "d", "s", "c" }, // KSI_PRIME_ZERO_C + {"z" , "z", "s", "c" }, // OMEGA_ZERO_C + + {"u" , "z", "z", "c" }, // SIGMA_STAR_PLUS_PLUS_C + {"u" , "d", "z", "c" }, // SIGMA_STAR_PLUS_C + {"z" , "d", "z", "c" }, // SIGMA_STAR_ZERO_C + {"u" , "z", "s", "c" }, // KSI_STAR_PLUS_C + {"z" , "d", "s", "c" }, // KSI_STAR_ZERO_C + {"z" , "z", "s", "c" }, // OMEGA_STAR_ZERO_C + + {"u" , "z", "z", "c" }, // KSI_PLUS_PLUS_C_C + {"z" , "d", "z", "c" }, // KSI_PLUS_C_C + {"z" , "z", "s", "c" }, // OMEGA_PLUS_C_C + + {"u" , "z", "z", "c" }, // KSI_STAR_PLUS_PLUS_C_C + {"z" , "d", "z", "c" }, // KSI_STAR_PLUS_C_C + {"z" , "z", "s", "c" }, // OMEGA_STAR_PLUS_C_C + + {"z" , "z", "z", "c" }, // OMEGA_PLUS_PLUS_C_C_C + + //-EXTRA PARTICLES + {"u" , "d", "z", "z" }, // PROTON EXTRA + {"u" , "d", "z", "z" }, // NEUTRON EXTRA - {"u" , "z", "s", "z" }, // KSI_STAR_ZERO EXTRA - {"z" , "d", "s", "z" }, // KSI_STAR_MINUS EXTRA - {"u" , "z", "s", "c" }, // KSI_PLUS_C EXTRA - {"z" , "d", "s", "c" }, // KSI_ZERO_C EXTRA - {"u" , "z", "s", "c" }, // KSI_STAR_PLUS_C EXTRA - {"z" , "d", "s", "c" }, // KSI_STAR_ZERO_C EXTRA - {"z" , "z", "s", "c" }, // OMEGA_STAR_ZERO_C EXTRA - {"u" , "z", "z", "c" }, // KSI_STAR_PLUS_PLUS_C_C EXTRA - {"z" , "d", "z", "c" }, // KSI_STAR_PLUS_C_C EXTRA - {"z" , "z", "s", "c" } // OMEGA_STAR_PLUS_C_C EXTRA + {"u" , "z", "s", "z" }, // KSI_STAR_ZERO EXTRA + {"z" , "d", "s", "z" }, // KSI_STAR_MINUS EXTRA + {"u" , "z", "s", "c" }, // KSI_PLUS_C EXTRA + {"z" , "d", "s", "c" }, // KSI_ZERO_C EXTRA + {"u" , "z", "s", "c" }, // KSI_STAR_PLUS_C EXTRA + {"z" , "d", "s", "c" }, // KSI_STAR_ZERO_C EXTRA + {"z" , "z", "s", "c" }, // OMEGA_STAR_ZERO_C EXTRA + {"u" , "z", "z", "c" }, // KSI_STAR_PLUS_PLUS_C_C EXTRA + {"z" , "d", "z", "c" }, // KSI_STAR_PLUS_C_C EXTRA + {"z" , "z", "s", "c" }, // OMEGA_STAR_PLUS_C_C EXTRA + {"u" , "z", "s", "z" }, // KSI_STAR_ZERO EXTRA 11 + {"u" , "z", "s", "z" }, // KSI_STAR_ZERO EXTRA 12 + {"u" , "z", "s", "z" }, // KSI_STAR_ZERO EXTRA 21 + {"u" , "z", "s", "z" }, // KSI_STAR_ZERO EXTRA 22 + {"z" , "d", "s", "z" }, // KSI_STAR_MINUS EXTRA 11 + {"z" , "d", "s", "z" }, // KSI_STAR_MINUS EXTRA 12 + {"z" , "d", "s", "z" }, // KSI_STAR_MINUS EXTRA 21 + {"z" , "d", "s", "z" } // KSI_STAR_MINUS EXTRA 22 }; //------------------------------------------------------------------ - int particles_pnum[53][4] = { - {1 , 1, 0 , 0 }, // DUMMY - {1 , 1, 0 , 0 }, // PROTON - {1 , 1, 0 , 0 }, // NEUTRON - {1 , 1, 1 , 0 }, // LAMBDA - {1 , 0, 1 , 0 }, // SIGMA_PLUS - {1 , 1, 1 , 0 }, // SIGMA_ZERO - {0 , 1, 1 , 0 }, // SIGMA_MINUS - {1 , 0, 1 , 0 }, // KSI_ZERO - {0 , 1, 1 , 0 }, // KSI_MINUS +int particles_pnum[61][4] = { + {1 , 1, 0 , 0 }, // DUMMY + {1 , 1, 0 , 0 }, // PROTON + {1 , 1, 0 , 0 }, // NEUTRON + {1 , 1, 1 , 0 }, // LAMBDA + {1 , 0, 1 , 0 }, // SIGMA_PLUS + {1 , 1, 1 , 0 }, // SIGMA_ZERO + {0 , 1, 1 , 0 }, // SIGMA_MINUS + {1 , 0, 1 , 0 }, // KSI_ZERO + {0 , 1, 1 , 0 }, // KSI_MINUS - {1 , 0, 0 , 0 }, // DELTA_PLUS_PLUS - {1 , 1, 0 , 0 }, // DELTA_PLUS - {1 , 1, 0 , 0 }, // DELTA_ZERO - {0 , 1, 0 , 0 }, // DELTA_MINUS - {1 , 0, 1 , 0 }, // SIGMA_STAR_PLUS - {1 , 1, 1 , 0 }, // SIGMA_STAR_ZERO - {0 , 1, 1 , 0 }, // SIGMA_STAR_MINUS - {1 , 0, 1 , 0 }, // KSI_STAR_ZERO - {0 , 1, 1 , 0 }, // KSI_STAR_MINUS - {0 , 0, 1 , 0 }, // OMEGA - - {1 , 1, 0 , 1 }, // LAMBDA_C - {1 , 0, 0 , 1 }, // SIGMA_PLUS_PLUS_C - {1 , 1, 0 , 1 }, // SIGMA_PLUS_C - {0 , 1, 0 , 1 }, // SIGMA_ZERO_C - {1 , 0, 1 , 1 }, // KSI_PLUS_C - {1 , 0, 1 , 1 }, // KSI_PRIME_PLUS_C - {0 , 1, 1 , 1 }, // KSI_ZERO_C - {0 , 1, 1 , 1 }, // KSI_PRIME_ZERO_C - {0 , 0, 1 , 1 }, // OMEGA_ZERO_C - - {1 , 0, 0 , 1 }, // SIGMA_STAR_PLUS_PLUS_C - {1 , 1, 0 , 1 }, // SIGMA_STAR_PLUS_C - {0 , 1, 0 , 1 }, // SIGMA_STAR_ZERO_C - {1 , 0, 1 , 1 }, // KSI_STAR_PLUS_C - {0 , 1, 1 , 1 }, // KSI_STAR_ZERO_C - {0 , 0, 1 , 1 }, // OMEGA_STAR_ZERO_C - - {1 , 0, 0 , 1 }, // KSI_PLUS_PLUS_C_C - {0 , 1, 0 , 1 }, // KSI_PLUS_C_C - {0 , 0, 1 , 1 }, // OMEGA_PLUS_C_C - - {1 , 0, 0 , 1 }, // KSI_STAR_PLUS_PLUS_C_C - {0 , 1, 0 , 1 }, // KSI_STAR_PLUS_C_C - {0 , 0, 1 , 1 }, // OMEGA_STAR_PLUS_C_C - - {0 , 0, 0 , 1 }, // OMEGA_PLUS_PLUS_C_C_C - -//-EXTRA PARTICLES - {1 , 1, 0 , 0 }, // PROTON EXTRA - {1 , 1, 0 , 0 }, // NEUTRON EXTRA + {1 , 0, 0 , 0 }, // DELTA_PLUS_PLUS + {1 , 1, 0 , 0 }, // DELTA_PLUS + {1 , 1, 0 , 0 }, // DELTA_ZERO + {0 , 1, 0 , 0 }, // DELTA_MINUS + {1 , 0, 1 , 0 }, // SIGMA_STAR_PLUS + {1 , 1, 1 , 0 }, // SIGMA_STAR_ZERO + {0 , 1, 1 , 0 }, // SIGMA_STAR_MINUS + {1 , 0, 1 , 0 }, // KSI_STAR_ZERO + {0 , 1, 1 , 0 }, // KSI_STAR_MINUS + {0 , 0, 1 , 0 }, // OMEGA + + {1 , 1, 0 , 1 }, // LAMBDA_C + {1 , 0, 0 , 1 }, // SIGMA_PLUS_PLUS_C + {1 , 1, 0 , 1 }, // SIGMA_PLUS_C + {0 , 1, 0 , 1 }, // SIGMA_ZERO_C + {1 , 0, 1 , 1 }, // KSI_PLUS_C + {1 , 0, 1 , 1 }, // KSI_PRIME_PLUS_C + {0 , 1, 1 , 1 }, // KSI_ZERO_C + {0 , 1, 1 , 1 }, // KSI_PRIME_ZERO_C + {0 , 0, 1 , 1 }, // OMEGA_ZERO_C + + {1 , 0, 0 , 1 }, // SIGMA_STAR_PLUS_PLUS_C + {1 , 1, 0 , 1 }, // SIGMA_STAR_PLUS_C + {0 , 1, 0 , 1 }, // SIGMA_STAR_ZERO_C + {1 , 0, 1 , 1 }, // KSI_STAR_PLUS_C + {0 , 1, 1 , 1 }, // KSI_STAR_ZERO_C + {0 , 0, 1 , 1 }, // OMEGA_STAR_ZERO_C + + {1 , 0, 0 , 1 }, // KSI_PLUS_PLUS_C_C + {0 , 1, 0 , 1 }, // KSI_PLUS_C_C + {0 , 0, 1 , 1 }, // OMEGA_PLUS_C_C + + {1 , 0, 0 , 1 }, // KSI_STAR_PLUS_PLUS_C_C + {0 , 1, 0 , 1 }, // KSI_STAR_PLUS_C_C + {0 , 0, 1 , 1 }, // OMEGA_STAR_PLUS_C_C + + {0 , 0, 0 , 1 }, // OMEGA_PLUS_PLUS_C_C_C + + //-EXTRA PARTICLES + {1 , 1, 0 , 0 }, // PROTON EXTRA + {1 , 1, 0 , 0 }, // NEUTRON EXTRA - {1 , 0, 1 , 0 }, // KSI_STAR_ZERO EXTRA - {0 , 1, 1 , 0 }, // KSI_STAR_MINUS EXTRA - {1 , 0, 1 , 1 }, // KSI_PLUS_C EXTRA - {0 , 1, 1 , 1 }, // KSI_ZERO_C EXTRA - {1 , 0, 1 , 1 }, // KSI_STAR_PLUS_C EXTRA - {0 , 1, 1 , 1 }, // KSI_STAR_ZERO_C EXTRA - {0 , 0, 1 , 1 }, // OMEGA_STAR_ZERO_C EXTRA - {1 , 0, 0 , 1 }, // KSI_STAR_PLUS_PLUS_C_C EXTRA - {0 , 1, 0 , 1 }, // KSI_STAR_PLUS_C_C EXTRA - {0 , 0, 1 , 1 } // OMEGA_STAR_PLUS_C_C EXTRA - - }; + {1 , 0, 1 , 0 }, // KSI_STAR_ZERO EXTRA + {0 , 1, 1 , 0 }, // KSI_STAR_MINUS EXTRA + {1 , 0, 1 , 1 }, // KSI_PLUS_C EXTRA + {0 , 1, 1 , 1 }, // KSI_ZERO_C EXTRA + {1 , 0, 1 , 1 }, // KSI_STAR_PLUS_C EXTRA + {0 , 1, 1 , 1 }, // KSI_STAR_ZERO_C EXTRA + {0 , 0, 1 , 1 }, // OMEGA_STAR_ZERO_C EXTRA + {1 , 0, 0 , 1 }, // KSI_STAR_PLUS_PLUS_C_C EXTRA + {0 , 1, 0 , 1 }, // KSI_STAR_PLUS_C_C EXTRA + {0 , 0, 1 , 1 }, // OMEGA_STAR_PLUS_C_C EXTRA + {1 , 0, 1 , 0 }, // KSI_STAR_ZERO EXTRA 11 + {1 , 0, 1 , 0 }, // KSI_STAR_ZERO EXTRA 12 + {1 , 0, 1 , 0 }, // KSI_STAR_ZERO EXTRA 21 + {1 , 0, 1 , 0 }, // KSI_STAR_ZERO EXTRA 22 + {0 , 1, 1 , 0 }, // KSI_STAR_MINUS EXTRA 11 + {0 , 1, 1 , 0 }, // KSI_STAR_MINUS EXTRA 12 + {0 , 1, 1 , 0 }, // KSI_STAR_MINUS EXTRA 21 + {0 , 1, 1 , 0 } // KSI_STAR_MINUS EXTRA 22 +}; //------------------------------------------------------------------ -char *particle_names[53] = { - "dummy", - "proton", - "neutron", - "lambda", - "sigmaplus", - "sigmazero", - "sigmaminus", - "xizero", - "ximinus", -//------------------------------ - "deltaplusplus", - "deltaplus", - "deltazero", - "deltaminus", - "sigmastarplus", - "sigmastarzero", - "sigmastarminus", - "xistarzero", - "xistarminus", - "omega", -//------------------------------ - "lambda_cplus", - "sigma_cplusplus", - "sigma_cplus", - "sigma_czero", - "xi_cplus", - "xi_prime_cplus", - "xi_czero", - "xi_prime_czero", - "omega_czero", -//------------------------------ - "sigmastar_cplusplus", - "sigmastar_cplus", - "sigmastar_czero", - "xistar_cplus", - "xistar_czero", - "omegastar_czero", -//------------------------------ - "xi_ccplusplus", - "xi_ccplus", - "omega_ccplus", -//------------------------------ - "xistar_ccplusplus", - "xistar_ccplus", - "omegastar_ccplus", -//------------------------------ - "omega_cccplusplus", -//------------------------------ - - "proton_extra", - "neutron_extra", - "xistarzero_extra", - "xistarminus_extra", - "xi_cplus_extra", - "xi_czero_extra", - "xistar_cplus_extra", - "xistar_czero_extra", - "omegastar_czero_extra", - "xistar_ccplusplus_extra", - "xistar_ccplus_extra", - "omegastar_ccplus_extra" +char *particle_names[61] = { + "dummy", + "proton", + "neutron", + "lambda", + "sigmaplus", + "sigmazero", + "sigmaminus", + "xizero", + "ximinus", + //------------------------------ + "deltaplusplus", + "deltaplus", + "deltazero", + "deltaminus", + "sigmastarplus", + "sigmastarzero", + "sigmastarminus", + "xistarzero", + "xistarminus", + "omega", + //------------------------------ + "lambda_cplus", + "sigma_cplusplus", + "sigma_cplus", + "sigma_czero", + "xi_cplus", + "xi_prime_cplus", + "xi_czero", + "xi_prime_czero", + "omega_czero", + //------------------------------ + "sigmastar_cplusplus", + "sigmastar_cplus", + "sigmastar_czero", + "xistar_cplus", + "xistar_czero", + "omegastar_czero", + //------------------------------ + "xi_ccplusplus", + "xi_ccplus", + "omega_ccplus", + //------------------------------ + "xistar_ccplusplus", + "xistar_ccplus", + "omegastar_ccplus", + //------------------------------ + "omega_cccplusplus", + //------------------------------ + + "proton_extra", + "neutron_extra", + "xistarzero_extra", + "xistarminus_extra", + "xi_cplus_extra", + "xi_czero_extra", + "xistar_cplus_extra", + "xistar_czero_extra", + "omegastar_czero_extra", + "xistar_ccplusplus_extra", + "xistar_ccplus_extra", + "omegastar_ccplus_extra", + "xistarzero_extra11", + "xistarzero_extra12", + "xistarzero_extra21", + "xistarzero_extra22", + "xistarminus_extra11", + "xistarminus_extra12", + "xistarminus_extra21", + "xistarminus_extra22", }; -char *meson_names[4] = { - "dummy", - "pion", - "kaon", - "Dmeson" +char *meson_names[20] = { + "dummy", + "pion", + "kaon", + "Dmeson", + "a0", + "rho_1", + "rho_2", + "rho_3", + "a1_1", + "a1_2", + "a1_3", + "Kstar_1", + "Kstar_2", + "Kstar_3", + "Dstar_1", + "Dstar_2", + "Dstar_3", + "K1_1", + "K1_2", + "K1_3" }; //------------------------------------------------------------------ -int particles32[53] = {0, - 0,0,0,0,0,0,0,0, - 1,1,1,1,1,1,1,1,1,1, - 0,0,0,0,0,0,0,0,0, - 1,1,1,1,1,1, - 0,0,0, - 1,1,1, - 1, - 0,0, - 1,1,0,0,1,1,1,1,1,1 - }; +int particles32[61] = {0, + 0,0,0,0,0,0,0,0, // octet + 1,1,1,1,1,1,1,1,1,1, // decuplet + 0,0,0,0,0,0,0,0,0, // charm 1/2 + 1,1,1,1,1,1, // charm 3/2 + 0,0,0, // doubly charm 1/2 + 1,1,1, // doubly charm 3/2 + 1, // omega_ccc + 0,0, // proton - neutron extra + 1,1,0,0,1,1,1,1,1,1, // all extra + 1,1,1,1,1,1,1,1 // xistarzero xistarminus single terms +}; diff --git a/lib/qcd_smearing.c b/lib/qcd_smearing.c index 95935d4..fc8d599 100644 --- a/lib/qcd_smearing.c +++ b/lib/qcd_smearing.c @@ -270,3 +270,78 @@ int qcd_apeSmear3d(qcd_gaugeField *apeu, qcd_gaugeField *u, qcd_real_8 alpha) qcd_destroyPropagator(&edge); return(0); }//end qcd_apeSmear3d + + + + +/* C. Kallidonis + * perform 1 iteration of 4d APE-smearing + * with parameter alpha. + * + * u -> SU3-projection( u + alpha * sum of staples) + */ +int qcd_apeSmear4d(qcd_gaugeField *apeu, qcd_gaugeField *u, qcd_real_8 alpha) +{ + qcd_propagator edge; + qcd_complex_16 stapleForward[3][3]; + qcd_complex_16 stapleBackward[3][3]; + qcd_uint_2 mu,nu,c1,c2; + qcd_uint_4 l; + qcd_complex_16 tmp[3][3]; + + qcd_initPropagator(&edge,u->geo); // store edges in a propagator-structure. + + /* since staples need next-to-nearest neighbors like U(x+mu-nu), this is done in 2 steps + a) communicate U & calculate edges U_mu(x)U_nu(x+mu) + b) communicate edges and put them together to staples. + */ + + qcd_communicateGaugePM(u); + qcd_zeroGaugeField(apeu); + qcd_waitall(u->geo); + + for(mu=0; mu<4; mu++) + for(nu=0;nu<4; nu++) + if(mu!=nu) + for(l=0;lgeo->lV;l++) + { + qcd_MUL3x3(edge.D[l][mu][nu], u->D[l][mu], u->D[u->geo->plus[l][mu]][nu]); + } + + qcd_communicatePropagatorP(&edge); + + //the forward staple doesn't need the edges + for(mu=0; mu<4; mu++) + for(nu=0;nu<4; nu++) + if(mu!=nu) + for(l=0;lgeo->lV;l++) + { + qcd_MUL3x3(tmp, u->D[l][nu],u->D[u->geo->plus[l][nu]][mu]); + qcd_MULADJOINT3x3(stapleForward, tmp, u->D[u->geo->plus[l][mu]][nu]); + for(c1=0;c1<3;c1++) + for(c2=0;c2<3;c2++) + apeu->D[l][mu][c1][c2] = qcd_CADD(apeu->D[l][mu][c1][c2],stapleForward[c1][c2]); + } + + qcd_waitall(u->geo); + + for(mu=0; mu<4; mu++) + for(nu=0;nu<4; nu++) + if(mu!=nu) + for(l=0;lgeo->lV;l++) + { + qcd_ADJOINTMUL3x3(stapleBackward, u->D[u->geo->minus[l][nu]][nu], edge.D[u->geo->minus[l][nu]][mu][nu]); + for(c1=0;c1<3;c1++) + for(c2=0;c2<3;c2++) + apeu->D[l][mu][c1][c2] = qcd_CADD(apeu->D[l][mu][c1][c2],stapleBackward[c1][c2]); + } + + + qcd_scaleGaugeField(apeu,alpha); + qcd_addGaugeField(apeu,u,apeu); + + qcd_projectSU3(apeu); + + qcd_destroyPropagator(&edge); + return(0); +}//end qcd_apeSmear4d diff --git a/mainprogs/Makefile b/mainprogs/Makefile index fdef661..09407b3 100644 --- a/mainprogs/Makefile +++ b/mainprogs/Makefile @@ -4,8 +4,10 @@ TARGETS=b_minus_Dx\ invert\ landau\ seq_source_dd\ + seq_source_dd_multiple_tsink\ seq_source_dd_idris\ seq_source_uu\ + seq_source_uu_multiple_tsink\ seq_source_uu_idris\ seq_source_fix_curr\ source\ @@ -17,13 +19,18 @@ TARGETS=b_minus_Dx\ zfac\ rms\ source_block\ - threep_all_opt\ - twop_all_opt\ + threep_all_baryon\ + twop_all_hadr\ twop-nucleons\ twop-hadr\ threep-block\ twop-block\ - zfac_NEW_format + zfac_NEW_format\ + smear_APE4D\ + createUnityGauge\ + convertPropToASCII\ + convertVectorToASCII\ + test_projectors LIBDIR = ../lib diff --git a/mainprogs/convertPropToASCII.c b/mainprogs/convertPropToASCII.c new file mode 100644 index 0000000..ae6dd82 --- /dev/null +++ b/mainprogs/convertPropToASCII.c @@ -0,0 +1,107 @@ +/* smear_APE4D.c + * + * uses qcd-lib to parallely APE-smear configurations + * in 4d + * + * Christos Kallidonis, Dec 2015 + ********************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +int main(int argc,char* argv[]) +{ + qcd_uint_4 i; + int myid,numprocs, namelen; + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int params_len; // needed to read inputfiles + char *params = NULL; // needed to read inputfiles + char param_name[qcd_MAX_STRING_LENGTH]; // name of parameter file + qcd_real_8 theta[4] = {M_PI,0.0,0.0,0.0}; // antiperiodic b.c. in time + qcd_uint_2 L[4]; + qcd_uint_2 P[4]; + qcd_geometry geo; + qcd_propagator prop; + char prop_name[qcd_MAX_STRING_LENGTH]; + char ASCIIprop_name[qcd_MAX_STRING_LENGTH]; + + //set up MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation + MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID + MPI_Get_processor_name(processor_name,&namelen); // + char *message; + + //////////////////// READ INPUT FILE ///////////////////////////////////////////// + + if(argc!=2) + { + if(myid==0) fprintf(stderr,"No input file specified\n"); + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + strcpy(param_name,argv[1]); + if(myid==0) + { + i=0; + printf("opening input file %s\n",param_name); + params=qcd_getParams(param_name,¶ms_len); + if(params==NULL) + { + i=1; + } + } + MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); + if(i==1) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); + if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); + MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); + + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); + if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); + + strcpy(prop_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got propagator file name: %s\n",prop_name); + + strcpy(ASCIIprop_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got propagator file name: %s\n",ASCIIprop_name); + + free(params); + + /////////////////////////////////////////////////////////////////////////// + int j=0,k=0; + j += qcd_initPropagator(&prop, &geo); + MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if(k>0){ + if(myid==0) fprintf(stderr,"Error, not enough memory to load propagator\n"); + exit(EXIT_FAILURE); + } + + //-Load the propagator + if(qcd_getPropagator(prop_name,qcd_PROP_LIME, &prop)) exit(EXIT_FAILURE); + if(myid==0) printf("propagator loaded\n"); + + if(qcd_writePropagatorASCII(ASCIIprop_name,&prop)) exit(EXIT_FAILURE); + if(myid==0) printf("propagator written in ASCII format\n"); + + qcd_destroyPropagator(&prop); + qcd_destroyGeometry(&geo); + MPI_Finalize(); +} diff --git a/mainprogs/convertVectorToASCII.c b/mainprogs/convertVectorToASCII.c new file mode 100644 index 0000000..ef5eb30 --- /dev/null +++ b/mainprogs/convertVectorToASCII.c @@ -0,0 +1,130 @@ +/* smear_APE4D.c + * + * uses qcd-lib to parallely APE-smear configurations + * in 4d + * + * Christos Kallidonis, Dec 2015 + ********************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +int main(int argc,char* argv[]) +{ + qcd_uint_4 i; + int myid,numprocs, namelen; + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int params_len; // needed to read inputfiles + char *params = NULL; // needed to read inputfiles + char param_name[qcd_MAX_STRING_LENGTH]; // name of parameter file + qcd_real_8 theta[4] = {M_PI,0.0,0.0,0.0}; // antiperiodic b.c. in time + qcd_uint_2 L[4]; + qcd_uint_2 P[4]; + qcd_int_4 nVec; + qcd_geometry geo; + qcd_vector vec; + char vec_name[qcd_MAX_STRING_LENGTH]; + char ASCIIvec_name[qcd_MAX_STRING_LENGTH]; + + //set up MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation + MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID + MPI_Get_processor_name(processor_name,&namelen); // + char *message; + + //////////////////// READ INPUT FILE ///////////////////////////////////////////// + + if(argc!=2) + { + if(myid==0) fprintf(stderr,"No input file specified\n"); + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + strcpy(param_name,argv[1]); + if(myid==0) + { + i=0; + printf("opening input file %s\n",param_name); + params=qcd_getParams(param_name,¶ms_len); + if(params==NULL) + { + i=1; + } + } + MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); + if(i==1) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); + if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); + MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); + + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); + if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); + + strcpy(vec_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got vector list file name: %s\n",vec_name); + + sscanf(qcd_getParam("",params,params_len),"%d",&nVec); + if(myid==0) printf("Will read %d vectors.\n",nVec); + + + strcpy(ASCIIvec_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got vector base file name: %s\n",ASCIIvec_name); + + free(params); + + /////////////////////////////////////////////////////////////////////////// + int j,k; + j = 0; + k = 0; + j += qcd_initVector(&vec,&geo); + MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if(k>0){ + if(myid==0) fprintf(stderr,"Error, not enough memory to load Vector\n"); + exit(EXIT_FAILURE); + } + + char vecnames[nVec][qcd_MAX_STRING_LENGTH]; + FILE *ptr = fopen(vec_name,"r"); + if(ptr==NULL){ + if(myid==0) fprintf(stderr,"Cannot open %s for reading. Exiting.\n",vec_name); + exit(EXIT_FAILURE); + } + for(int mu=0;mu +#include +#include +#include +#include +#include +#include + +int main(int argc,char* argv[]) +{ + qcd_uint_4 i; + int myid,numprocs, namelen; + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int params_len; // needed to read inputfiles + char *params = NULL; // needed to read inputfiles + char param_name[qcd_MAX_STRING_LENGTH]; // name of parameter file + char gauge_name[qcd_MAX_STRING_LENGTH]; // name of gauge-configuration file + qcd_real_8 theta[4] = {M_PI,0.0,0.0,0.0}; // antiperiodic b.c. in time + qcd_uint_2 L[4]; + qcd_uint_2 P[4]; + qcd_geometry geo; + qcd_gaugeField u; + qcd_real_8 plaq; + + //set up MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation + MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID + MPI_Get_processor_name(processor_name,&namelen); // + char *message; + + //////////////////// READ INPUT FILE ///////////////////////////////////////////// + + if(argc!=2) + { + if(myid==0) fprintf(stderr,"No input file specified\n"); + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + strcpy(param_name,argv[1]); + if(myid==0) + { + i=0; + printf("opening input file %s\n",param_name); + params=qcd_getParams(param_name,¶ms_len); + if(params==NULL) + { + i=1; + } + } + MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); + if(i==1) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); + if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); + MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); + + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); + if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); + + strcpy(gauge_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got conf name: %s\n",gauge_name); + + free(params); + + /////////////////////////////////////////////////////////////////////////// + + //- Initialize the gauge field + int j,k; + j = 0; + j += qcd_initGaugeField(&u, &geo); + MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if(k>0){ + if(myid==0) fprintf(stderr,"Error, not enough memory\n"); + exit(EXIT_FAILURE); + } + + //- Set the links to zero + j = 0; k = 0; + j += qcd_setZeroGaugeField(&u,&geo); + MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if(k>0){ + if(myid==0) fprintf(stderr,"Error, Gauge Field not set to zero properly\n"); + exit(EXIT_FAILURE); + } + + //- Create a unity gauge field + j = 0; k = 0; + j += qcd_setUnityGaugeField(&u,&geo); + MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if(k>0){ + if(myid==0) fprintf(stderr,"Error, Gauge Field not set to unity properly\n"); + exit(EXIT_FAILURE); + } + + plaq = qcd_calculatePlaquette(&u); + if(myid==0) printf("plaquette = %e\n",plaq); + + + asprintf(&message,"Unity Gauge Field! Plaquette = %+e",plaq); + + if(qcd_writeGaugeField(gauge_name,qcd_GF_LIME,&u,message)){ + fprintf(stderr,"process %i: Error writing gauge field!\n",myid); + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + qcd_destroyGaugeField(&u); + + qcd_destroyGeometry(&geo); + MPI_Finalize(); +} diff --git a/mainprogs/seq_source_dd_multiple_tsink.c b/mainprogs/seq_source_dd_multiple_tsink.c new file mode 100644 index 0000000..a3da72a --- /dev/null +++ b/mainprogs/seq_source_dd_multiple_tsink.c @@ -0,0 +1,400 @@ +/* seq_source_dd.c + * + * creates sequential sources + * for proton-operator-proton correlators with d-quarks in the current + * + * N sources are created, with the projectors defined in projectors.h + * + * + * sample input file for execution on 8 CPUs could contain: + * + * 1 2 2 2 + * 8 8 8 8 + * 4.0 + * 50 + * 0.5 + * 20 + * conf88.0000 + * sollist_u.0000 + * 5 + * 3 + * 10 + * 13 + * seq_src_Proj13_ts_10_list + * 10 + * 3 + * seq_src_Proj3_ts_10_list + * 10 + * 4 + * seq_src_Proj4_ts_10_list + * 12 + * 3 + * seq_src_Proj3_ts_12_list + * 14 + * 4 + * seq_src_Proj4_ts14_list + * + * + * + * Tomasz Korzec 2009 + ****************************************/ + +#include +#include +#include +#include +#include +#include +#include "projectors.h" + + + + +int main(int argc,char* argv[]) +{ + qcd_uint_4 i,k,mu,nu,ku,lu,c1,c2,v,x,y,z; // loop variables + qcd_uint_4 c3,c1p,c2p,c3p,ctr,ctr2; + qcd_uint_4 cc1,cc2,a,b; + qcd_uint_4 isource,tcheck,tuniq; // .. + qcd_uint_4 *t_sink,*t_sink_uniq; + int lt_sink; // sink/source time-slice + + qcd_uint_2 nsources; // number of different sources + + qcd_uint_4 nsmear, nsmearAPE; // gaussian and APE smearing: n + qcd_real_8 alpha, alphaAPE; // gaussian and APE smearing: alpha + int params_len; // needed to read inputfiles + char *params = NULL; // needed to read inputfiles + char tmp_string[qcd_MAX_STRING_LENGTH]; // general purpuse + char param_name[qcd_MAX_STRING_LENGTH]; + + char gauge_name[qcd_MAX_STRING_LENGTH]; // name of gauge-config file + char **source_name; // names of output files + qcd_uint_2 *source_type; // types of sources + + qcd_uint_2 L[4], P[4]; // lattice size and subdivision of lattice + qcd_geometry geo; // geometry structure + qcd_propagator prop_u; // u-propagator + qcd_propagator prop_tmp; // needed when rotating etc. + qcd_vector vec; // needed when smearing + qcd_gaugeField u; // gauge field + qcd_gaugeField uAPE; // APE smeared gaugeField + qcd_gaugeField *u_ptr, *uAPE_ptr, *utmp_ptr; + + char prop_u_name[qcd_MAX_STRING_LENGTH]; // file names of up and down quark propagators + + qcd_real_8 theta[4] = {M_PI, 0.0, 0.0, 0.0}; // antiperiodic b.c. in time + + // C gamma_5 x \bar C gamma_5 + // nonzero entries of [C gamma_5]_ab [\bar C gamma_5]_cd are in + // a=cg5cg5_ind[..][0], b=cg5cg5_ind[..][1], c=cg5cg5_ind[..][2], d=cg5cg5_ind[..][3] + qcd_uint_2 cg5cg5_ind[16][4]; + qcd_complex_16 cg5cg5_val[16]; + + qcd_complex_16 C, factor; + qcd_real_8 plaq; + + int myid,numprocs, namelen; + char processor_name[MPI_MAX_PROCESSOR_NAME]; + + + + + //set up MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation + MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID + MPI_Get_processor_name(processor_name,&namelen); // + + +//////////////////// READ INPUT FILE ///////////////////////////////////////////// + + if(argc!=2) + { + if(myid==0) fprintf(stderr,"No input file specified\n"); + exit(EXIT_FAILURE); + } + + strcpy(param_name,argv[1]); + if(myid==0) + { + i=0; + printf("opening input file %s\n",param_name); + params=qcd_getParams(param_name,¶ms_len); + if(params==NULL) + { + i=1; + } + } + MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); + if(i==1) exit(EXIT_FAILURE); + MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); + if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); + MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); + + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); + if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) exit(EXIT_FAILURE); + + if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); + + /* + sscanf(qcd_getParam("",params,params_len),"%d",&t_sink); + if(myid==0) printf("process %i: Got sink time slice: %d\n",myid, t_sink); + + if(t_sink >= L[0]) + { + if(myid==0) fprintf(stderr, " Error: t_sink (=%d) >= L[0] (=%d),\n t_sink should be in [0, L[0]), did you forget to mod(t_sink, L[0]) ?\n", t_sink, L[0]); + exit(EXIT_FAILURE); + } + */ +// sscanf(qcd_getParam("",params,params_len),"%d",&t_src); +// if(myid==0) printf("process %i: Got source time slice: %d\n",myid, t_src); + + sscanf(qcd_getParam("",params,params_len),"%hu",&nsources); + if(myid==0) printf("process %i: Got number of sources: %d\n",myid, nsources); + + source_name= malloc(nsources*sizeof(*source_name)); + source_type= malloc(nsources*sizeof(qcd_uint_2)); + t_sink= malloc(nsources*sizeof(qcd_uint_4)); + t_sink_uniq= malloc(nsources*sizeof(qcd_uint_4)); + + for(i=0; i",i+1); + sscanf(qcd_getParam(tmp_string,params,params_len),"%d",&t_sink[i]); + if(myid==0) printf("Got #%d sink time slice: %d\n",i+1,t_sink[i]); + if(t_sink[i] >= L[0]) + { + if(myid==0) fprintf(stderr, " Error: t_sink[%d] (=%d) >= L[0] (=%d),\n t_sink should be in [0, L[0]), did you forget to mod(t_sink, L[0]) ?\n",i, t_sink[i], L[0]); + exit(EXIT_FAILURE); + } + + sprintf(tmp_string,"",i+1); + sscanf(qcd_getParam(tmp_string,params,params_len),"%hu",&source_type[i]); + if(myid==0) printf("Sequential source #%d type: Proj%d\n",i+1, source_type[i]); + sprintf(tmp_string,"",i+1); + strcpy(source_name[i],qcd_getParam(tmp_string,params,params_len)); + if(myid==0) printf("Sequential source #%d name: %s\n",i, source_name[i]); + } + + //Find unique sink times + tuniq=0; + t_sink_uniq[tuniq] = t_sink[0]; + tuniq++; + for(i=1;i",params,params_len),"%lf",&alpha); + if(myid==0) printf(" Got alpha_gauss: %lf\n",alpha); + sscanf(qcd_getParam("",params,params_len),"%d",&nsmear); + if(myid==0) printf(" Got nsmear_gauss: %d\n",nsmear); + sscanf(qcd_getParam("",params,params_len),"%lf",&alphaAPE); + if(myid==0) printf(" Got alpha_APE: %lf\n",alphaAPE); + sscanf(qcd_getParam("",params,params_len),"%d",&nsmearAPE); + if(myid==0) printf(" Got nsmear_APE: %d\n",nsmearAPE); + strcpy(gauge_name,qcd_getParam("",params,params_len)); + if(myid==0) printf(" Got conf name: %s\n",gauge_name); + + + strcpy(prop_u_name,qcd_getParam("",params,params_len)); + if(myid==0) printf(" Got u-propagator name: %s\n",prop_u_name); + + free(params); + + +/////////////////////////////////////////////////////////////////////////////////////////////////// + + /* load gauge field and APE-smear it */ + qcd_initGaugeField(&u,&geo); + qcd_initGaugeField(&uAPE,&geo); + + if(qcd_getGaugeField(gauge_name,qcd_GF_LIME,&u)) + { + fprintf(stderr,"process %i: Error reading gauge field!\n",myid); + exit(EXIT_FAILURE); + } + + if(myid==0) printf("gauge-field loaded\n"); + plaq = qcd_calculatePlaquette(&u); + if(myid==0) printf("plaquette = %e\n",plaq); + + u_ptr = &u; + uAPE_ptr = &uAPE; + for(i=0; i1e-3) + { + cg5cg5_val[ctr] = C; + cg5cg5_ind[ctr][0] = mu; + cg5cg5_ind[ctr][1] = nu; + cg5cg5_ind[ctr][2] = ku; + cg5cg5_ind[ctr][3] = lu; + ctr++; + } + } + + for(isource=0; isource=0) && (lt_sink1e-3) + { + factor = qcd_CMUL(qcd_CSCALE(PROJECTOR[source_type[isource]][a][b],-qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]), + cg5cg5_val[ctr2]); + + for(z=0; z1 2 2 2 + * 8 8 8 8 + * 4.0 + * 50 + * 0.5 + * 20 + * conf88.0000 + * sollist_u.0000 + * sollist_d.0000 + * 5 + * 3 + * 10 + * 13 + * seq_src_Proj13_ts_10_list + * 10 + * 3 + * seq_src_Proj3_ts_10_list + * 10 + * 4 + * seq_src_Proj4_ts_10_list + * 12 + * 3 + * seq_src_Proj3_ts_12_list + * 14 + * 4 + * seq_src_Proj4_ts14_list + * + * + * + * Tomasz Korzec 2009 + ****************************************/ + +#include +#include +#include +#include +#include +#include +#include "projectors.h" + + + + +int main(int argc,char* argv[]) +{ + qcd_uint_4 i,k,mu,nu,ku,lu,c1,c2,v,x,y,z; // loop variables + qcd_uint_4 c3,c1p,c2p,c3p,ctr,ctr2; + qcd_uint_4 cc1,cc2,a,b,gu,ju; + qcd_uint_4 isource,tcheck,tuniq; // .. + qcd_uint_4 *t_sink,*t_sink_uniq; + int lt_sink; // sink/source time-slice + + qcd_uint_2 n_tsink,nsources; // number of different tsinks and total number of sources + + qcd_uint_4 nsmear, nsmearAPE; // gaussian and APE smearing: n + qcd_real_8 alpha, alphaAPE; // gaussian and APE smearing: alpha + int params_len; // needed to read inputfiles + char *params = NULL; // needed to read inputfiles + char tmp_string[qcd_MAX_STRING_LENGTH]; // general purpuse + char param_name[qcd_MAX_STRING_LENGTH]; + + char gauge_name[qcd_MAX_STRING_LENGTH]; // name of gauge-config file + char **source_name; // names of output files + qcd_uint_2 *source_type; // types of sources + + qcd_uint_2 L[4], P[4]; // lattice size and subdivision of lattice + qcd_geometry geo; // geometry structure + qcd_propagator prop_u; // u-propagator + qcd_propagator prop_d; // d-propagator + qcd_propagator prop_tmp; // needed when rotating etc. + qcd_vector vec; // needed when smearing + qcd_gaugeField u; // gauge field + qcd_gaugeField uAPE; // APE smeared gaugeField + qcd_gaugeField *u_ptr, *uAPE_ptr, *utmp_ptr; + + char prop_u_name[qcd_MAX_STRING_LENGTH]; // file names of up and down quark propagators + char prop_d_name[qcd_MAX_STRING_LENGTH]; + + qcd_real_8 theta[4] = {M_PI, 0.0, 0.0, 0.0}; // antiperiodic b.c. in time + + // C gamma_5 x \bar C gamma_5 + // nonzero entries of [C gamma_5]_ab [\bar C gamma_5]_cd are in + // a=cg5cg5_ind[..][0], b=cg5cg5_ind[..][1], c=cg5cg5_ind[..][2], d=cg5cg5_ind[..][3] + qcd_uint_2 cg5cg5_ind[16][4]; + qcd_complex_16 cg5cg5_val[16]; + + qcd_complex_16 C, factor; + qcd_real_8 plaq; + + int myid,numprocs, namelen; + char processor_name[MPI_MAX_PROCESSOR_NAME]; + + + //set up MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation + MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID + MPI_Get_processor_name(processor_name,&namelen); // + + +//////////////////// READ INPUT FILE ///////////////////////////////////////////// + + if(argc!=2) + { + if(myid==0) fprintf(stderr,"No input file specified\n"); + exit(EXIT_FAILURE); + } + + strcpy(param_name,argv[1]); + if(myid==0) + { + i=0; + printf("opening input file %s\n",param_name); + params=qcd_getParams(param_name,¶ms_len); + if(params==NULL) + { + i=1; + } + } + MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); + if(i==1) exit(EXIT_FAILURE); + MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); + if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); + MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); + + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); + if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) exit(EXIT_FAILURE); + + if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); + + /* + sscanf(qcd_getParam("",params,params_len),"%d",&t_sink); + if(myid==0) printf("process %i: Got sink time slice: %d\n",myid, t_sink); + if(t_sink >= L[0]) + { + if(myid==0) fprintf(stderr, " Error: t_sink (=%d) >= L[0] (=%d),\n t_sink should be in [0, L[0]), did you forget to mod(t_sink, L[0]) ?\n", t_sink, L[0]); + exit(EXIT_FAILURE); + } + */ + +// sscanf(qcd_getParam("",params,params_len),"%d",&t_src); +// if(myid==0) printf("process %i: Got source time slice: %d\n",myid, t_src); + + sscanf(qcd_getParam("",params,params_len),"%hu",&nsources); + if(myid==0) printf("process %i: Got total number of sources: %d\n",myid, nsources); + + source_name= malloc(nsources*sizeof(*source_name)); + source_type= malloc(nsources*sizeof(qcd_uint_2)); + t_sink= malloc(nsources*sizeof(qcd_uint_4)); + t_sink_uniq= malloc(nsources*sizeof(qcd_uint_4)); + + for(i=0; i",i+1); + sscanf(qcd_getParam(tmp_string,params,params_len),"%d",&t_sink[i]); + if(myid==0) printf("Got #%d sink time slice: %d\n",i+1,t_sink[i]); + if(t_sink[i] >= L[0]) + { + if(myid==0) fprintf(stderr, " Error: t_sink[%d] (=%d) >= L[0] (=%d),\n t_sink should be in [0, L[0]), did you forget to mod(t_sink, L[0]) ?\n",i, t_sink[i], L[0]); + exit(EXIT_FAILURE); + } + + sprintf(tmp_string,"",i+1); + sscanf(qcd_getParam(tmp_string,params,params_len),"%hu",&source_type[i]); + if(myid==0) printf("Sequential source #%d type: Proj%d\n",i+1, source_type[i]); + sprintf(tmp_string,"",i+1); + strcpy(source_name[i],qcd_getParam(tmp_string,params,params_len)); + if(myid==0) printf("Sequential source #%d name: %s\n",i, source_name[i]); + } + + //Find unique sink times + tuniq=0; + t_sink_uniq[tuniq] = t_sink[0]; + tuniq++; + for(i=1;i",params,params_len),"%lf",&alpha); + if(myid==0) printf(" Got alpha_gauss: %lf\n",alpha); + sscanf(qcd_getParam("",params,params_len),"%d",&nsmear); + if(myid==0) printf(" Got nsmear_gauss: %d\n",nsmear); + sscanf(qcd_getParam("",params,params_len),"%lf",&alphaAPE); + if(myid==0) printf(" Got alpha_APE: %lf\n",alphaAPE); + sscanf(qcd_getParam("",params,params_len),"%d",&nsmearAPE); + if(myid==0) printf(" Got nsmear_APE: %d\n",nsmearAPE); + strcpy(gauge_name,qcd_getParam("",params,params_len)); + if(myid==0) printf(" Got conf name: %s\n",gauge_name); + + + strcpy(prop_u_name,qcd_getParam("",params,params_len)); + if(myid==0) printf(" Got u-propagator name: %s\n",prop_u_name); + strcpy(prop_d_name,qcd_getParam("",params,params_len)); + if(myid==0) printf(" Got d-propagator name: %s\n",prop_d_name); + + free(params); + + +/////////////////////////////////////////////////////////////////////////////////////////////////// + + /* load gauge field and APE-smear it */ + qcd_initGaugeField(&u,&geo); + qcd_initGaugeField(&uAPE,&geo); + + if(qcd_getGaugeField(gauge_name,qcd_GF_LIME,&u)) + { + fprintf(stderr,"process %i: Error reading gauge field!\n",myid); + exit(EXIT_FAILURE); + } + + if(myid==0) printf("gauge-field loaded\n"); + plaq = qcd_calculatePlaquette(&u); + if(myid==0) printf("plaquette = %e\n",plaq); + + u_ptr = &u; + uAPE_ptr = &uAPE; + for(i=0; i1e-3) + { + cg5cg5_val[ctr] = C; + cg5cg5_ind[ctr][0] = mu; + cg5cg5_ind[ctr][1] = nu; + cg5cg5_ind[ctr][2] = ku; + cg5cg5_ind[ctr][3] = lu; + ctr++; + } + } + + for(isource=0; isource=0) && (lt_sink1e-3) + { + factor = qcd_CMUL(qcd_CSCALE(PROJECTOR[source_type[isource]][a][b],qcd_SGN_EPS[cc1]*qcd_SGN_EPS[cc2]), + cg5cg5_val[ctr2]); + + for(nu=0; nu<4; nu++) + for(lu=0; lu<4; lu++) + for(z=0; z +#include +#include +#include +#include +#include + + +int main(int argc,char* argv[]) +{ + qcd_uint_4 i; + int myid,numprocs, namelen; + char processor_name[MPI_MAX_PROCESSOR_NAME]; + int params_len; // needed to read inputfiles + char *params = NULL; // needed to read inputfiles + char param_name[qcd_MAX_STRING_LENGTH]; // name of parameter file + char gauge_base_name[qcd_MAX_STRING_LENGTH]; // name of gauge-configuration file + char gauge_name[qcd_MAX_STRING_LENGTH]; // name of gauge-configuration file + char APE_gauge_name[qcd_MAX_STRING_LENGTH];// name of gauge-configuration output file + char APE_base_name[qcd_MAX_STRING_LENGTH];// name of gauge-configuration output file + qcd_real_8 theta[4] = {M_PI,0.0,0.0,0.0}; // antiperiodic b.c. in time + qcd_uint_2 L[4]; + qcd_uint_2 P[4]; + qcd_geometry geo; + qcd_gaugeField u, uAPE; + qcd_gaugeField *u_ptr, *uAPE_ptr, *utmp_ptr; + qcd_real_8 plaq; + qcd_real_8 alphaAPE,alphaAPE_orig; + int nAPE; + int trans_alpha; + int gauge_traj; + + //set up MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation + MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID + MPI_Get_processor_name(processor_name,&namelen); // + char *message; + char *message2; + + //////////////////// READ INPUT FILE ///////////////////////////////////////////// + + if(argc!=2) + { + if(myid==0) fprintf(stderr,"No input file specified\n"); + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + strcpy(param_name,argv[1]); + if(myid==0) + { + i=0; + printf("opening input file %s\n",param_name); + params=qcd_getParams(param_name,¶ms_len); + if(params==NULL) + { + i=1; + } + } + MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); + if(i==1) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); + if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); + MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); + + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); + if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) + { + MPI_Finalize(); + exit(EXIT_FAILURE); + } + + if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); + + strcpy(gauge_base_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got conf name: %s\n",gauge_base_name); + sscanf(qcd_getParam("",params,params_len),"%d",&gauge_traj); + if(myid==0) printf("Got conf trajectory: %d\n",gauge_traj); + + sprintf(gauge_name,"%s.%04d",gauge_base_name,gauge_traj); + if(myid==0) printf("Will read conf from %s\n",gauge_name); + + strcpy(APE_base_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got smeared conf base name: %s\n",APE_base_name); + + sscanf(qcd_getParam("",params,params_len),"%lf",&alphaAPE); + if(myid==0) printf(" Got alpha_APE: %lf\n",alphaAPE); + alphaAPE_orig = alphaAPE; + + sscanf(qcd_getParam("",params,params_len),"%d",&nAPE); + if(myid==0) printf(" Got nsmear_APE: %d\n",nAPE); + + sscanf(qcd_getParam("",params,params_len),"%d",&trans_alpha); + if(trans_alpha){ + alphaAPE = alphaAPE/(6.0*(1.0-alphaAPE)); + if(myid==0) printf("* Will transform alphaAPE to qcd convention.\n"); + } + else{ + if(myid==0) printf("* Will NOT transform alphaAPE to qcd convention\n"); + } + + if(myid==0) printf("alphaAPE in use is: %lf\n",alphaAPE); + + free(params); + + /////////////////////////////////////////////////////////////////////////// + + int j,k; + j = 0; + j += qcd_initGaugeField(&u, &geo); + j += qcd_initGaugeField(&uAPE,&geo); + MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if(k>0){ + if(myid==0) fprintf(stderr,"Error, not enough memory\n"); + exit(EXIT_FAILURE); + } + + if(qcd_getGaugeField(gauge_name,qcd_GF_LIME,&u)){ + fprintf(stderr,"process %i: Error reading gauge field!\n",myid); + MPI_Finalize(); + exit(EXIT_FAILURE); + } + if(myid==0) printf("gauge-field loaded\n"); + plaq = qcd_calculatePlaquette(&u); + if(myid==0) printf("plaquette = %e\n",plaq); + + qcd_communicateGaugePM(&u); + qcd_waitall(&geo); + + u_ptr = &u; + uAPE_ptr = &uAPE; + for(i=0; i +#include +#include +#include +#include +#include +#include +#include + + +int main(int argc, char *argv[]){ + + int i,j,k,i1,i2,i3,al,be,ga,de,prid,projlist[3] = {16,15,4},proj; + + qcd_complex_16 Pr32[9][4][4],delta,Fin_proj[3][4][4][3][3],Wrg_proj[3][4][4][3][3]; + qcd_real_8 fac = 1.0/3.0; + qcd_complex_16 cfac; + qcd_complex_16 gamma12[4][4],gamma13[4][4],gamma23[4][4]; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + gamma12[i][j] = (qcd_complex_16) {0,0}; + gamma13[i][j] = (qcd_complex_16) {0,0}; + gamma23[i][j] = (qcd_complex_16) {0,0}; + + for(k=0;k<4;k++){ + gamma12[i][j] = qcd_CADD(gamma12[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[2][k][j])); + gamma13[i][j] = qcd_CADD(gamma13[i][j],qcd_CMUL(qcd_GAMMA[1][i][k],qcd_GAMMA[3][k][j])); + gamma23[i][j] = qcd_CADD(gamma23[i][j],qcd_CMUL(qcd_GAMMA[2][i][k],qcd_GAMMA[3][k][j])); + } + } + } + + for(i=0;i<9;i++){ + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr32[i][al][be] = (qcd_complex_16) {0.0,0.0}; + } + } + } + + // Define the digonal elements of the projector to 3/2 + // elements of [0][al][be], [4][al][be] [8][al][be] for al!=be are zero by definition + delta = (qcd_complex_16) {1.0,0.0}; + cfac = (qcd_complex_16) {1.0/3.0,0.0}; + for(al=0;al<4;al++){ + Pr32[0][al][al] = qcd_CSUB(delta,cfac); // Pr_11 + Pr32[4][al][al] = qcd_CSUB(delta,cfac); // Pr_22 + Pr32[8][al][al] = qcd_CSUB(delta,cfac); // Pr_33 + } + + // Define the rest elements + delta = (qcd_complex_16) {0.0,0.0}; + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + Pr32[1][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma12[al][be],fac)); // Pr_12 + Pr32[2][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma13[al][be],fac)); // Pr_13 + Pr32[5][al][be] = qcd_CSUB(delta,qcd_CSCALE(gamma23[al][be],fac)); // Pr_23 + + Pr32[3][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma12[al][be],-1.0),fac)); // Pr_21 + Pr32[6][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma13[al][be],-1.0),fac)); // Pr_31 + Pr32[7][al][be] = qcd_CSUB(delta,qcd_CSCALE(qcd_CSCALE(gamma23[al][be],-1.0),fac)); // Pr_32 + } + } + + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + for(al=0;al<4;al++){ + for(be=0;be<4;be++){ + i1 = j+3*i; + printf("Pr %d %d %d %d = %lf %lf\n",al+1,be+1,i+1,j+1,Pr32[i1][al][be].re,Pr32[i1][al][be].im); + } + } + } + } + + printf("\n\n\n"); + + + //-Define the projector + for(prid=0;prid<3;prid++){ + proj = projlist[prid]; + + for(al=0;al<4;al++){ + for(de=0;de<4;de++){ + for(k=0;k<3;k++){ + for(j=0;j<3;j++){ + Fin_proj[prid][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; + + for(i=0;i<3;i++){ + i1 = i+3*k; + i2 = j+3*i; + for(be=0;be<4;be++){ + for(ga=0;ga<4;ga++){ + + Fin_proj[prid][al][de][k][j] = qcd_CADD(Fin_proj[prid][al][de][k][j],qcd_CMUL(Pr32[i1][al][be],qcd_CMUL(PROJECTOR[proj][be][ga],Pr32[i2][ga][de]))); + + }//-ga + }//-be + }//-i + }//-j + }//-k + }//-de + }//-al + }//-prid + + + /* for(al=0;al<4;al++){ */ + /* for(de=0;de<4;de++){ */ + /* for(k=0;k<3;k++){ */ + /* for(j=0;j<3;j++){ */ + /* Fin_proj[0][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; */ + /* Fin_proj[1][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; */ + /* Fin_proj[2][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; */ + /* Wrg_proj[0][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; */ + /* Wrg_proj[1][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; */ + /* Wrg_proj[2][al][de][k][j] = (qcd_complex_16) {0.0,0.0}; */ + + /* i3 = j+3*k; */ + /* for(be=0;be<4;be++){ */ + /* Wrg_proj[0][al][de][k][j] = qcd_CADD(Wrg_proj[0][al][de][k][j],qcd_CMUL(Pr32[i3][al][be],PROJECTOR[16][be][de])); */ + /* Wrg_proj[1][al][de][k][j] = qcd_CADD(Wrg_proj[1][al][de][k][j],qcd_CMUL(Pr32[i3][al][be],PROJECTOR[15][be][de])); */ + /* Wrg_proj[2][al][de][k][j] = qcd_CADD(Wrg_proj[2][al][de][k][j],qcd_CMUL(Pr32[i3][al][be],PROJECTOR[4][be][de])); */ + /* } */ + + /* for(i=0;i<3;i++){ */ + /* i1 = i+3*k; */ + /* i2 = j+3*i; */ + /* for(be=0;be<4;be++){ */ + /* for(ga=0;ga<4;ga++){ */ + /* Fin_proj[0][al][de][k][j] = qcd_CADD(Fin_proj[0][al][de][k][j],qcd_CMUL(Pr32[i1][al][be],qcd_CMUL(PROJECTOR[16][be][ga],Pr32[i2][ga][de]))); */ + /* Fin_proj[1][al][de][k][j] = qcd_CADD(Fin_proj[1][al][de][k][j],qcd_CMUL(Pr32[i1][al][be],qcd_CMUL(PROJECTOR[15][be][ga],Pr32[i2][ga][de]))); */ + /* Fin_proj[2][al][de][k][j] = qcd_CADD(Fin_proj[2][al][de][k][j],qcd_CMUL(Pr32[i1][al][be],qcd_CMUL(PROJECTOR[4][be][ga],Pr32[i2][ga][de]))); */ + /* } */ + /* } */ + /* } */ + /* } */ + /* } */ + /* } */ + /* } */ + + + for(k=0;k<3;k++){ + for(j=0;j<3;j++){ + for(al=0;al<4;al++){ + for(de=0;de<4;de++){ + printf("(%d,%d,%d,%d) (%lf,%lf) (%lf,%lf) (%lf,%lf)\n",al+1,de+1,k+1,j+1, + Fin_proj[0][al][de][k][j].re,Fin_proj[0][al][de][k][j].im, + Fin_proj[1][al][de][k][j].re,Fin_proj[1][al][de][k][j].im, + Fin_proj[2][al][de][k][j].re,Fin_proj[2][al][de][k][j].im); + /* Wrg_proj[0][al][de][k][j].re,Wrg_proj[0][al][de][k][j].im, */ + /* Wrg_proj[1][al][de][k][j].re,Wrg_proj[1][al][de][k][j].im, */ + /* Wrg_proj[2][al][de][k][j].re,Wrg_proj[2][al][de][k][j].im); */ + } + } + } + } + + + return 0; +} diff --git a/mainprogs/threep_all_opt.c b/mainprogs/threep_all_baryon.c similarity index 99% rename from mainprogs/threep_all_opt.c rename to mainprogs/threep_all_baryon.c index f253c0e..56ec134 100644 --- a/mainprogs/threep_all_opt.c +++ b/mainprogs/threep_all_baryon.c @@ -16,6 +16,7 @@ #include #include #include +#include int main(int argc,char* argv[]) { diff --git a/mainprogs/twop_all_hadr.c b/mainprogs/twop_all_hadr.c new file mode 100644 index 0000000..3c36c1d --- /dev/null +++ b/mainprogs/twop_all_hadr.c @@ -0,0 +1,1280 @@ +/* twop_all_hadr.c + * + * reads forward propagators + * and creates two point functions for the 40 baryons + * + * Christos Kallidonis + * + * April 2012 + * + * Mods: June 2015, Added contractions for pseudoscalar, scalar, vector and axial vector mesons + ****************************************/ + +/* SAMPLE INPUT FILE + + echo "1 8 8 8" > twop_0100.ini + echo "64 32 32 32" >> twop_0100.ini + echo "0 63" >> twop_0100.ini + echo "0 0 0 0" >> twop_0100.ini + echo "propu_list_0100.txt" >> twop_0100.ini + echo "propd_list_0100.txt" >> twop_0100.ini + echo "props_list_0100.txt" >> twop_0100.ini + echo "propc_list_0100.txt" >> twop_0100.ini + echo "1 1 0 0" >> twop_0100.ini + echo "0" >> twop_0100.ini + echo "1" >> twop_0100.ini + echo "conf.0100" >> twop_0100.ini + echo "twopt_0100" >> twop_0100.ini + echo "momentalist" >> twop_0100.ini + echo "4" >> twop_0100.ini + echo "110" >> twop_0100.ini + echo "0.5" >> twop_0100.ini + echo "50" >> twop_0100.ini + echo "particle.list" >> twop_0100.ini + +*/ + + +#include +#include +#include +#include +#include +#include +#include + +int main(int argc,char* argv[]) +{ + + qcd_uint_2 mu,nu,ku,lu,c1,c2,c3,c1p,c2p,c3p;// various loop variables + qcd_uint_2 id1,id2,id3,cc1,cc2,al,be; + qcd_uint_4 i,j,k, v,lx,ly,lz,ip1,im1,v3,lv3,tslices,iarr; + qcd_int_4 x,y,z; + qcd_uint_2 ic1,ic2,ic3; // + qcd_uint_4 x_src[4]; // source and sink coordinates + qcd_uint_4 t_sink, t_start, t_stop, t,lt; + qcd_real_8 tmp; // general purpuse + qcd_int_4 pc,p_id,p_num,*p_arr,*p_arr12,*p_arr32,m_id,nmom,p12,p32; + qcd_uint_4 uyes,dyes,syes,cyes,mesyes; + qcd_uint_4 unit_sc; + + FILE *fp_momlist,*fp_parlist; + + int params_len; // needed to read inputfiles + char *params; // needed to read inputfiles + + char gauge_name[qcd_MAX_STRING_LENGTH]; // name of gauge-configuration file + char corr_p_name[qcd_MAX_STRING_LENGTH]; + char param_name[qcd_MAX_STRING_LENGTH]; // name of parameter file + char momlist_name[qcd_MAX_STRING_LENGTH]; // name of momenta-list file + char particle_list[qcd_MAX_STRING_LENGTH]; + char uprop_name[qcd_MAX_STRING_LENGTH]; // file names of up and down quark propagators + char dprop_name[qcd_MAX_STRING_LENGTH]; + char sprop_name[qcd_MAX_STRING_LENGTH]; // file names of up and down quark propagators + char cprop_name[qcd_MAX_STRING_LENGTH]; + + + qcd_geometry geo; // geometry structure + qcd_propagator uprop,sprop,uprop_pb,dprop_pb; // propagator + qcd_propagator dprop,cprop,sprop_pb,cprop_pb; // propagator + qcd_vector vec,vec_u,vec_d,vec_s,vec_c; // needed when smearing + qcd_gaugeField u; // gauge field + qcd_gaugeField uAPE; // APE smeared gaugeField + qcd_gaugeField *u_ptr, *uAPE_ptr, *utmp_ptr; + + qcd_uint_4 nsmear, nsmearAPE; // gaussian and APE smearing: n + qcd_real_8 alpha, alphaAPE; // gaussian and APE smearing: alpha + + qcd_real_8 theta[4] = {M_PI,0.0,0.0,0.0}; // antiperiodic b.c. in time + qcd_uint_2 L[4]; + qcd_uint_2 P[4]; + qcd_complex_16 phase_factor; + qcd_complex_16 z1, z2; // temp variables + qcd_complex_16 C, C2; + qcd_complex_16 ***bcorr12[16],***bcorr32[16][3],bcorrsum12,bcorrsum32[3]; + qcd_complex_16 **mcorrp[19],**mcorra[19],mcorrsum[38]; + qcd_real_8 plaq; + qcd_int_4 ctr, ctr2; + qcd_int_2 cg5cg5_ind[16*16][4]; + qcd_complex_16 cg5cg5_val[16*16]; + qcd_complex_16 one_plus_ig5[4],one_minus_ig5[4],g5[4]; //-for transformation purposes + + qcd_complex_16 *block12[4][4],*block32[4][4],*blocknp[4][4]; // to store the block (2pt function before FT) + qcd_complex_16 *udblock,*dublock,*sdblock,*sublock,*cdblock,*cublock; // for mesons + qcd_complex_16 *a0ublock,*rho1ublock,*rho2ublock,*rho3ublock,*a11ublock,*a12ublock,*a13ublock; // for mesons + qcd_complex_16 *a0dblock,*rho1dblock,*rho2dblock,*rho3dblock,*a11dblock,*a12dblock,*a13dblock; // for mesons + qcd_complex_16 *Ks1ublock,*Ks2ublock,*Ks3ublock,*Ds1ublock,*Ds2ublock,*Ds3ublock,*K11ublock,*K12ublock,*K13ublock; // for mesons + qcd_complex_16 *Ks1dblock,*Ks2dblock,*Ks3dblock,*Ds1dblock,*Ds2dblock,*Ds3dblock,*K11dblock,*K12dblock,*K13dblock; // for mesons + qcd_complex_16 scalarGamma,vectorGamma[3],axVectorGamma[3]; // for mesons + + + qcd_int_4 (*mom)[3]; // momenta-list + + int myid,numprocs, namelen; + char processor_name[MPI_MAX_PROCESSOR_NAME]; + + + + qcd_complex_16 i_im ; // Imaginary i + + //set up MPI + MPI_Init(&argc, &argv); + MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation + MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID + MPI_Get_processor_name(processor_name,&namelen); // + + int nthreads; + +#pragma omp parallel + { + + nthreads=omp_get_num_threads(); + } + + if(myid==0) printf("Running OpenMP with num_threads=%d\n",nthreads); + + + + //////////////////// READ INPUT FILE ///////////////////////////////////////////// + + if(argc!=2) + { + if(myid==0) fprintf(stderr,"No input file specified\n"); + exit(EXIT_FAILURE); + } + + strcpy(param_name,argv[1]); + if(myid==0) + { + i=0; + printf("opening input file %s\n",param_name); + params=qcd_getParams(param_name,¶ms_len); + if(params==NULL) + { + i=1; + } + } + MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); + if(i==1) exit(EXIT_FAILURE); + MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); + if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); + MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); + + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); + sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); + if(P[0] != 1) + { + if(myid==0) fprintf(stderr,"Error! Number of processors in t-direction must be one.\n"); + exit(EXIT_FAILURE); + } + if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) exit(EXIT_FAILURE); + + if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); + + sscanf(qcd_getParam("",params,params_len),"%d %d",&t_start, &t_stop); + tslices = t_stop-t_start+1; + if(myid==0) printf("Got sink time slices: %d ... %d\n Will run for a total of %d time slices\n",t_start,t_stop,tslices); + + + + + sscanf(qcd_getParam("",params,params_len),"%d %d %d %d",&x_src[0],&x_src[1],&x_src[2],&x_src[3]); + if(myid==0) printf("Got source coords: %d %d %d %d\n",x_src[0],x_src[1],x_src[2],x_src[3]); + + sscanf(qcd_getParam("",params,params_len),"%d %d %d %d",&uyes,&dyes,&syes,&cyes); + if(myid==0){ + printf("Will use propagators:\n"); + if(uyes) printf("up\n"); + if(dyes) printf("down\n"); + if(syes) printf("strange\n"); + if(cyes) printf("charm\n"); + } + + if(syes || cyes){ + sscanf(qcd_getParam("",params,params_len),"%d",&unit_sc); + if(myid==0){ + if(unit_sc) printf("Using unitary setup strange and charm propagators\n"); + else printf("Using mixed action setup strange and charm propagators\n"); + } + } + + sscanf(qcd_getParam("",params,params_len),"%d",&mesyes); + if(myid==0){ + if(mesyes) printf("Will do contractions for mesons as well\n"); + else printf("Will NOT do contractions for mesons\n"); + } + + + strcpy(uprop_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got propagator file name: %s\n",uprop_name); + strcpy(dprop_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got propagator file name: %s\n",dprop_name); + strcpy(sprop_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got propagator file name: %s\n",sprop_name); + strcpy(cprop_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got propagator file name: %s\n",cprop_name); + + strcpy(gauge_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got conf name: %s\n",gauge_name); + + + strcpy(corr_p_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got output file name: %s\n",corr_p_name); + + strcpy(momlist_name,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got momenta-list file name: %s\n",momlist_name); + + sscanf(qcd_getParam("",params,params_len),"%lf",&alpha); + if(myid==0) printf(" Got alpha_gauss: %lf\n",alpha); + sscanf(qcd_getParam("",params,params_len),"%d",&nsmear); + if(myid==0) printf(" Got nsmear_gauss: %d\n",nsmear); + sscanf(qcd_getParam("",params,params_len),"%lf",&alphaAPE); + if(myid==0) printf(" Got alpha_APE: %lf\n",alphaAPE); + sscanf(qcd_getParam("",params,params_len),"%d",&nsmearAPE); + if(myid==0) printf(" Got nsmear_APE: %d\n",nsmearAPE); + + strcpy(particle_list,qcd_getParam("",params,params_len)); + if(myid==0) printf("Got particle-list file name: %s\n",particle_list); + + free(params); + + lv3 = geo.lL[1]*geo.lL[2]*geo.lL[3]; + + + //##################################################################### + // allocate memory + // load gauge-field and APE-smear it + + if(myid==0) printf("Memory allocations...\n"); + + j=0; + j += qcd_initGaugeField(&u, &geo); + j += qcd_initGaugeField(&uAPE,&geo); + MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); + if(k>0) + { + if(myid==0) fprintf(stderr,"Error, not enough memory\n"); + exit(EXIT_FAILURE); + } + + if(qcd_getGaugeField(gauge_name,qcd_GF_LIME,&u)) + { + if(myid==0) fprintf(stderr,"Error reading gauge field\n"); + exit(EXIT_FAILURE); + } + if(myid==0) printf("gauge-field loaded\n"); + plaq = qcd_calculatePlaquette(&u); + if(myid==0) printf("plaquette = %e\n",plaq); + qcd_communicateGaugePM(&u); + qcd_waitall(&geo); + u_ptr = &u; + uAPE_ptr = &uAPE; + for(i=0; i0) + { + if(myid==0) printf("not enough memory\n"); + exit(EXIT_FAILURE); + } + if(myid==0) printf("memory for propagators, blocks and gauge-field allocated\n"); + + //-load momenta-list + if(myid==0){ + fp_momlist = fopen(momlist_name,"r"); + if(fp_momlist==NULL){ + printf("failed to open %s for reading\n",momlist_name); + k=1; + } + } + MPI_Bcast(&k,1,MPI_INT, 0, MPI_COMM_WORLD); + if(k==1) exit(EXIT_FAILURE); + + + if(myid==0) fscanf(fp_momlist,"%i\n",&nmom); + MPI_Bcast(&nmom,1,MPI_INT, 0, MPI_COMM_WORLD); + if(myid==0) printf("will read %i momenta combinations\n",nmom); + + mom = malloc(nmom*3*sizeof(qcd_int_4)); + + if(myid==0) + { + for(j=0; j1) printf("\n%d of those are spin-1/2 and %d are spin-3/2\n",p12,p32); + } + + MPI_Bcast(&p_arr[0],p_num,MPI_INT, 0, MPI_COMM_WORLD); + MPI_Bcast(&p12,1,MPI_INT, 0, MPI_COMM_WORLD); + MPI_Bcast(&p32,1,MPI_INT, 0, MPI_COMM_WORLD); + + if(p12) p_arr12 = malloc(p12*sizeof(qcd_int_4)); + if(p32) p_arr32 = malloc(p32*sizeof(qcd_int_4)); + + i=0; j=0; + for(pc=0;pc0){ + if(myid==0) printf("not enough memory\n"); + exit(EXIT_FAILURE); + } + + for(mu=0;mu<4;mu++) + for(c1=0;c1<3;c1++){ + + if(uyes){ + qcd_copyVectorPropagator(&vec,&uprop_pb,mu,c1); + for(i=0; i=1) exit(EXIT_FAILURE); + + if(myid==0) printf("Files opened properly\n"); + + //################################################################################ + //################################################################################ + //################################################################################ + + //--------------------------- C O N T R A C T I O N S + + //------------------------------------------------------------MESONS------------------------------ + if(mesyes){ + + for(t=t_start; t<=t_stop; t++){ + lt = ((t+x_src[0])%geo.L[0]) - geo.Pos[0]*geo.lL[0]; + if(lt>=0 && lt=0 && lt=0 && lt1 8 8 8" > twop_0100.ini -echo "64 32 32 32" >> twop_0100.ini -echo "0 63" >> twop_0100.ini -echo "0 0 0 0" >> twop_0100.ini -echo "propu_list_0100.txt" >> twop_0100.ini -echo "propd_list_0100.txt" >> twop_0100.ini -echo "props_list_0100.txt" >> twop_0100.ini -echo "propc_list_0100.txt" >> twop_0100.ini -echo "1 1 0 0" >> twop_0100.ini -echo "0" >> twop_0100.ini -echo "1" >> twop_0100.ini -echo "conf.0100" >> twop_0100.ini -echo "twopt_0100" >> twop_0100.ini -echo "momentalist" >> twop_0100.ini -echo "4" >> twop_0100.ini -echo "110" >> twop_0100.ini -echo "0.5" >> twop_0100.ini -echo "50" >> twop_0100.ini -echo "particle.list" >> twop_0100.ini - -*/ - - -#include -#include -#include -#include -#include -#include - -int main(int argc,char* argv[]) -{ - - qcd_uint_2 mu,nu,ku,lu,c1,c2,c3,c1p,c2p,c3p;// various loop variables - qcd_uint_2 id1,id2,id3,cc1,cc2,al,be; - qcd_uint_4 i,j,k, v,lx,ly,lz,ip1,im1,v3,lv3,tslices,iarr; - qcd_int_4 x,y,z; - qcd_uint_2 ic1,ic2,ic3; // - qcd_uint_4 x_src[4]; // source and sink coordinates - qcd_uint_4 t_sink, t_start, t_stop, t,lt; - qcd_real_8 tmp; // general purpuse - qcd_int_4 pc,p_id,p_num,*p_arr,*p_arr12,*p_arr32,m_id,nmom,p12,p32; - qcd_uint_4 uyes,dyes,syes,cyes,mesyes; - qcd_uint_4 unit_sc; - - FILE *fp_momlist,*fp_parlist; - - int params_len; // needed to read inputfiles - char *params; // needed to read inputfiles - - char gauge_name[qcd_MAX_STRING_LENGTH]; // name of gauge-configuration file - char corr_p_name[qcd_MAX_STRING_LENGTH]; - char param_name[qcd_MAX_STRING_LENGTH]; // name of parameter file - char momlist_name[qcd_MAX_STRING_LENGTH]; // name of momenta-list file - char particle_list[qcd_MAX_STRING_LENGTH]; - char uprop_name[qcd_MAX_STRING_LENGTH]; // file names of up and down quark propagators - char dprop_name[qcd_MAX_STRING_LENGTH]; - char sprop_name[qcd_MAX_STRING_LENGTH]; // file names of up and down quark propagators - char cprop_name[qcd_MAX_STRING_LENGTH]; - - - qcd_geometry geo; // geometry structure - qcd_propagator uprop,sprop,uprop_pb,dprop_pb; // propagator - qcd_propagator dprop,cprop,sprop_pb,cprop_pb; // propagator - qcd_vector vec,vec_u,vec_d,vec_s,vec_c; // needed when smearing - qcd_gaugeField u; // gauge field - qcd_gaugeField uAPE; // APE smeared gaugeField - qcd_gaugeField *u_ptr, *uAPE_ptr, *utmp_ptr; - - qcd_uint_4 nsmear, nsmearAPE; // gaussian and APE smearing: n - qcd_real_8 alpha, alphaAPE; // gaussian and APE smearing: alpha - - qcd_real_8 theta[4] = {M_PI,0.0,0.0,0.0}; // antiperiodic b.c. in time - qcd_uint_2 L[4]; - qcd_uint_2 P[4]; - qcd_complex_16 phase_factor; - qcd_complex_16 z1, z2; // temp variables - qcd_complex_16 C, C2; - qcd_complex_16 ***bcorr12[16],***bcorr32[16][3],bcorrsum12,bcorrsum32[3]; - qcd_complex_16 **mcorrp[3],**mcorra[3],mcorrsum[6]; - qcd_real_8 plaq; - qcd_int_4 ctr, ctr2; - qcd_int_2 cg5cg5_ind[16*16][4]; - qcd_complex_16 cg5cg5_val[16*16]; - qcd_complex_16 one_plus_ig5[4],one_minus_ig5[4],g5[4]; //-for transformation purposes - - qcd_complex_16 *block12[4][4],*block32[4][4],*blocknp[4][4]; // to store the block (2pt function before FT) - qcd_complex_16 *udblock,*dublock,*usblock,*sublock,*cdblock,*dcblock; // for mesons - - - qcd_int_4 (*mom)[3]; // momenta-list - - int myid,numprocs, namelen; - char processor_name[MPI_MAX_PROCESSOR_NAME]; - - - - qcd_complex_16 i_im ; // Imaginary i - - //set up MPI - MPI_Init(&argc, &argv); - MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // num. of processes taking part in the calculation - MPI_Comm_rank(MPI_COMM_WORLD,&myid); // each process gets its ID - MPI_Get_processor_name(processor_name,&namelen); // - - int nthreads; - -#pragma omp parallel - { - - nthreads=omp_get_num_threads(); - } - - if(myid==0) printf("Running OpenMP with num_threads=%d\n",nthreads); - - - - //////////////////// READ INPUT FILE ///////////////////////////////////////////// - - if(argc!=2) - { - if(myid==0) fprintf(stderr,"No input file specified\n"); - exit(EXIT_FAILURE); - } - - strcpy(param_name,argv[1]); - if(myid==0) - { - i=0; - printf("opening input file %s\n",param_name); - params=qcd_getParams(param_name,¶ms_len); - if(params==NULL) - { - i=1; - } - } - MPI_Bcast(&i,1,MPI_INT, 0, MPI_COMM_WORLD); - if(i==1) exit(EXIT_FAILURE); - MPI_Bcast(¶ms_len, 1, MPI_INT, 0, MPI_COMM_WORLD); - if(myid!=0) params = (char*) malloc(params_len*sizeof(char)); - MPI_Bcast(params, params_len, MPI_CHAR, 0, MPI_COMM_WORLD); - - sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&P[0], &P[1], &P[2], &P[3]); - sscanf(qcd_getParam("",params,params_len),"%hd %hd %hd %hd",&L[0], &L[1], &L[2], &L[3]); - if(P[0] != 1) - { - if(myid==0) fprintf(stderr,"Error! Number of processors in t-direction must be one.\n"); - exit(EXIT_FAILURE); - } - if(qcd_initGeometry(&geo,L,P, theta, myid, numprocs)) exit(EXIT_FAILURE); - - if(myid==0) printf(" Local lattice: %i x %i x %i x %i\n",geo.lL[0],geo.lL[1],geo.lL[2],geo.lL[3]); - - sscanf(qcd_getParam("",params,params_len),"%d %d",&t_start, &t_stop); - tslices = t_stop-t_start+1; - if(myid==0) printf("Got sink time slices: %d ... %d\n Will run for a total of %d time slices\n",t_start,t_stop,tslices); - - - - - sscanf(qcd_getParam("",params,params_len),"%d %d %d %d",&x_src[0],&x_src[1],&x_src[2],&x_src[3]); - if(myid==0) printf("Got source coords: %d %d %d %d\n",x_src[0],x_src[1],x_src[2],x_src[3]); - - sscanf(qcd_getParam("",params,params_len),"%d %d %d %d",&uyes,&dyes,&syes,&cyes); - if(myid==0){ - printf("Will use propagators:\n"); - if(uyes) printf("up\n"); - if(dyes) printf("down\n"); - if(syes) printf("strange\n"); - if(cyes) printf("charm\n"); - } - - if(syes || cyes){ - sscanf(qcd_getParam("",params,params_len),"%d",&unit_sc); - if(myid==0){ - if(unit_sc) printf("Using unitary setup strange and charm propagators\n"); - else printf("Using mixed action setup strange and charm propagators\n"); - } - } - - sscanf(qcd_getParam("",params,params_len),"%d",&mesyes); - if(myid==0){ - if(mesyes) printf("Will do contractions for mesons as well\n"); - else printf("Will NOT do contractions for mesons\n"); - } - - - strcpy(uprop_name,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got propagator file name: %s\n",uprop_name); - strcpy(dprop_name,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got propagator file name: %s\n",dprop_name); - strcpy(sprop_name,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got propagator file name: %s\n",sprop_name); - strcpy(cprop_name,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got propagator file name: %s\n",cprop_name); - - strcpy(gauge_name,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got conf name: %s\n",gauge_name); - - - strcpy(corr_p_name,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got output file name: %s\n",corr_p_name); - - strcpy(momlist_name,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got momenta-list file name: %s\n",momlist_name); - - sscanf(qcd_getParam("",params,params_len),"%lf",&alpha); - if(myid==0) printf(" Got alpha_gauss: %lf\n",alpha); - sscanf(qcd_getParam("",params,params_len),"%d",&nsmear); - if(myid==0) printf(" Got nsmear_gauss: %d\n",nsmear); - sscanf(qcd_getParam("",params,params_len),"%lf",&alphaAPE); - if(myid==0) printf(" Got alpha_APE: %lf\n",alphaAPE); - sscanf(qcd_getParam("",params,params_len),"%d",&nsmearAPE); - if(myid==0) printf(" Got nsmear_APE: %d\n",nsmearAPE); - - strcpy(particle_list,qcd_getParam("",params,params_len)); - if(myid==0) printf("Got particle-list file name: %s\n",particle_list); - - free(params); - - lv3 = geo.lL[1]*geo.lL[2]*geo.lL[3]; - - - //##################################################################### - // allocate memory - // load gauge-field and APE-smear it - - if(myid==0) printf("Memory allocations...\n"); - - j=0; - j += qcd_initGaugeField(&u, &geo); - j += qcd_initGaugeField(&uAPE,&geo); - MPI_Allreduce(&j, &k, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); - if(k>0) - { - if(myid==0) fprintf(stderr,"Error, not enough memory\n"); - exit(EXIT_FAILURE); - } - - if(qcd_getGaugeField(gauge_name,qcd_GF_LIME,&u)) - { - if(myid==0) fprintf(stderr,"Error reading gauge field\n"); - exit(EXIT_FAILURE); - } - if(myid==0) printf("gauge-field loaded\n"); - plaq = qcd_calculatePlaquette(&u); - if(myid==0) printf("plaquette = %e\n",plaq); - qcd_communicateGaugePM(&u); - qcd_waitall(&geo); - u_ptr = &u; - uAPE_ptr = &uAPE; - for(i=0; i0) - { - if(myid==0) printf("not enough memory\n"); - exit(EXIT_FAILURE); - } - if(myid==0) printf("memory for propagators, blocks and gauge-field allocated\n"); - -//-load momenta-list - if(myid==0){ - fp_momlist = fopen(momlist_name,"r"); - if(fp_momlist==NULL){ - printf("failed to open %s for reading\n",momlist_name); - k=1; - } - } - MPI_Bcast(&k,1,MPI_INT, 0, MPI_COMM_WORLD); - if(k==1) exit(EXIT_FAILURE); - - - if(myid==0) fscanf(fp_momlist,"%i\n",&nmom); - MPI_Bcast(&nmom,1,MPI_INT, 0, MPI_COMM_WORLD); - if(myid==0) printf("will read %i momenta combinations\n",nmom); - - mom = malloc(nmom*3*sizeof(qcd_int_4)); - - if(myid==0) - { - for(j=0; j1) printf("\n%d of those are spin-1/2 and %d are spin-3/2\n",p12,p32); - } - - MPI_Bcast(&p_arr[0],p_num,MPI_INT, 0, MPI_COMM_WORLD); - MPI_Bcast(&p12,1,MPI_INT, 0, MPI_COMM_WORLD); - MPI_Bcast(&p32,1,MPI_INT, 0, MPI_COMM_WORLD); - - if(p12) p_arr12 = malloc(p12*sizeof(qcd_int_4)); - if(p32) p_arr32 = malloc(p32*sizeof(qcd_int_4)); - - i=0; j=0; - for(pc=0;pc0){ - if(myid==0) printf("not enough memory\n"); - exit(EXIT_FAILURE); - } - - for(mu=0;mu<4;mu++) - for(c1=0;c1<3;c1++){ - - if(uyes){ - qcd_copyVectorPropagator(&vec,&uprop_pb,mu,c1); - for(i=0; i=1) exit(EXIT_FAILURE); - - if(myid==0) printf("Files opened properly\n"); - -//################################################################################ -//################################################################################ -//################################################################################ - -//--------------------------- C O N T R A C T I O N S - -//------------------------------------------------------------MESONS------------------------------ - if(mesyes){ - - for(t=t_start; t<=t_stop; t++){ - lt = ((t+x_src[0])%geo.L[0]) - geo.Pos[0]*geo.lL[0]; - if(lt>=0 && lt=0 && lt=0 && lt