12 #ifndef ClpPESimplex_H 13 #define ClpPESimplex_H 61 assert(row >= 0 && row < numberRows_);
93 void printPrimalDegenerates();
96 void printCompatibleCols();
114 inline void stopTimer() { timeCompatibility_ += CoinCpuTime() - timeTmp_; }
144 return doStatistics_;
148 doStatistics_ = value;
181 double epsDegeneracy_;
182 double epsCompatibility_;
200 int coPrimalDegeneratesAvg_;
201 int coDualDegeneratesAvg_;
202 int coCompatibleColsAvg_;
203 int coCompatibleRowsAvg_;
204 int coUpdateDegenerates_;
205 int coIdentifyCompatibles_;
206 int coDegeneratePivots_;
207 int coCompatiblePivots_;
208 int coDegenerateCompatiblePivots_;
209 int coDegeneratePivotsConsecutive_;
212 int coPriorityPivots_;
217 double lastObjectiveValue_;
218 bool isLastPivotCompatible_;
222 double timeCompatibility_;
223 double timeMultRandom_;
224 double timeLinearSystem_;
int coPrimalDegenerates()
BASIC GET METHODS.
double coDualDegeneratesAvg()
bool isCompatibleCol(int sequence)
double timeCompatibility()
double dualTolerance() const
Dual tolerance to use.
double * compatibilityRow_
double coCompatibleRowsAvg()
double coCompatibleColsAvg()
bool isLastPivotCompatible()
void updateDualDegeneratesAvg(int coPivots)
void identifyCompatibleRows(CoinIndexedVector *spare, CoinIndexedVector *wDual)
Identify the dual compatible rows.
void isLastPivotCompatible(bool yesOrNo)
bool isCompatibleRow(int row)
~ClpPESimplex()
Destructor.
int coDegenerateCompatiblePivots()
bool checkCompatibilityRow(int pivotRow)
DEBUG AND DISPLAY METHODS.
void updateDualDegenerates()
Updates the set of dual degenerate variables.
double PEdot(CoinIndexedVector &v1, const double *v2)
SHARED METHODS FOR USEFUL ALGEBRAIC OPERATIONS.
void updateCompatibleRowsAvg(int coPivots)
double timeLinearSystem()
void addDegeneratePivot()
Update and return the number of degenerate pivots and variables.
ClpPESimplex(ClpSimplex *model)
Constructor.
This solves LPs using the simplex method.
int coDualDegenerates_
Indices of the non basic variables with a zero reduced cost during the last update (ndual-degenerate ...
void updateCompatibleColsAvg(int coPivots)
double objectiveValue() const
Objective value.
double lastObjectiveValue()
Tracking the degenerate iterations after compatible pivots.
void addDegeneratePivotConsecutive()
void printTimer(std::ostream &out)
double coPrimalDegeneratesAvg()
void startTimer()
Start and stop the timer, and print the total recorded time.
void identifyCompatibleCols(int number, const int *which, CoinIndexedVector *spareRow2, CoinIndexedVector *wPrimal)
Identify the primal compatible columns The input argument is a temporary array that is needed for the...
double * compatibilityCol_
bool * isPrimalDegenerate_
void addCompatiblePivot()
void updateCompatibleRows(int sequence)
Update the dual compatible rows.
int coPrimalDegenerates_
Indices of the variables that were not at one of their bounds during the last update (non primal dege...
void updateLastObjectiveValue()
void updatePrimalDegenerates()
PUBLIC METHODS RELATED TO COMPATIBILITY.
void addDegenerateCompatiblePivot()
int coCompatibleRows_
Table of booleans indicating whether each constraint is dual compatible (true) or not (false)
void PEtransposeTimesSubsetAll(ClpSimplex *model, int number, const int *which, const double *COIN_RESTRICT x, double *COIN_RESTRICT y, const double *COIN_RESTRICT rowScale, const double *COIN_RESTRICT columnScale)
compute the product x^T*[A I] for the indices "which" of [A I]
void updatePrimalDegeneratesAvg(int coPivots)
int coCompatibleCols_
Table of booleans indicating whether each variable is primal compatible (true) or not (false)
int coDegeneratePivotsConsecutive()
void setDoStatistics(int value)
BASE CLASS FOR THE IMPROVED SIMPLEX.
void resetDegeneratePivotsConsecutive()