std::vector< float > d;
d.resize(traj.front().size(), 0);
-
- //#pragma omp parallel shared(crl, temp_zero, d)
- //{
- //#pragma omp for schedule(dynamic)
- for (int i = tauS; i <= tauE; i += 1) {
- std::vector< RVec > medx, medy;
- RVec temp1, temp2;
- float tmp;
- medx.resize(traj.front().size(), temp_zero);
- medy.resize(traj.front().size(), temp_zero);
- for (int j = 0; j < traj.size() - i - 1; j++) {
- for (int f = 0; f < traj.front().size(); f++) {
- medx[f] += (traj[b_frame][f] - traj[j][f]);
- medy[f] += (traj[b_frame][f] - traj[j + i][f]);
- }
- }
- for (int j = 0; j < traj.front().size(); j++) {
- tmp = traj.size() - 1;
- tmp -= i;
- tmp = 1 / tmp;
- //tmp = 1 / (traj.size() - 1 - i);
- medx[j] *= tmp;
- medy[j] *= tmp;
+ #pragma omp parallel for shared(crl, temp_zero, d) //schedule(dynamic)
+ for (int i = tauS; i <= tauE; i += 1) {
+ std::vector< RVec > medx, medy;
+ RVec temp1, temp2;
+ float tmp;
+ medx.resize(traj.front().size(), temp_zero);
+ medy.resize(traj.front().size(), temp_zero);
+ for (int j = 0; j < traj.size() - i - 1; j++) {
+ for (int f = 0; f < traj.front().size(); f++) {
+ medx[f] += (traj[b_frame][f] - traj[j][f]);
+ medy[f] += (traj[b_frame][f] - traj[j + i][f]);
}
- std::vector< std::vector< float > > a, b, c;
- a.resize(traj.front().size(), d);
- b.resize(traj.front().size(), d);
- c.resize(traj.front().size(), d);
- for (int j = 0; j < traj.size() - i - 1; j++) {
- for (int f1 = 0; f1 < traj.front().size(); f1++) {
- for (int f2 = 0; f2 < traj.front().size(); f2++) {
- temp1 = traj[b_frame][f1] - traj[j][f1] - medx[f1];
- temp2 = traj[b_frame][f2] - traj[j + i][f2] - medy[f2];
-
- a[f1][f2] += (temp1[0] * temp2[0] + temp1[1] * temp2[1] + temp1[2] * temp2[2]);
- b[f1][f2] += (temp1[0] * temp1[0] + temp1[1] * temp1[1] + temp1[2] * temp1[2]);
- c[f1][f2] += (temp2[0] * temp2[0] + temp2[1] * temp2[1] + temp2[2] * temp2[2]);
- }
+ }
+ for (int j = 0; j < traj.front().size(); j++) {
+ tmp = traj.size() - 1;
+ tmp -= i;
+ tmp = 1 / tmp;
+ //tmp = 1 / (traj.size() - 1 - i);
+ medx[j] *= tmp;
+ medy[j] *= tmp;
+ }
+ std::vector< std::vector< float > > a, b, c;
+ a.resize(traj.front().size(), d);
+ b.resize(traj.front().size(), d);
+ c.resize(traj.front().size(), d);
+ for (int j = 0; j < traj.size() - i - 1; j++) {
+ for (int f1 = 0; f1 < traj.front().size(); f1++) {
+ for (int f2 = 0; f2 < traj.front().size(); f2++) {
+ temp1 = traj[b_frame][f1] - traj[j][f1] - medx[f1];
+ temp2 = traj[b_frame][f2] - traj[j + i][f2] - medy[f2];
+ a[f1][f2] += (temp1[0] * temp2[0] + temp1[1] * temp2[1] + temp1[2] * temp2[2]);
+ b[f1][f2] += (temp1[0] * temp1[0] + temp1[1] * temp1[1] + temp1[2] * temp1[2]);
+ c[f1][f2] += (temp2[0] * temp2[0] + temp2[1] * temp2[1] + temp2[2] * temp2[2]);
}
}
- for (int j = 0; j < traj.front().size(); j++) {
- for (int f = 0; f < traj.front().size(); f++) {
- crl[i][j][f] = a[j][f] / (std::sqrt(b[j][f] * c[j][f]));
- }
+ }
+ for (int j = 0; j < traj.front().size(); j++) {
+ for (int f = 0; f < traj.front().size(); f++) {
+ crl[i][j][f] = a[j][f] / (std::sqrt(b[j][f] * c[j][f]));
}
- medx.resize(0);
- medy.resize(0);
- std::cout << i << " corr done\n";
}
- //}
- //#pragma omp barrier
+ medx.resize(0);
+ medy.resize(0);
+ std::cout << i << " corr done\n";
+ }
+ #pragma omp barrier
}
void graph_calculation(std::vector< std::vector< std::pair< float, int > > > &graph, std::vector< std::vector< int > > &s_graph, std::vector< std::vector< std::pair< int, int > > > &s_graph_rbr,