linear kernel v1
authorAnatoly <Titov_AI@pnpi.nrcki.ru>
Mon, 12 Feb 2018 06:46:38 +0000 (09:46 +0300)
committerAnatoly <Titov_AI@pnpi.nrcki.ru>
Mon, 12 Feb 2018 06:46:38 +0000 (09:46 +0300)
src/spirals.cpp

index fb170900500d873990d8bdbf8e903b13c40601c5..3b72a4eb3bc63a884c01a728cf7c4dcc26508cc2 100644 (file)
@@ -152,7 +152,7 @@ double fp3 (double x0, double y0, double z0, double p1, double p2, double p3, st
     return ret;
 }
 
-void linear_kernel_search (double x0, double y0, double z0, double p1, double p2, double p3, std::vector< RVec > x, double epsi) {
+void linear_kernel_search (double &x0, double &y0, double &z0, double &p1, double &p2, double &p3, std::vector< RVec > x, double epsi) {
     double F = 1, FX = 0, FX0 = 0, FY0 = 0, FZ0 = 0, FP1 = 0, FP2 = 0, FP3 = 0;
     double L1, L2, L3, L4, L5, L6;
     while (F - FX >= epsi) {
@@ -309,7 +309,23 @@ Spirals::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc,
     mid[2] /= sel.size();
     rvec_sub(temp.back(), temp.front(), arrow);
 
-    linear_kernel_search(mid[0], mid[1], mid[2], arrow[0], arrow[1], arrow[2], temp, epsi); //изменить формат функции для изменения значений переменных
+    double t1, t2, t3, t4, t5, t6;
+    t1 = mid[0];
+    t2 = mid[1];
+    t3 = mid[2];
+    t4 = arrow[0];
+    t5 = arrow[1];
+    t6 = arrow[2];
+
+    //linear_kernel_search(mid[0], mid[1], mid[2], arrow[0], arrow[1], arrow[2], temp, epsi); //изменить формат функции для изменения значений переменных
+    linear_kernel_search(t1, t2, t3, t4, t5, t6, temp, epsi);
+
+    mid[0] = t1;
+    mid[1] = t2;
+    mid[2] = t3;
+    arrow[0] = t4;
+    arrow[1] = t5;
+    arrow[2] = t6;
 
     kernel.resize(kernel.size() + 1);
     kernel.back().x = mid;
@@ -318,7 +334,7 @@ Spirals::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc,
         kernel.back().krnl.push_back(kernel_pro(mid[0], mid[1], mid[2], arrow[0], arrow[1], arrow[2], temp[i]));
     }
 
-    circles.resize(circles.size() + 1);
+    /*circles.resize(circles.size() + 1);
 
     int prev_sign = -9999, change = 0;
     RVec a, b, c;
@@ -340,7 +356,7 @@ Spirals::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc,
             circles.back().back().push_back(i);
             change = 1;
         }
-    }
+    }*/
 
     frames++;
 }
@@ -348,7 +364,15 @@ Spirals::analyzeFrame(int frnr, const t_trxframe &fr, t_pbc *pbc,
 void
 Spirals::finishAnalysis(int /*nframes*/)
 {
-
+    FILE *file;
+    file = std::fopen("linear kernel.txt", "w+");
+    for (int i = 0; i < kernel.size(); i++) {
+        for (int j = 0; j < kernel[i].krnl.size(); j++) {
+            std::fprintf(file, "%3.2f %3.2f %3.2f\n", kernel[i].krnl[j][0], kernel[i].krnl[j][1], kernel[i].krnl[j][2]);
+        }
+        std::fprintf(file, "\n");
+    }
+    std::fclose(file);