This implements Gub rows plus a ClpPackedMatrix. More...
#include <ClpGubMatrix.hpp>
Public Member Functions | |
Main functions provided | |
virtual ClpMatrixBase * | reverseOrderedCopy () const |
Returns a new matrix in reverse order without gaps (GUB wants NULL) | |
virtual CoinBigIndex | countBasis (const int *whichColumn, int &numberColumnBasic) |
Returns number of elements in column part of basis. | |
virtual void | fillBasis (ClpSimplex *model, const int *whichColumn, int &numberColumnBasic, int *row, int *start, int *rowCount, int *columnCount, CoinFactorizationDouble *element) |
Fills in column part of basis. | |
virtual void | unpack (const ClpSimplex *model, CoinIndexedVector *rowArray, int column) const |
Unpacks a column into an CoinIndexedvector. | |
virtual void | unpackPacked (ClpSimplex *model, CoinIndexedVector *rowArray, int column) const |
Unpacks a column into an CoinIndexedvector in packed foramt Note that model is NOT const. | |
virtual void | add (const ClpSimplex *model, CoinIndexedVector *rowArray, int column, double multiplier) const |
Adds multiple of a column into an CoinIndexedvector You can use quickAdd to add to vector. | |
virtual void | add (const ClpSimplex *model, double *array, int column, double multiplier) const |
Adds multiple of a column into an array. | |
virtual void | partialPricing (ClpSimplex *model, double start, double end, int &bestSequence, int &numberWanted) |
Partial pricing. | |
virtual int | hiddenRows () const |
Returns number of hidden rows e.g. gub. | |
Matrix times vector methods | |
virtual void | transposeTimes (const ClpSimplex *model, double scalar, const CoinIndexedVector *x, CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x * scalar * A + y in z . | |
virtual void | transposeTimesByRow (const ClpSimplex *model, double scalar, const CoinIndexedVector *x, CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x * scalar * A + y in z . | |
virtual void | subsetTransposeTimes (const ClpSimplex *model, const CoinIndexedVector *x, const CoinIndexedVector *y, CoinIndexedVector *z) const |
Return x *A in z but just for indices in y. | |
virtual int | extendUpdated (ClpSimplex *model, CoinIndexedVector *update, int mode) |
expands an updated column to allow for extra rows which the main solver does not know about and returns number added if mode 0. | |
virtual void | primalExpanded (ClpSimplex *model, int mode) |
mode=0 - Set up before "update" and "times" for primal solution using extended rows mode=1 - Cleanup primal solution after "times" using extended rows. | |
virtual void | dualExpanded (ClpSimplex *model, CoinIndexedVector *array, double *other, int mode) |
mode=0 - Set up before "updateTranspose" and "transposeTimes" for duals using extended updates array (and may use other if dual values pass) mode=1 - Update dual solution after "transposeTimes" using extended rows. | |
virtual int | generalExpanded (ClpSimplex *model, int mode, int &number) |
mode=0 - Create list of non-key basics in pivotVariable_ using number as numberBasic in and out mode=1 - Set all key variables as basic mode=2 - return number extra rows needed, number gives maximum number basic mode=3 - before replaceColumn mode=4 - return 1 if can do primal, 2 if dual, 3 if both mode=5 - save any status stuff (when in good state) mode=6 - restore status stuff mode=7 - flag given variable (normally sequenceIn) mode=8 - unflag all variables mode=9 - synchronize costs mode=10 - return 1 if there may be changing bounds on variable (column generation) mode=11 - make sure set is clean (used when a variable rejected - but not flagged) mode=12 - after factorize but before permute stuff mode=13 - at end of simplex to delete stuff | |
virtual int | updatePivot (ClpSimplex *model, double oldInValue, double oldOutValue) |
update information for a pivot (and effective rhs) | |
virtual void | useEffectiveRhs (ClpSimplex *model, bool cheapest=true) |
Sets up an effective RHS and does gub crash if needed. | |
virtual double * | rhsOffset (ClpSimplex *model, bool forceRefresh=false, bool check=false) |
Returns effective RHS offset if it is being used. | |
virtual int | synchronize (ClpSimplex *model, int mode) |
This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=6 - return 1 if there may be changing bounds on variable (column generation) mode=7 - do extra restores for column generation mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming. | |
virtual void | correctSequence (const ClpSimplex *model, int &sequenceIn, int &sequenceOut) |
Correct sequence in and out to give true value. | |
Constructors, destructor | |
ClpGubMatrix () | |
Default constructor. | |
virtual | ~ClpGubMatrix () |
Destructor. | |
Copy method | |
ClpGubMatrix (const ClpGubMatrix &) | |
The copy constructor. | |
ClpGubMatrix (const CoinPackedMatrix &) | |
The copy constructor from an CoinPackedMatrix. | |
ClpGubMatrix (const ClpGubMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) | |
Subset constructor (without gaps). | |
ClpGubMatrix (const CoinPackedMatrix &wholeModel, int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) | |
The copy constructor. | |
ClpGubMatrix (CoinPackedMatrix *matrix) | |
This takes over ownership (for space reasons) | |
ClpGubMatrix (ClpPackedMatrix *matrix, int numberSets, const int *start, const int *end, const double *lower, const double *upper, const unsigned char *status=NULL) | |
This takes over ownership (for space reasons) and is the real constructor. | |
ClpGubMatrix & | operator= (const ClpGubMatrix &) |
The copy constructor. | |
virtual ClpMatrixBase * | clone () const |
Clone. | |
virtual ClpMatrixBase * | subsetClone (int numberRows, const int *whichRows, int numberColumns, const int *whichColumns) const |
Subset clone (without gaps). | |
void | redoSet (ClpSimplex *model, int newKey, int oldKey, int iSet) |
redoes next_ for a set. | |
gets and sets | |
ClpSimplex::Status | getStatus (int sequence) const |
Status. | |
void | setStatus (int sequence, ClpSimplex::Status status) |
Status. | |
void | setFlagged (int sequence) |
To flag a variable. | |
void | clearFlagged (int sequence) |
Status. | |
bool | flagged (int sequence) const |
Status. | |
void | setAbove (int sequence) |
To say key is above ub. | |
void | setFeasible (int sequence) |
To say key is feasible. | |
void | setBelow (int sequence) |
To say key is below lb. | |
double | weight (int sequence) const |
Status. | |
int * | start () const |
Starts. | |
int * | end () const |
End. | |
double * | lower () const |
Lower bounds on sets. | |
double * | upper () const |
Upper bounds on sets. | |
int * | keyVariable () const |
Key variable of set. | |
int * | backward () const |
Backward pointer to set number. | |
int | numberSets () const |
Number of sets (gub rows) | |
void | switchOffCheck () |
Switches off dj checking each factorization (for BIG models) | |
Protected Attributes | |
Data members | |
The data members are protected to allow access for derived classes. | |
double | sumDualInfeasibilities_ |
Sum of dual infeasibilities. | |
double | sumPrimalInfeasibilities_ |
Sum of primal infeasibilities. | |
double | sumOfRelaxedDualInfeasibilities_ |
Sum of Dual infeasibilities using tolerance based on error in duals. | |
double | sumOfRelaxedPrimalInfeasibilities_ |
Sum of Primal infeasibilities using tolerance based on error in primals. | |
double | infeasibilityWeight_ |
Infeasibility weight when last full pass done. | |
int * | start_ |
Starts. | |
int * | end_ |
End. | |
double * | lower_ |
Lower bounds on sets. | |
double * | upper_ |
Upper bounds on sets. | |
unsigned char * | status_ |
Status of slacks. | |
unsigned char * | saveStatus_ |
Saved status of slacks. | |
int * | savedKeyVariable_ |
Saved key variables. | |
int * | backward_ |
Backward pointer to set number. | |
int * | backToPivotRow_ |
Backward pointer to pivot row !!! | |
double * | changeCost_ |
Change in costs for keys. | |
int * | keyVariable_ |
Key variable of set. | |
int * | next_ |
Next basic variable in set - starts at key and end with -(set+1). | |
int * | toIndex_ |
Backward pointer to index in CoinIndexedVector. | |
int * | fromIndex_ |
Sum of dual infeasibilities. | |
ClpSimplex * | model_ |
Pointer back to model. | |
int | numberDualInfeasibilities_ |
Number of dual infeasibilities. | |
int | numberPrimalInfeasibilities_ |
Number of primal infeasibilities. | |
int | noCheck_ |
If pricing will declare victory (i.e. | |
int | numberSets_ |
Number of sets (gub rows) | |
int | saveNumber_ |
Number in vector without gub extension. | |
int | possiblePivotKey_ |
Pivot row of possible next key. | |
int | gubSlackIn_ |
Gub slack in (set number or -1) | |
int | firstGub_ |
First gub variables (same as start_[0] at present) | |
int | lastGub_ |
last gub variable (same as end_[numberSets_-1] at present) | |
int | gubType_ |
type of gub - 0 not contiguous, 1 contiguous add 8 bit to say no ubs on individual variables |
This implements Gub rows plus a ClpPackedMatrix.
There will be a version using ClpPlusMinusOne matrix but there is no point doing one with ClpNetworkMatrix (although an embedded network is attractive).
Definition at line 20 of file ClpGubMatrix.hpp.
Default constructor.
virtual ClpGubMatrix::~ClpGubMatrix | ( | ) | [virtual] |
Destructor.
ClpGubMatrix::ClpGubMatrix | ( | const ClpGubMatrix & | ) |
The copy constructor.
ClpGubMatrix::ClpGubMatrix | ( | const CoinPackedMatrix & | ) |
The copy constructor from an CoinPackedMatrix.
ClpGubMatrix::ClpGubMatrix | ( | const ClpGubMatrix & | wholeModel, |
int | numberRows, | ||
const int * | whichRows, | ||
int | numberColumns, | ||
const int * | whichColumns | ||
) |
Subset constructor (without gaps).
Duplicates are allowed and order is as given
ClpGubMatrix::ClpGubMatrix | ( | const CoinPackedMatrix & | wholeModel, |
int | numberRows, | ||
const int * | whichRows, | ||
int | numberColumns, | ||
const int * | whichColumns | ||
) |
The copy constructor.
ClpGubMatrix::ClpGubMatrix | ( | CoinPackedMatrix * | matrix | ) |
This takes over ownership (for space reasons)
ClpGubMatrix::ClpGubMatrix | ( | ClpPackedMatrix * | matrix, |
int | numberSets, | ||
const int * | start, | ||
const int * | end, | ||
const double * | lower, | ||
const double * | upper, | ||
const unsigned char * | status = NULL |
||
) |
This takes over ownership (for space reasons) and is the real constructor.
virtual ClpMatrixBase* ClpGubMatrix::reverseOrderedCopy | ( | ) | const [virtual] |
Returns a new matrix in reverse order without gaps (GUB wants NULL)
Reimplemented from ClpPackedMatrix.
virtual CoinBigIndex ClpGubMatrix::countBasis | ( | const int * | whichColumn, |
int & | numberColumnBasic | ||
) | [virtual] |
Returns number of elements in column part of basis.
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::fillBasis | ( | ClpSimplex * | model, |
const int * | whichColumn, | ||
int & | numberColumnBasic, | ||
int * | row, | ||
int * | start, | ||
int * | rowCount, | ||
int * | columnCount, | ||
CoinFactorizationDouble * | element | ||
) | [virtual] |
Fills in column part of basis.
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::unpack | ( | const ClpSimplex * | model, |
CoinIndexedVector * | rowArray, | ||
int | column | ||
) | const [virtual] |
Unpacks a column into an CoinIndexedvector.
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::unpackPacked | ( | ClpSimplex * | model, |
CoinIndexedVector * | rowArray, | ||
int | column | ||
) | const [virtual] |
Unpacks a column into an CoinIndexedvector in packed foramt Note that model is NOT const.
Bounds and objective could be modified if doing column generation (just for this variable)
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::add | ( | const ClpSimplex * | model, |
CoinIndexedVector * | rowArray, | ||
int | column, | ||
double | multiplier | ||
) | const [virtual] |
Adds multiple of a column into an CoinIndexedvector You can use quickAdd to add to vector.
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::add | ( | const ClpSimplex * | model, |
double * | array, | ||
int | column, | ||
double | multiplier | ||
) | const [virtual] |
Adds multiple of a column into an array.
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::partialPricing | ( | ClpSimplex * | model, |
double | start, | ||
double | end, | ||
int & | bestSequence, | ||
int & | numberWanted | ||
) | [virtual] |
virtual int ClpGubMatrix::hiddenRows | ( | ) | const [virtual] |
Returns number of hidden rows e.g. gub.
Reimplemented from ClpMatrixBase.
virtual void ClpGubMatrix::transposeTimes | ( | const ClpSimplex * | model, |
double | scalar, | ||
const CoinIndexedVector * | x, | ||
CoinIndexedVector * | y, | ||
CoinIndexedVector * | z | ||
) | const [virtual] |
Return x * scalar * A + y
in z
.
Can use y as temporary array (will be empty at end) Note - If x packed mode - then z packed mode Squashes small elements and knows about ClpSimplex
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::transposeTimesByRow | ( | const ClpSimplex * | model, |
double | scalar, | ||
const CoinIndexedVector * | x, | ||
CoinIndexedVector * | y, | ||
CoinIndexedVector * | z | ||
) | const [virtual] |
Return x * scalar * A + y
in z
.
Can use y as temporary array (will be empty at end) Note - If x packed mode - then z packed mode Squashes small elements and knows about ClpSimplex. This version uses row copy
Reimplemented from ClpPackedMatrix.
virtual void ClpGubMatrix::subsetTransposeTimes | ( | const ClpSimplex * | model, |
const CoinIndexedVector * | x, | ||
const CoinIndexedVector * | y, | ||
CoinIndexedVector * | z | ||
) | const [virtual] |
Return x *A
in z
but just for indices in y.
Note - z always packed mode
Reimplemented from ClpPackedMatrix.
virtual int ClpGubMatrix::extendUpdated | ( | ClpSimplex * | model, |
CoinIndexedVector * | update, | ||
int | mode | ||
) | [virtual] |
expands an updated column to allow for extra rows which the main solver does not know about and returns number added if mode 0.
If mode 1 deletes extra entries
This active in Gub
Reimplemented from ClpMatrixBase.
virtual void ClpGubMatrix::primalExpanded | ( | ClpSimplex * | model, |
int | mode | ||
) | [virtual] |
mode=0 - Set up before "update" and "times" for primal solution using extended rows mode=1 - Cleanup primal solution after "times" using extended rows.
mode=2 - Check (or report on) primal infeasibilities
Reimplemented from ClpMatrixBase.
virtual void ClpGubMatrix::dualExpanded | ( | ClpSimplex * | model, |
CoinIndexedVector * | array, | ||
double * | other, | ||
int | mode | ||
) | [virtual] |
mode=0 - Set up before "updateTranspose" and "transposeTimes" for duals using extended updates array (and may use other if dual values pass) mode=1 - Update dual solution after "transposeTimes" using extended rows.
mode=2 - Compute all djs and compute key dual infeasibilities mode=3 - Report on key dual infeasibilities mode=4 - Modify before updateTranspose in partial pricing
Reimplemented from ClpMatrixBase.
virtual int ClpGubMatrix::generalExpanded | ( | ClpSimplex * | model, |
int | mode, | ||
int & | number | ||
) | [virtual] |
mode=0 - Create list of non-key basics in pivotVariable_ using number as numberBasic in and out mode=1 - Set all key variables as basic mode=2 - return number extra rows needed, number gives maximum number basic mode=3 - before replaceColumn mode=4 - return 1 if can do primal, 2 if dual, 3 if both mode=5 - save any status stuff (when in good state) mode=6 - restore status stuff mode=7 - flag given variable (normally sequenceIn) mode=8 - unflag all variables mode=9 - synchronize costs mode=10 - return 1 if there may be changing bounds on variable (column generation) mode=11 - make sure set is clean (used when a variable rejected - but not flagged) mode=12 - after factorize but before permute stuff mode=13 - at end of simplex to delete stuff
Reimplemented from ClpMatrixBase.
virtual int ClpGubMatrix::updatePivot | ( | ClpSimplex * | model, |
double | oldInValue, | ||
double | oldOutValue | ||
) | [virtual] |
update information for a pivot (and effective rhs)
Reimplemented from ClpMatrixBase.
Reimplemented in ClpGubDynamicMatrix.
virtual void ClpGubMatrix::useEffectiveRhs | ( | ClpSimplex * | model, |
bool | cheapest = true |
||
) | [virtual] |
Sets up an effective RHS and does gub crash if needed.
Reimplemented in ClpGubDynamicMatrix.
virtual double* ClpGubMatrix::rhsOffset | ( | ClpSimplex * | model, |
bool | forceRefresh = false , |
||
bool | check = false |
||
) | [virtual] |
Returns effective RHS offset if it is being used.
This is used for long problems or big gub or anywhere where going through full columns is expensive. This may re-compute
Reimplemented from ClpMatrixBase.
Reimplemented in ClpGubDynamicMatrix.
virtual int ClpGubMatrix::synchronize | ( | ClpSimplex * | model, |
int | mode | ||
) | [virtual] |
This is local to Gub to allow synchronization: mode=0 when status of basis is good mode=1 when variable is flagged mode=2 when all variables unflagged (returns number flagged) mode=3 just reset costs (primal) mode=4 correct number of dual infeasibilities mode=5 return 4 if time to re-factorize mode=6 - return 1 if there may be changing bounds on variable (column generation) mode=7 - do extra restores for column generation mode=8 - make sure set is clean mode=9 - adjust lower, upper on set by incoming.
Reimplemented in ClpGubDynamicMatrix.
virtual void ClpGubMatrix::correctSequence | ( | const ClpSimplex * | model, |
int & | sequenceIn, | ||
int & | sequenceOut | ||
) | [virtual] |
Correct sequence in and out to give true value.
Reimplemented from ClpPackedMatrix.
ClpGubMatrix& ClpGubMatrix::operator= | ( | const ClpGubMatrix & | ) |
The copy constructor.
virtual ClpMatrixBase* ClpGubMatrix::clone | ( | ) | const [virtual] |
virtual ClpMatrixBase* ClpGubMatrix::subsetClone | ( | int | numberRows, |
const int * | whichRows, | ||
int | numberColumns, | ||
const int * | whichColumns | ||
) | const [virtual] |
Subset clone (without gaps).
Duplicates are allowed and order is as given
Reimplemented from ClpPackedMatrix.
void ClpGubMatrix::redoSet | ( | ClpSimplex * | model, |
int | newKey, | ||
int | oldKey, | ||
int | iSet | ||
) |
redoes next_ for a set.
ClpSimplex::Status ClpGubMatrix::getStatus | ( | int | sequence | ) | const [inline] |
Status.
Definition at line 208 of file ClpGubMatrix.hpp.
void ClpGubMatrix::setStatus | ( | int | sequence, |
ClpSimplex::Status | status | ||
) | [inline] |
Status.
Definition at line 211 of file ClpGubMatrix.hpp.
void ClpGubMatrix::setFlagged | ( | int | sequence | ) | [inline] |
To flag a variable.
Reimplemented in ClpGubDynamicMatrix.
Definition at line 217 of file ClpGubMatrix.hpp.
void ClpGubMatrix::clearFlagged | ( | int | sequence | ) | [inline] |
Status.
Definition at line 220 of file ClpGubMatrix.hpp.
bool ClpGubMatrix::flagged | ( | int | sequence | ) | const [inline] |
void ClpGubMatrix::setAbove | ( | int | sequence | ) | [inline] |
To say key is above ub.
Definition at line 227 of file ClpGubMatrix.hpp.
void ClpGubMatrix::setFeasible | ( | int | sequence | ) | [inline] |
To say key is feasible.
Definition at line 233 of file ClpGubMatrix.hpp.
void ClpGubMatrix::setBelow | ( | int | sequence | ) | [inline] |
To say key is below lb.
Definition at line 239 of file ClpGubMatrix.hpp.
double ClpGubMatrix::weight | ( | int | sequence | ) | const [inline] |
Status.
Definition at line 244 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::start | ( | ) | const [inline] |
Starts.
Definition at line 250 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::end | ( | ) | const [inline] |
End.
Definition at line 254 of file ClpGubMatrix.hpp.
double* ClpGubMatrix::lower | ( | ) | const [inline] |
Lower bounds on sets.
Definition at line 258 of file ClpGubMatrix.hpp.
double* ClpGubMatrix::upper | ( | ) | const [inline] |
Upper bounds on sets.
Definition at line 262 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::keyVariable | ( | ) | const [inline] |
Key variable of set.
Definition at line 266 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::backward | ( | ) | const [inline] |
Backward pointer to set number.
Definition at line 270 of file ClpGubMatrix.hpp.
int ClpGubMatrix::numberSets | ( | ) | const [inline] |
Number of sets (gub rows)
Definition at line 274 of file ClpGubMatrix.hpp.
void ClpGubMatrix::switchOffCheck | ( | ) |
Switches off dj checking each factorization (for BIG models)
double ClpGubMatrix::sumDualInfeasibilities_ [protected] |
Sum of dual infeasibilities.
Definition at line 287 of file ClpGubMatrix.hpp.
double ClpGubMatrix::sumPrimalInfeasibilities_ [protected] |
Sum of primal infeasibilities.
Definition at line 289 of file ClpGubMatrix.hpp.
double ClpGubMatrix::sumOfRelaxedDualInfeasibilities_ [protected] |
Sum of Dual infeasibilities using tolerance based on error in duals.
Definition at line 291 of file ClpGubMatrix.hpp.
double ClpGubMatrix::sumOfRelaxedPrimalInfeasibilities_ [protected] |
Sum of Primal infeasibilities using tolerance based on error in primals.
Definition at line 293 of file ClpGubMatrix.hpp.
double ClpGubMatrix::infeasibilityWeight_ [protected] |
Infeasibility weight when last full pass done.
Definition at line 295 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::start_ [protected] |
Starts.
Definition at line 297 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::end_ [protected] |
End.
Definition at line 299 of file ClpGubMatrix.hpp.
double* ClpGubMatrix::lower_ [protected] |
Lower bounds on sets.
Definition at line 301 of file ClpGubMatrix.hpp.
double* ClpGubMatrix::upper_ [protected] |
Upper bounds on sets.
Definition at line 303 of file ClpGubMatrix.hpp.
unsigned char* ClpGubMatrix::status_ [mutable, protected] |
Status of slacks.
Definition at line 305 of file ClpGubMatrix.hpp.
unsigned char* ClpGubMatrix::saveStatus_ [protected] |
Saved status of slacks.
Definition at line 307 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::savedKeyVariable_ [protected] |
Saved key variables.
Definition at line 309 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::backward_ [protected] |
Backward pointer to set number.
Definition at line 311 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::backToPivotRow_ [protected] |
Backward pointer to pivot row !!!
Definition at line 313 of file ClpGubMatrix.hpp.
double* ClpGubMatrix::changeCost_ [protected] |
Change in costs for keys.
Definition at line 315 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::keyVariable_ [mutable, protected] |
Key variable of set.
Definition at line 317 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::next_ [mutable, protected] |
Next basic variable in set - starts at key and end with -(set+1).
Now changes to -(nonbasic+1). next_ has extra space for 2* longest set
Definition at line 321 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::toIndex_ [protected] |
Backward pointer to index in CoinIndexedVector.
Definition at line 323 of file ClpGubMatrix.hpp.
int* ClpGubMatrix::fromIndex_ [protected] |
Sum of dual infeasibilities.
Definition at line 325 of file ClpGubMatrix.hpp.
ClpSimplex* ClpGubMatrix::model_ [protected] |
Pointer back to model.
Definition at line 327 of file ClpGubMatrix.hpp.
int ClpGubMatrix::numberDualInfeasibilities_ [protected] |
Number of dual infeasibilities.
Definition at line 329 of file ClpGubMatrix.hpp.
int ClpGubMatrix::numberPrimalInfeasibilities_ [protected] |
Number of primal infeasibilities.
Definition at line 331 of file ClpGubMatrix.hpp.
int ClpGubMatrix::noCheck_ [protected] |
If pricing will declare victory (i.e.
no check every factorization). -1 - always check 0 - don't check 1 - in don't check mode but looks optimal
Definition at line 337 of file ClpGubMatrix.hpp.
int ClpGubMatrix::numberSets_ [protected] |
Number of sets (gub rows)
Definition at line 339 of file ClpGubMatrix.hpp.
int ClpGubMatrix::saveNumber_ [protected] |
Number in vector without gub extension.
Definition at line 341 of file ClpGubMatrix.hpp.
int ClpGubMatrix::possiblePivotKey_ [protected] |
Pivot row of possible next key.
Definition at line 343 of file ClpGubMatrix.hpp.
int ClpGubMatrix::gubSlackIn_ [protected] |
Gub slack in (set number or -1)
Definition at line 345 of file ClpGubMatrix.hpp.
int ClpGubMatrix::firstGub_ [protected] |
First gub variables (same as start_[0] at present)
Definition at line 347 of file ClpGubMatrix.hpp.
int ClpGubMatrix::lastGub_ [protected] |
last gub variable (same as end_[numberSets_-1] at present)
Definition at line 349 of file ClpGubMatrix.hpp.
int ClpGubMatrix::gubType_ [protected] |
type of gub - 0 not contiguous, 1 contiguous add 8 bit to say no ubs on individual variables
Definition at line 352 of file ClpGubMatrix.hpp.