void ShellSort<VAL>::sort(Vector<VAL> & vec) { int del = vec.getSize(); while (del > 1) { del = deltaF(del); trace("Delta: " << del << endl); deltaSort(del,vec); }; }
double model::findSquare(const char FUNCTION, const char METHOD, const long KMAX, const double EPS, const bool RAND, const double X0, const double X1, const int RETRYS, const double RATIORETRYS, const double solution){ /*switch(activeFUNCTION) { case 'p': if(coefNumber <= 1) return 0; case 'e': if(expoBase == 0) return 0; }*/ srand((unsigned int)(time(0))); double xk_1, xk, x0, x1, delta; long k = 0; int currentIteration = 0; if(RAND == true) { int r = rand() % 1000; x0 = r + solution; r = rand() % 100; x1 = r - solution; } else { x0 = X0; x1 = X1; } // prima iterare nu este vazuta ca fiind un retry while(currentIteration <= RETRYS) { if(METHOD == 'n') { xk = x0; xk_1 = x0; } else { xk_1 = x0; xk = x1; } do { k++; delta = deltaF(METHOD, FUNCTION, xk_1, xk, EPS); xk_1 = xk; xk = xk - delta; }while(fabs(delta) >= EPS && k <= KMAX && fabs(delta) <= 100000000); // daca am divergenta if(fabs(delta) >= EPS){ currentIteration++; x0 = X0 + RATIORETRYS; x1 = X1 + RATIORETRYS; } else break; } // in xk am memorata solutia cautata return xk; }