40 #include <basic/Tracer.hh>
43 #include <utility/exit.hh>
46 #include <numeric/constants.hh>
53 #include <utility/vector1.hh>
100 if( (xM*xM + yM*yM + zM*zM) > 90000){
105 for (i = 1; i <= n_la; i++){
111 if((fabs(Xxx) + fabs(Xxy) + fabs(Xxz) + fabs(Xyy) + fabs(Xyz)) > limit){
144 if(n_la != pcs_d_l_vec.size()){
145 utility_exit_with_message(
"The number of lanthanides is inconsistent");
151 for (i = 1; i <= n_la; ++i){
170 for (j = 1; j <= n_pcs; ++j){
172 PCS_calc = A_all[idx][1]*Xxx + A_all[idx][2]*Xxy + A_all[idx][3]*Xxz + A_all[idx][4]*Xyy + A_all[idx][5]*Xyz;
173 PCS_exp = cstyle_b[j];
175 if(individual_scale >= 0.0){
176 score_la += (PCS_calc-PCS_exp) * (PCS_calc-PCS_exp) * cstyle_b_individual_scale_[j];
180 score_la += (PCS_calc-PCS_exp) * (PCS_calc-PCS_exp);
197 for(i = 1; i <= vars.size(); i++){
200 vars_bis_pd[i] += delta;
201 vars_bis_md[i] -= delta;
204 dE_dvars[i] = value_pd - value_md;
246 core::Real PCS_calc, PCS_exp, common2, common3;
256 if(n_la != (dE_dvars.size() - 3) / 5){
257 utility_exit_with_message(
"The number of lanthanides is inconsistent with the derivativessize of dE_dvars");
261 for (i = 1; i <= dE_dvars.size(); i++){
266 vec_temp.resize(dE_dvars.size(), 0);
282 if(n_la != pcs_d_l_vec.size()){
283 utility_exit_with_message(
"The number of lanthanides is inconsistent");
286 for (i = 1; i <= n_la; i++){
288 for (p = 1; p <= vec_temp.size(); p++){
309 for (j = 1; j <= n_pcs; j++){
314 PCS_calc = A_all[idx][1]*Xxx + A_all[idx][2]*Xxy + A_all[idx][3]*Xxz + A_all[idx][4]*Xyy + A_all[idx][5]*Xyz;
315 PCS_exp = cstyle_b[j];
319 if(individual_scale >=0.0){
321 indi_norm_invers = cstyle_b_individual_scale_[j];
322 square_sum += deviation * deviation * indi_norm_invers;
325 square_sum += deviation * deviation;
329 for (k = 1; k <= 5; k++){
330 if(individual_scale >=0.0){
331 vec_temp[3 + 5*(i-1) + k] += deviation * A_all[idx][k] * indi_norm_invers;
334 vec_temp[3 + 5*(i-1) + k] += deviation * A_all[idx][k];
348 if(individual_scale >=0.0){
349 common3 = deviation / r5 * indi_norm_invers;
352 common3 = deviation/r5;
354 vec_temp[1] += (x*common2 - 2*( x*Xxx + y*Xxy + z*Xxz)) * common3;
355 vec_temp[2] += (y*common2 - 2*( x*Xxy + y*Xyy + z*Xyz)) * common3;
356 vec_temp[3] += (z*common2 - 2*(-z*Xxx + x*Xxz - z*Xyy + y*Xyz)) * common3;
359 core::Real one_over_RMSD(1.0/sqrt(square_sum));
362 for (k = 1; k <= 5; k++){
363 dE_dvars[3 + 5*(i-1) + k] += vec_temp[3 + 5*(i-1) + k] * common_temp;
365 dE_dvars[1] += common_temp * vec_temp[1];
366 dE_dvars[2] += common_temp * vec_temp[2];
367 dE_dvars[3] += common_temp * vec_temp[3];