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