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) {
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) {