39#define SOPLEX_FASTRT_EPSILON 1e-10
134 R& bestDelta, R max);
148 R& bestDelta, R max);
151 R& bestDelta, R max);
166 bool minReLeave(R& sel,
int leave, R maxabs,
bool polish =
false);
168 bool maxReLeave(R& sel,
int leave, R maxabs,
bool polish =
false);
253 this->
delta = newDelta;
265#include "spxfastrt.hpp"
Fast shifting ratio test.
virtual void setType(typename SPxSolverBase< R >::Type type)
int maxSelect(R &val, R &stab, R &best, R &bestDelta, R max, const UpdateVector< R > &upd, const VectorBase< R > &low, const VectorBase< R > &up, int start=0, int incr=1) const
selects stable index for maximizing ratio test.
virtual SPxRatioTester< R > * clone() const
clone function for polymorphism
virtual void setDelta(R newDelta)
SPxId maxDelta(int &nr, R &val, R &maxabs)
virtual ~SPxFastRT()
destructor
void relax()
relaxes stability requirements.
void tighten()
tightens stability requirements.
R fastDelta
currently allowed infeasibility.
int minSelect(R &val, R &stab, R &bestDelta, R max)
SPxFastRT(const char *name)
bound flipping constructor
bool minReLeave(R &sel, int leave, R maxabs, bool polish=false)
numerical stability tests.
int maxDelta(R &val, R &maxabs)
bool minShortLeave(R &sel, int leave, R maxabs)
tests for stop after phase 1.
int minDelta(R &val, R &maxabs, UpdateVector< R > &update, const VectorBase< R > &lowBound, const VectorBase< R > &upBound, int start, int incr) const
Min phase 1 value.
bool iscoid
flag used in methods minSelect/maxSelect to retrieve correct basis status
SPxId minDelta(int &nr, R &val, R &maxabs)
virtual void load(SPxSolverBase< R > *solver)
virtual int selectLeave(R &val, R, bool polish=false)
SPxId minSelect(int &nr, R &val, R &stab, R &bestDelta, R max)
SPxFastRT(const SPxFastRT &old)
copy constructor
bool maxShortLeave(R &sel, int leave, R maxabs)
int maxDelta(R &val, R &maxabs, UpdateVector< R > &update, const VectorBase< R > &lowBound, const VectorBase< R > &upBound, int start, int incr) const
Max phase 1 value.
virtual SPxId selectEnter(R &val, int, bool polish=false)
bool shortEnter(const SPxId &enterId, int nr, R max, R maxabs) const
Tests and returns whether a shortcut after phase 1 is feasible for the selected enter pivot.
const R epsilonZero() const
return epsilon
int maxSelect(R &val, R &stab, R &bestDelta, R max)
int minSelect(R &val, R &stab, R &best, R &bestDelta, R max, const UpdateVector< R > &upd, const VectorBase< R > &low, const VectorBase< R > &up, int start=0, int incr=1) const
selects stable index for minimizing ratio test.
void resetTols()
resets tolerances (epsilon).
bool maxReEnter(R &sel, R maxabs, const SPxId &id, int nr, bool polish=false)
SPxFastRT()
default constructor
int minDelta(R &val, R &maxabs)
SPxFastRT & operator=(const SPxFastRT &rhs)
assignment operator
SPxId maxSelect(int &nr, R &val, R &stab, R &bestDelta, R max)
R minStability(R maxabs)
Compute stability requirement.
R epsilon
zero tolerance used by the ratio tester
bool maxReLeave(R &sel, int leave, R maxabs, bool polish=false)
R minStab
parameter for computing minimum stability requirement
bool minReEnter(R &sel, R maxabs, const SPxId &id, int nr, bool polish=false)
numerical stability check.
Generic Ids for LP rows or columns.
Abstract ratio test base class.
R delta
allowed bound violation
const std::shared_ptr< Tolerances > tolerances() const
get the _tolerances member variable
virtual SPxSolverBase< R > * solver() const
returns loaded LP solver.
SPxRatioTester & operator=(const SPxRatioTester &rhs)
assignment operator
Sequential object-oriented SimPlex.
Dense Vector with semi-sparse Vector for updates.
Everything should be within this namespace.
Debugging, floating point type and parameter definitions.
#define SOPLEX_DEFAULT_EPS_ZERO
default allowed additive zero: 1.0 + EPS_ZERO == 1.0
#define SOPLEX_DEFAULT_BND_VIOL
default allowed bound violation
Abstract ratio test base class.