|
SoPlex Doxygen Documentation
|
Go to the documentation of this file.
71 themax = (x > themax) ? x : themax;
72 x = (up[i] - vec[i] + delta) / x;
76 else if (x < -epsilon)
78 themax = (-x > themax) ? -x : themax;
79 x = (low[i] - vec[i] - delta) / x;
80 if (x < theval && low[i] > - infinity)
122 themax = (x > themax) ? x : themax;
123 x = (low[i] - vec[i] - delta) / x;
124 if (x > theval && low[i] > - infinity)
127 else if (x < -epsilon)
129 themax = (-x > themax) ? -x : themax;
130 x = (up[i] - vec[i] + delta) / x;
171 assert( delta > epsilon);
173 assert( solver()->maxCycle() > 0);
201 useeps = maxabs * epsilon * 0.001;
202 if (useeps < epsilon)
204 for (j = upd. size() - 1; j >= 0; --j)
216 if (y <= max && y > sel - epsilon && x > stab)
224 else if (x < -useeps)
232 if (y <= max && y > sel - epsilon && -x > stab)
246 else if (max < -epsilon)
266 useeps = maxabs * epsilon * 0.001;
267 if (useeps < epsilon)
269 for (j = upd. size() - 1; j >= 0; --j)
281 if (y >= max && y < sel + epsilon && -x > stab)
297 if (y >= max && y < sel + epsilon && x > stab)
314 if (lastshift != solver()->shift())
338 Real minStability = 0.0001;
353 assert( delta > epsilon);
355 assert( solver()->maxCycle() > 0);
369 assert( delta > epsilon);
401 ruseeps = rmaxabs * 0.001 * epsilon;
402 if (ruseeps < epsilon)
404 cuseeps = cmaxabs * 0.001 * epsilon;
405 if (cuseeps < epsilon)
407 for (j = pupd. size() - 1; j >= 0; --j)
413 y = upb[i] - pvec[i];
419 if (y <= max && x >= stab)
428 else if (x < -ruseeps)
430 y = lpb[i] - pvec[i];
436 if (y <= max && -x >= stab)
447 MSG_DEBUG( spxout << "DHARRI01 removing value " << pupd[i] << std::endl; )
451 for (j = cupd. size() - 1; j >= 0; --j)
457 y = ucb[i] - cvec[i];
463 if (y <= max && x >= stab)
472 else if (x < -cuseeps)
474 y = lcb[i] - cvec[i];
480 if (y <= max && -x >= stab)
491 MSG_DEBUG( spxout << "DHARRI02 removing value " << cupd[i] << std::endl; )
496 if (lastshift == solver()->shift())
500 if ( solver()->isBasic(enterId))
511 if ( solver()->isBasic(enterId))
521 sel = upb[pnr] - pvec[pnr];
522 if (x < minStability && sel < delta)
531 sel = lpb[pnr] - pvec[pnr];
532 if (-x < minStability && -sel < delta)
555 else if (val < -epsilon)
564 assert( delta > epsilon);
599 ruseeps = rmaxabs * epsilon * 0.001;
600 cuseeps = cmaxabs * epsilon * 0.001;
601 for (j = pupd. size() - 1; j >= 0; --j)
607 y = lpb[i] - pvec[i];
613 if (y >= max && x > stab)
622 else if (x < -ruseeps)
624 y = upb[i] - pvec[i];
630 if (y >= max && -x > stab)
641 MSG_DEBUG( spxout << "DHARRI03 removing value " << pupd[i] << std::endl; )
645 for (j = cupd. size() - 1; j >= 0; --j)
651 y = lcb[i] - cvec[i];
657 if (y >= max && x > stab)
666 else if (x < -cuseeps)
668 y = ucb[i] - cvec[i];
674 if (y >= max && -x > stab)
690 if (lastshift == solver()->shift())
694 if ( solver()->isBasic(enterId))
705 if ( solver()->isBasic(enterId))
715 sel = lpb[pnr] - pvec[pnr];
716 if (x < minStability && -sel < delta)
725 sel = upb[pnr] - pvec[pnr];
726 if (-x < minStability && sel < delta)
748 assert(max * val >= 0);
|