39 #define SOPLEX_FASTRT_EPSILON 1e-10 127 int maxSelect(R& val, R& stab, R& best, R& bestDelta,
131 int maxSelect(R& val, R& stab, R& bestDelta, R max);
134 R& bestDelta, R max);
143 int minSelect(R& val, R& stab, R& best, R& bestDelta,
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);
174 bool minReEnter(R& sel, R maxabs,
const SPxId&
id,
int nr,
bool polish =
false);
176 bool maxReEnter(R& sel, R maxabs,
const SPxId&
id,
int nr,
bool polish =
false);
199 , minStab(old.minStab)
200 , epsilon(old.epsilon)
201 , fastDelta(old.fastDelta)
242 virtual int selectLeave(R& val, R,
bool polish =
false);
253 this->
delta = newDelta;
254 fastDelta = newDelta;
265 #include "spxfastrt.hpp" 267 #endif // _SPXFASTRT_H_ virtual void setType(typename SPxSolverBase< R >::Type type)
R fastDelta
currently allowed infeasibility.
bool minReEnter(R &sel, R maxabs, const SPxId &id, int nr, bool polish=false)
numerical stability check.
virtual ~SPxFastRT()
destructor
virtual void setDelta(R newDelta)
Dense vector.Class VectorBase provides dense linear algebra vectors. Internally, VectorBase wraps std...
R delta
allowed bound violation
Sequential object-oriented SimPlex.SPxSolverBase is an LP solver class using the revised Simplex algo...
SPxFastRT(const SPxFastRT &old)
copy constructor
#define SOPLEX_DEFAULT_EPS_ZERO
default allowed additive zero: 1.0 + EPS_ZERO == 1.0
Abstract ratio test base class.
Abstract ratio test base class.Class SPxRatioTester is the virtual base class for computing the ratio...
bool minShortLeave(R &sel, int leave, R maxabs)
tests for stop after phase 1.
virtual SPxSolverBase< R > * solver() const
returns loaded LP solver.
void relax()
relaxes stability requirements.
SPxFastRT()
default constructor
Generic Ids for LP rows or columns.Both SPxColIds and SPxRowIds may be treated uniformly as SPxIds: ...
virtual int selectLeave(R &val, R, bool polish=false)
void resetTols()
resets tolerances (epsilon).
Fast shifting ratio test.Class SPxFastRT is an implementation class of SPxRatioTester providing fast ...
bool minReLeave(R &sel, int leave, R maxabs, bool polish=false)
numerical stability tests.
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...
bool maxReLeave(R &sel, int leave, R maxabs, bool polish=false)
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.
Dense Vector with semi-sparse Vector for updatesIn many algorithms vectors are updated in every itera...
SPxRatioTester & operator=(const SPxRatioTester &rhs)
assignment operator
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.
R minStab
parameter for computing minimum stability requirement
virtual SPxRatioTester< R > * clone() const
clone function for polymorphism
Debugging, floating point type and parameter definitions.
Everything should be within this namespace.
void tighten()
tightens stability requirements.
SPxFastRT(const char *name)
bound flipping constructor
bool iscoid
flag used in methods minSelect/maxSelect to retrieve correct basis status
virtual SPxId selectEnter(R &val, int, bool polish=false)
SPxFastRT & operator=(const SPxFastRT &rhs)
assignment operator
R minStability(R maxabs)
Compute stability requirement.
bool maxShortLeave(R &sel, int leave, R maxabs)
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.
#define SOPLEX_DEFAULT_BND_VIOL
default allowed bound violation
virtual void load(SPxSolverBase< R > *solver)
R epsilon
zero tolerance used by the ratio tester
const R epsilonZero() const
return epsilon
bool maxReEnter(R &sel, R maxabs, const SPxId &id, int nr, bool polish=false)
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.
const std::shared_ptr< Tolerances > tolerances() const
get the _tolerances member variable