12 #ifndef ClpPESimplex_H
13 #define ClpPESimplex_H
93 void printPrimalDegenerates();
96 void printCompatibleCols();
int coPrimalDegenerates()
BASIC GET METHODS.
double coDualDegeneratesAvg()
int coPriorityPivots_
number of compatible pivots that were done because of the priority factor
bool isCompatibleCol(int sequence)
double dualTolerance() const
Dual tolerance to use.
double timeCompatibility()
double * compatibilityRow_
double coCompatibleRowsAvg()
double coCompatibleColsAvg()
double objectiveValue() const
Objective value.
bool isLastPivotCompatible()
int coDualDegeneratesAvg_
int coIdentifyCompatibles_
void updateDualDegeneratesAvg(int coPivots)
static double CoinCpuTime()
void identifyCompatibleRows(CoinIndexedVector *spare, CoinIndexedVector *wDual)
Identify the dual compatible rows.
void isLastPivotCompatible(bool yesOrNo)
int doStatistics_
Do statistics.
bool isCompatibleRow(int row)
~ClpPESimplex()
Destructor.
int coDegeneratePivotsConsecutive_
int coDegenerateCompatiblePivots()
bool checkCompatibilityRow(int pivotRow)
DEBUG AND DISPLAY METHODS.
double timeCompatibility_
Timer attribute recording the additional time spent in identifying compatible variables.
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.
int numberRows_
size of the original model
This solves LPs using the simplex method.
bool isLastPivotCompatible_
int coDualDegenerates_
Indices of the non basic variables with a zero reduced cost during the last update (ndual-degenerate ...
int coPrimalDegeneratesAvg_
number of degenerate pivots and variables
void updateCompatibleColsAvg(int coPivots)
ClpSimplex * model_
pointer to the original model that shall be solved
double lastObjectiveValue()
Tracking the degenerate iterations after compatible pivots.
int coDegenerateCompatiblePivots_
void addDegeneratePivotConsecutive()
void printTimer(std::ostream &out)
double coPrimalDegeneratesAvg()
double lastObjectiveValue_
tracking the degenerate iterations after compatible pivots
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()
double epsDegeneracy_
tolerance used for the tests of degeneracy and compatibility (resp.)
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.
double * tempRandom_
w vectors that are used to identify the compatible columns and rows.
void resetDegeneratePivotsConsecutive()