53 for(
int i = 0; i <
nRows(); i++)
81 <<
"inconsistent basis must not happen!" 115 for(
int i = 0; i <
nRows(); ++i)
158 for(
int i = 0; i <
nCols(); ++i)
185 MSG_ERROR(std::cerr <<
"ESVECS02 ERROR: " 186 <<
"inconsistent basis must not happen!" 212 for(
int i = 0; i <
coDim(); ++i)
238 assert(
EQ(lfb[i], ufb[i]));
246 MSG_ERROR(std::cerr <<
"ESVECS03 ERROR: " 247 <<
"inconsistent basis must not happen!" 271 for(
int i = 0; i <
dim(); ++i)
299 if(colfb[i] != coufb[i])
302 << colfb[i] <<
" " << coufb[i]
303 <<
" shouldn't be" << std::endl;)
306 colfb[i] = coufb[i] = 0.0;
309 Real mid = (colfb[i] + coufb[i]) / 2.0;
310 colfb[i] = coufb[i] = mid;
314 assert(
EQ(colfb[i], coufb[i]));
319 MSG_ERROR(std::cerr <<
"ESVECS05 ERROR: " 320 <<
"inconsistent basis must not happen!" 354 assert(
baseId(i).isSPxRowId());
357 switch(
desc().rowStatus(n))
368 (*theCoPrhs)[i] =
rhs(n);
374 (*theCoPrhs)[i] =
lhs(n);
387 assert(
baseId(i).isSPxColId());
390 switch(
desc().colStatus(n))
417 (*theCoPrhs)[i] =
maxObj(n);
430 for(
int i =
dim() - 1; i >= 0; --i)
443 assert(
baseId(i).isSPxRowId());
446 switch(
desc().rowStatus(n))
474 assert(
baseId(i).isSPxColId());
477 switch(
desc().colStatus(n))
499 (*theCoPrhs)[i] =
maxObj(n);
509 for(
int i =
dim() - 1; i >= 0; --i)
530 for(i =
coDim() - 1; i >= 0; --i)
const VectorBase< R > & rhs() const
Returns right hand side vector.
Exception class for things that should NEVER happen.This class is derived from the SoPlex exception b...
bool isSetup() const
Returns setup status.
primal variable is fixed to both bounds
primal or dual variable is undefined
const VectorBase< Real > & upper() const
Returns upper bound vector.
SPxOut * spxout
message handler
THREADLOCAL const Real infinity
DVector * theUbound
Upper bound for vars.
Pricing pricing() const
return current Pricing.
DVector * theCoUbound
Upper bound for covars.
Exception classes for SoPlex.
Status & rowStatus(int i)
int number(const SPxRowId &id) const
Returns the row number of the row with identifier id.
virtual void computeFrhsXtra()
int dim() const
dimension of basis matrix.
Ids for LP columns.Class SPxColId provides DataKeys for the column indices of an SPxLP.
virtual void doPupdate(void)
virtual void computeLeaveCoPrhs()
compute theCoPrhs for leaving Simplex.
dual variable is left free, but unset
int nRows() const
Returns number of rows in LP.
SSVectorBase< R > & assign2productAndSetup(const SVSetBase< S > &A, SSVectorBase< T > &x)
Assigns SSVectorBase to thereby setting up x.
primal variable is set to its upper bound
Generic Ids for LP rows or columns.Both SPxColIds and SPxRowIds may be treated uniformly as SPxIds: ...
SSVectorBase< R > & assign2product(const SSVectorBase< S > &x, const SVSetBase< T > &A)
Assigns to SSVectorBase.
DVector * theLbound
Lower bound for vars.
void update()
Perform the update.
#define MSG_ERROR(x)
Prints out message x if the verbosity level is at least SPxOut::ERROR.
const SVSet * thecovectors
the LP coVectors according to representation
void computeEnterCoPrhs4Col(int i, int n)
dual variable is set to its upper bound
virtual void setupPupdate(void)
bool isBasic(SPxBasis::Desc::Status stat) const
does stat describe a basic index ?
primal variable is left free, but unset
const VectorBase< R > & lhs() const
Returns left hand side vector.
DVector theURbound
Upper Row Feasibility bound.
const VectorBase< R > & maxRowObj() const
Status & colStatus(int i)
DVector * theCoLbound
Lower bound for covars.
Debugging, floating point type and parameter definitions.
bool EQ(Real a, Real b, Real eps=Param::epsilon())
returns true iff |a-b| <= eps
DVector theLRbound
Lower Row Feasibility bound.
DVector theUCbound
Upper Column Feasibility bound.
void computeLeaveCoPrhs4Col(int i, int n)
VectorBase< R > & multAdd(const S &x, const VectorBase< T > &vec)
Addition of scaled vector.
void computeEnterCoPrhs4Row(int i, int n)
int dim() const
Dimension of vector.
int size() const
Returns the number of nonzeros.
Everything should be within this namespace.
void computeLeaveCoPrhs4Row(int i, int n)
#define MSG_WARNING(spxout, x)
Prints out message x if the verbosity level is at least SPxOut::WARNING.
primal variable is set to its lower bound
const VectorBase< R > & maxObj() const
Returns objective vector for maximization problem.
void setup()
Initializes nonzero indices for elements with absolute values above epsilon and sets all other elemen...
DVector theLCbound
Lower Column Feasibility bound.
void computeFrhs()
compute feasibility vector from scratch.
void clear()
Set vector to 0.
bool isSPxRowId() const
is id a row id?
dual variable is set to its lower bound
Type type() const
return current Type.
int coDim() const
codimension.
int nCols() const
Returns number of columns in LP.
const SVSet * thevectors
the LP vectors according to representation
dual variable has two bounds
Ids for LP rows.Class SPxRowId provides DataKeys for the row indices of an SPxLP. ...
virtual void computeEnterCoPrhs()
compute theCoPrhs for entering Simplex.
bool isZero(Real a, Real eps=Param::epsilon())
returns true iff |a| <= eps
const SVector & vector(int i) const
i 'th vector.
SSVector & delta()
update vector , writeable
void computePvec()
compute entire pVec().
void computeFrhs2(Vector &, Vector &)
Status
Status of a variable.
const VectorBase< Real > & lower() const
Returns (internal and possibly scaled) lower bound vector.
virtual void computeFrhs1(const Vector &, const Vector &)
const Desc & desc() const
Representation rep() const
return the current basis representation.
columnwise representation.
SSVectorBase< R > & assign2product4setup(const SVSetBase< S > &A, const SSVectorBase< T > &x)
Assigns SSVectorBase to for a setup x.