f26 += F(a[pairs[i].first][0], a[pairs[i].first][1], a[pairs[i].first][2], b[pairs[i].second][0], b[pairs[i].second][1], b[pairs[i].second][2], x, y, z, A, B, C - l6 * fc);
*/
}
- std::cout << f1 << " " << f2 << "\n";
+ /*count++;
+ if (count % 100 == 0) {
+ std::cout << f1 << " " << f2 << "\n";
+ }*/
if (f2 < f1) {
x -= l * fx; y -= l * fy; z -= l * fz; A -= l * fa; B -= l * fb; C -= l * fc;
//x -= l1 * fx; y -= l2 * fy; z -= l3 * fz; A -= l4 * fa; B -= l5 * fb; C -= l6 * fc;
}
std::cout << "\n\n\n";
+ std::cout << "\n\n\n" << "old dist = " << dist1 << "\n";
- MyFitNew(trajectory[0], trajectory.back(), pairs);
+ rvec *traj1, *traj2;
+ snew(traj1, index.size());
+ snew(traj2, index.size());
+ for (int i = 0; i < index.size(); i++) {
+ copy_rvec(trajectory[0][i].as_vec(), traj1[i]);
+ copy_rvec(trajectory.back()[i].as_vec(), traj2[i]);
+ }
+ //
+ // My Fit
+ //
+
+ MyFitNew(trajectory[0], trajectory.back(), pairs);
for (int i = 0; i < index.size(); i++) {
dist2 += F(trajectory[0][i][0], trajectory[0][i][1], trajectory[0][i][2], trajectory.back()[i][0], trajectory.back()[i][1], trajectory.back()[i][2], 0, 0, 0, 0, 0, 0);
}
+ std::cout << "\n" << "my fit dist = " << dist2 << "\n";
- std::cout << "\n\n\n" << "old dist = " << dist1 << "\nnew dist = " << dist2 << "\n\n";
+ dist2 = 0;
+ std::vector< real > w_rls;
+ w_rls.resize(index.size(), 1);
+ reset_x(index.size(), NULL, index.size(), NULL, traj1, &w_rls[0]);
+ reset_x(index.size(), NULL, index.size(), NULL, traj2, &w_rls[0]);
+ //
+ // Old Fit
+ //
+ do_fit(index.size(), &w_rls[0], traj1, traj2);
+
+ for (int i = 0; i < index.size(); i++) {
+ dist2 += F(traj1[i][0], traj1[i][1], traj1[i][2], traj2[i][0], traj2[i][1], traj2[i][2], 0, 0, 0, 0, 0, 0);
+ }
+ std::cout << "\n" << "old fit dist = " << dist2 << "\n";
+
+ sfree(traj1);
+ sfree(traj2);
}
void