changed if
authorAnatoly <Titov_AI@pnpi.nrcki.ru>
Tue, 20 Feb 2018 08:16:17 +0000 (11:16 +0300)
committerAnatoly <Titov_AI@pnpi.nrcki.ru>
Tue, 20 Feb 2018 08:16:17 +0000 (11:16 +0300)
src/spirals.cpp

index 685e24d0ea7a5cbdd15a215c18061b485689463c..7dae148cb79b15438f90f47d5279d2ea259ec2da 100644 (file)
@@ -152,6 +152,10 @@ long double fp3 (long double x0, long double y0, long double z0, long double p1,
     return ret;
 }
 
+bool whwhL0 (long double L0, long double FX0, long double FY0, long double FZ0, long double FP1, long double FP2, long double FP3, long double Ftemp, long double epsi) {
+    return (L0 * FX0 < epsi) && (L0 * FY0 < epsi) && (L0 * FZ0 < epsi) && (L0 * FP1 < epsi) && (L0 * FP2 < epsi) && (L0 * FP3 < epsi) || (FX - Ftemp < pow(epsi, 2));
+}
+
 void linear_kernel_search (long double &x0, long double &y0, long double &z0, long double &p1, long double &p2, long double &p3, std::vector< RVec > x, long double epsi) {
     long double Ftemp = 0, FX = 0, FX0 = 0, FY0 = 0, FZ0 = 0, FP1 = 0, FP2 = 0, FP3 = 0, L0 = 0;
     while (true) {
@@ -175,11 +179,14 @@ void linear_kernel_search (long double &x0, long double &y0, long double &z0, lo
                 p1 -= L0 * FP1;
                 p2 -= L0 * FP2;
                 p3 -= L0 * FP3;
-                if ((L0 * FX0 < epsi) && (L0 * FY0 < epsi) && (L0 * FZ0 < epsi) && (L0 * FP1 < epsi) && (L0 * FP2 < epsi) && (L0 * FP3 < epsi) || (FX - Ftemp < pow(epsi, 2))) {
+                if (whwhL0(L0, FX0, FY0, FZ0, FP1, FP2, FP3, Ftemp, epsi)) {
                     L0 = 0;
                 }
                 break;
             }
+            if (whwhL0(L0, FX0, FY0, FZ0, FP1, FP2, FP3, Ftemp, epsi)) {
+                L0 = 0;
+            }
         }
 
         if (L0 = 0) {