11 #ifndef ClpSimplexPrimal_H 12 #define ClpSimplexPrimal_H 114 int primal(
int ifValuesPass = 0,
int startFinishOptions = 0);
172 double &objectiveChange,
215 bool doFactorization,
double * ray() const
For advanced users - no need to delete - sign not changed.
CoinIndexedVector * rowArray(int index) const
Useful row length arrays (0,1,2,3,4,5)
void perturb(int type)
Perturbs problem (method depends on perturbation())
int whileIterating(int valuesOption)
This has the flow between re-factorizations.
double theta() const
Theta (pivot change)
void primalRay(CoinIndexedVector *rowArray)
Create primal ray.
int checkUnbounded(CoinIndexedVector *ray, CoinIndexedVector *spare, double changeCost)
Checks if tentative optimal actually means unbounded in primal Returns -3 if not, 2 if is unbounded.
bool exactOutgoing() const
void statusOfProblemInPrimal(int &lastCleaned, int type, ClpSimplexProgress *progress, bool doFactorization, int ifValuesPass, ClpSimplex *saveModel=NULL)
Refactorizes if necessary Checks if finished.
For saving extra information to see if looping.
void primalColumn(CoinIndexedVector *updateArray, CoinIndexedVector *spareRow1, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1, CoinIndexedVector *spareColumn2)
Chooses primal pivot column updateArray has cost updates (also use pivotRow_ from last iteration) Wou...
int updatePrimalsInPrimal(CoinIndexedVector *rowArray, double theta, double &objectiveChange, int valuesPass)
The primals are updated by the given array.
int pivotResult(int ifValuesPass=0)
Do last half of an iteration.
int unflag()
Unflag all variables and return number unflagged.
CoinIndexedVector * columnArray(int index) const
Useful column length arrays (0,1,2,3,4,5)
This solves LPs using the simplex method.
bool unPerturb()
Take off effect of perturbation and say whether to try dual.
int nextSuperBasic(int superBasicType, CoinIndexedVector *columnArray)
Get next superbasic -1 if none, Normal type is 1 If type is 3 then initializes sorted list if 2 uses ...
void primalRow(CoinIndexedVector *rowArray, CoinIndexedVector *rhsArray, CoinIndexedVector *spareArray, int valuesPass)
Row array has pivot column This chooses pivot row.
int primal(int ifValuesPass=0, int startFinishOptions=0)
Primal algorithm.
int lexSolve()
Sort of lexicographic resolve.
int saveModel(const char *fileName)
Save model to file, returns 0 if success.
void clearAll()
Clears all bits and clears rowArray[1] etc.
ClpSimplexProgress * progress()
For dealing with all issues of cycling etc.
This solves LPs using the primal simplex method.
bool alwaysOptimal() const