mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-14 01:35:36 +00:00
speed-up
This commit is contained in:
parent
5fd5c25114
commit
799ff0c96e
@ -361,15 +361,20 @@ void BaryonUtils<FImpl>::Sigma_to_Nucleon_Q1_Eye_site(const mobj &Dq_loop,
|
|||||||
int a_s = epsilon[ie_s][0]; //a'
|
int a_s = epsilon[ie_s][0]; //a'
|
||||||
int b_s = epsilon[ie_s][1]; //b'
|
int b_s = epsilon[ie_s][1]; //b'
|
||||||
int c_s = epsilon[ie_s][2]; //c'
|
int c_s = epsilon[ie_s][2]; //c'
|
||||||
for (int j=0; j<Nc; j++){
|
|
||||||
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
||||||
for (int beta_n=0; beta_n<Ns; beta_n++){
|
for (int beta_n=0; beta_n<Ns; beta_n++){
|
||||||
|
auto GDsGDd_ab_bb = GDsGDd()(alpha_s,beta_n)(b_s,b_n);
|
||||||
for (int tau2=0; tau2<Ns; tau2++){
|
for (int tau2=0; tau2<Ns; tau2++){
|
||||||
|
for (int j=0; j<Nc; j++){
|
||||||
|
auto DqG_tt_jj = DqG()(tau2,tau2)(j,j);
|
||||||
|
auto ee_GDGDDG = static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd_ab_bb * DqG_tt_jj;
|
||||||
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
||||||
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
||||||
result()(gamma_s,gamma_n)() += static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd()(alpha_s,beta_n)(b_s,b_n) * DqG()(tau2,tau2)(j,j) * DuG()(alpha_s, beta_n)(a_s,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
result()(gamma_s,gamma_n)() += ee_GDGDDG * DuG()(alpha_s, beta_n)(a_s,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
||||||
result()(gamma_s,gamma_n)() -= static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd()(alpha_s,beta_n)(b_s,b_n) * DqG()(tau2,tau2)(j,j) * DuG()(gamma_s, beta_n)(c_s,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
result()(gamma_s,gamma_n)() -= ee_GDGDDG * DuG()(gamma_s, beta_n)(c_s,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
||||||
}}}}}}
|
}}
|
||||||
|
}}
|
||||||
|
}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -411,17 +416,25 @@ void BaryonUtils<FImpl>::Sigma_to_Nucleon_Q1_NonEye_site(const mobj &Du_xi,
|
|||||||
int a_s = epsilon[ie_s][0]; //a'
|
int a_s = epsilon[ie_s][0]; //a'
|
||||||
int b_s = epsilon[ie_s][1]; //b'
|
int b_s = epsilon[ie_s][1]; //b'
|
||||||
int c_s = epsilon[ie_s][2]; //c'
|
int c_s = epsilon[ie_s][2]; //c'
|
||||||
for (int j=0; j<Nc; j++){
|
|
||||||
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
||||||
for (int beta_n=0; beta_n<Ns; beta_n++){
|
for (int beta_n=0; beta_n<Ns; beta_n++){
|
||||||
|
auto GDsGDd_ab_bb = GDsGDd()(alpha_s,beta_n)(b_s,b_n);
|
||||||
for (int tau2=0; tau2<Ns; tau2++){
|
for (int tau2=0; tau2<Ns; tau2++){
|
||||||
|
for (int j=0; j<Nc; j++){
|
||||||
|
auto DuGH_at_aj = DuGH()(alpha_s,tau2)(a_s,j);
|
||||||
|
auto ee_GDGDDG_a = static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd_ab_bb * DuGH_at_aj;
|
||||||
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
||||||
|
auto DuGH_gt_cj = DuGH()(gamma_s,tau2)(c_s,j);
|
||||||
|
auto ee_GDGDDG_c = static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd_ab_bb * DuGH_gt_cj;
|
||||||
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
||||||
result()(gamma_s,gamma_n)() += static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd()(alpha_s,beta_n)(b_s,b_n) * DuGH()(alpha_s,tau2)(a_s,j) * DuG()(gamma_s, beta_n)(c_s,a_n) * adjDu()(tau2,gamma_n)(j,c_n);
|
result()(gamma_s,gamma_n)() += ee_GDGDDG_a * DuG()(gamma_s, beta_n)(c_s,a_n) * adjDu()(tau2,gamma_n)(j,c_n);
|
||||||
result()(gamma_s,gamma_n)() += static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd()(alpha_s,beta_n)(b_s,b_n) * DuGH()(gamma_s,tau2)(c_s,j) * adjDuG()(tau2, beta_n)(j,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
result()(gamma_s,gamma_n)() += ee_GDGDDG_c * adjDuG()(tau2, beta_n)(j,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
||||||
result()(gamma_s,gamma_n)() -= static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd()(alpha_s,beta_n)(b_s,b_n) * DuGH()(alpha_s,tau2)(a_s,j) * adjDuG()(tau2, beta_n)(j,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
result()(gamma_s,gamma_n)() -= ee_GDGDDG_a * adjDuG()(tau2, beta_n)(j,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
||||||
result()(gamma_s,gamma_n)() -= static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsGDd()(alpha_s,beta_n)(b_s,b_n) * DuGH()(gamma_s,tau2)(c_s,j) * DuG()(alpha_s, beta_n)(a_s,a_n) * adjDu()(tau2,gamma_n)(j,c_n);
|
result()(gamma_s,gamma_n)() -= ee_GDGDDG_c * DuG()(alpha_s, beta_n)(a_s,a_n) * adjDu()(tau2,gamma_n)(j,c_n);
|
||||||
}}}}}}
|
}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -456,15 +469,20 @@ void BaryonUtils<FImpl>::Sigma_to_Nucleon_Q2_Eye_site(const mobj &Dq_loop,
|
|||||||
int a_s = epsilon[ie_s][0]; //a'
|
int a_s = epsilon[ie_s][0]; //a'
|
||||||
int b_s = epsilon[ie_s][1]; //b'
|
int b_s = epsilon[ie_s][1]; //b'
|
||||||
int c_s = epsilon[ie_s][2]; //c'
|
int c_s = epsilon[ie_s][2]; //c'
|
||||||
for (int i=0; i<Nc; i++){
|
|
||||||
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
||||||
for (int beta_n=0; beta_n<Ns; beta_n++){
|
|
||||||
for (int tau=0; tau<Ns; tau++){
|
for (int tau=0; tau<Ns; tau++){
|
||||||
|
for (int i=0; i<Nc; i++){
|
||||||
|
auto GDsG_at_bi = GDsG()(alpha_s,tau)(b_s,i);
|
||||||
|
for (int beta_n=0; beta_n<Ns; beta_n++){
|
||||||
|
auto DqGDd_tb_ib = DqGDd()(tau,beta_n)(i,b_n);
|
||||||
|
auto ee_GDGDGD = static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG_at_bi * DqGDd_tb_ib;
|
||||||
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
||||||
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
||||||
result()(gamma_s,gamma_n)() -= static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG()(alpha_s,tau)(b_s,i) * DqGDd()(tau,beta_n)(i,b_n) * DuG()(alpha_s, beta_n)(a_s,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
result()(gamma_s,gamma_n)() -= ee_GDGDGD * DuG()(alpha_s, beta_n)(a_s,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
||||||
result()(gamma_s,gamma_n)() += static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG()(alpha_s,tau)(b_s,i) * DqGDd()(tau,beta_n)(i,b_n) * DuG()(gamma_s, beta_n)(c_s,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
result()(gamma_s,gamma_n)() += ee_GDGDGD * DuG()(gamma_s, beta_n)(c_s,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
||||||
}}}}}}
|
}}
|
||||||
|
}
|
||||||
|
}}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -501,17 +519,25 @@ void BaryonUtils<FImpl>::Sigma_to_Nucleon_Q2_NonEye_site(const mobj &Du_xi,
|
|||||||
int a_s = epsilon[ie_s][0]; //a'
|
int a_s = epsilon[ie_s][0]; //a'
|
||||||
int b_s = epsilon[ie_s][1]; //b'
|
int b_s = epsilon[ie_s][1]; //b'
|
||||||
int c_s = epsilon[ie_s][2]; //c'
|
int c_s = epsilon[ie_s][2]; //c'
|
||||||
for (int i=0; i<Nc; i++){
|
|
||||||
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
for (int alpha_s=0; alpha_s<Ns; alpha_s++){
|
||||||
for (int beta_n=0; beta_n<Ns; beta_n++){
|
|
||||||
for (int tau=0; tau<Ns; tau++){
|
for (int tau=0; tau<Ns; tau++){
|
||||||
|
for (int i=0; i<Nc; i++){
|
||||||
|
auto GDsG_at_bi = GDsG()(alpha_s,tau)(b_s,i);
|
||||||
|
for (int beta_n=0; beta_n<Ns; beta_n++){
|
||||||
|
auto DuGDd_ab_ab = DuGDd()(alpha_s,beta_n)(a_s,b_n);
|
||||||
|
auto ee_GDGDGD_a = static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG_at_bi * DuGDd_ab_ab;
|
||||||
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
for (int gamma_s=0; gamma_s<Ns; gamma_s++){
|
||||||
|
auto DuGDd_gb_cb = DuGDd()(gamma_s,beta_n)(c_s,b_n);
|
||||||
|
auto ee_GDGDGD_c = static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG_at_bi * DuGDd_gb_cb;
|
||||||
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
for (int gamma_n=0; gamma_n<Ns; gamma_n++){
|
||||||
result()(gamma_s,gamma_n)() -= static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG()(alpha_s,tau)(b_s,i) * DuGDd()(alpha_s,beta_n)(a_s,b_n) * DuG()(gamma_s, beta_n)(c_s,a_n) * adjDu()(tau,gamma_n)(i,c_n);
|
result()(gamma_s,gamma_n)() -= ee_GDGDGD_a * DuG()(gamma_s, beta_n)(c_s,a_n) * adjDu()(tau,gamma_n)(i,c_n);
|
||||||
result()(gamma_s,gamma_n)() -= static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG()(alpha_s,tau)(b_s,i) * DuGDd()(gamma_s,beta_n)(c_s,b_n) * adjDuG()(tau, beta_n)(i,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
result()(gamma_s,gamma_n)() -= ee_GDGDGD_c * adjDuG()(tau, beta_n)(i,a_n) * Du_spec()(alpha_s,gamma_n)(a_s,c_n);
|
||||||
result()(gamma_s,gamma_n)() += static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG()(alpha_s,tau)(b_s,i) * DuGDd()(alpha_s,beta_n)(a_s,b_n) * adjDuG()(tau, beta_n)(i,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
result()(gamma_s,gamma_n)() += ee_GDGDGD_a * adjDuG()(tau, beta_n)(i,a_n) * Du_spec()(gamma_s,gamma_n)(c_s,c_n);
|
||||||
result()(gamma_s,gamma_n)() += static_cast<Complex>(epsilon_sgn[ie_n] * epsilon_sgn[ie_s]) * GDsG()(alpha_s,tau)(b_s,i) * DuGDd()(gamma_s,beta_n)(c_s,b_n) * DuG()(alpha_s, beta_n)(a_s,a_n) * adjDu()(tau,gamma_n)(i,c_n);
|
result()(gamma_s,gamma_n)() += ee_GDGDGD_c * DuG()(alpha_s, beta_n)(a_s,a_n) * adjDu()(tau,gamma_n)(i,c_n);
|
||||||
}}}}}}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user