61 for(j = 0; j < idx.
size(); ++j)
102 if((x > epsilon && vec[leave] >= ub[leave]) ||
103 (x < -epsilon && vec[leave] <= lb[leave]))
109 val = (x > epsilon) ? ub[leave] : lb[leave];
110 val = (val - vec[leave]) / x;
118 for(j = 0; j < idx.
size(); ++j)
156 if((x < -epsilon && vec[leave] >= ub[leave]) ||
157 (x > epsilon && vec[leave] <= lb[leave]))
163 val = (x < epsilon) ? ub[leave] : lb[leave];
164 val = (val - vec[leave]) / x;
208 for(j = 0; j < pidx.
size(); ++j)
227 else if(x < -epsilon)
243 for(j = 0; j < cidx.
size(); ++j)
262 else if(x < -epsilon)
280 i = cidx.
index(cnum);
282 val = (x > epsilon) ? ucb[i] : lcb[i];
283 val = (val - cvec[i]) / x;
287 i = pidx.
index(pnum);
289 val = (x > epsilon) ? upb[i] : lpb[i];
290 val = (val - pvec[i]) / x;
295 for(j = 0; j < pidx.
size(); ++j)
314 else if(x < -epsilon)
330 for(j = 0; j < cidx.
size(); ++j)
349 else if(x < -epsilon)
367 i = cidx.
index(cnum);
369 val = (x < epsilon) ? ucb[i] : lcb[i];
370 val = (val - cvec[i]) / x;
374 i = pidx.
index(pnum);
376 val = (x < epsilon) ? upb[i] : lpb[i];
377 val = (val - pvec[i]) / x;
383 MSG_DEBUG(std::cout <<
"DDEFRT01 isValid() && isBasic(): max=" << max
397 std::cout <<
"DDEFRT02 !isValid(): max=" << max <<
", x=" << x << std::endl;
SPxId coId(int i) const
id of i 'th covector.
const Vector & ucBound() const
virtual int selectLeave(Real &val, Real, bool)
THREADLOCAL const Real infinity
Real delta
allowed bound violation
const Vector & lcBound() const
#define ASSERT_WARN(prefix, expr)
Macro to turn some assertions into warnings.
virtual SPxId selectEnter(Real &val, int, bool)
const R * get_const_ptr() const
Conversion to C-style pointer.
const Vector & ubBound() const
upper bound for fVec.
Generic Ids for LP rows or columns.Both SPxColIds and SPxRowIds may be treated uniformly as SPxIds: ...
UpdateVector & coPvec() const
copricing vector.
const R * values() const
Returns array values.
int size() const
returns the number of used indices.
const Vector & lbBound() const
lower bound for fVec.
SPxId id(int i) const
id of i 'th vector.
UpdateVector & fVec() const
feasibility vector.
void clearNum(int n)
Sets n 'th nonzero element to 0 (index n must exist).
bool isBasic(SPxBasis::Desc::Status stat) const
does stat describe a basic index ?
Real epsilon() const
values are considered to be 0.
Debugging, floating point type and parameter definitions.
UpdateVector & pVec() const
pricing vector.
const Vector & lpBound() const
Everything should be within this namespace.
const IdxSet & idx() const
nonzero indices of update vector
virtual SPxSolver * solver() const
returns loaded LP solver.
void setup()
Initializes nonzero indices for elements with absolute values above epsilon and sets all other elemen...
const Vector & upBound() const
bool isValid() const
returns TRUE iff the id is a valid column or row identifier.
SSVector & delta()
update vector , writeable
Textbook ratio test for SoPlex.
int index(int n) const
access n 'th index.
Set of indices.Class IdxSet provides a set of indices. At construction it must be given an array of i...