42 double feasibilityTolerance = 0.0,
43 bool keepIntegers =
true,
45 bool dropNames =
false,
46 bool doRowObjective =
false,
47 const char *prohibitedRows = NULL,
48 const char *prohibitedColumns = NULL);
54 double feasibilityTolerance = 0.0,
55 bool keepIntegers =
true,
57 bool dropNames =
false,
58 bool doRowObjective =
false);
305 virtual void postsolve(
bool updateStatus =
true);
368 double feasibilityTolerance,
373 const char *prohibitedRows = NULL,
374 const char *prohibitedColumns = NULL);
ClpSimplex * originalModel() const
Return pointer to original model.
double nonLinearValue() const
bool doSingletonColumn() const
Whether we want to do singleton column part of presolve.
void setDoTighten(bool doTighten)
int numberPasses_
Number of major passes.
void setDoIntersection(bool doIntersection)
bool doTighten() const
Whether we want to do tighten part of presolve.
void setDoDual(bool doDual)
int presolveActions() const
Set whole group.
Abstract base class of all presolve routines.
void setDoTripleton(bool doTripleton)
void setDoDuprow(bool doDuprow)
bool doSingleton() const
Whether we want to do singleton part of presolve.
bool doDependency() const
Whether we want to do dependency part of presolve.
bool doDuprow() const
Whether we want to do duprow part of presolve.
bool doDual() const
Whether we want to do dual part of presolve.
std::string saveFile_
Name of saved model file.
void setDoImpliedFree(bool doImpliedfree)
ClpSimplex * presolvedModel(ClpSimplex &si, double feasibilityTolerance=0.0, bool keepIntegers=true, int numberPasses=5, bool dropNames=false, bool doRowObjective=false, const char *prohibitedRows=NULL, const char *prohibitedColumns=NULL)
bool doTripleton() const
Whether we want to do tripleton part of presolve.
ClpPresolve()
Default constructor.
void setSubstitution(int value)
Substitution level.
void setDoSingleton(bool doSingleton)
bool doGubrow() const
Whether we want to do gubrow part of presolve.
const int * originalRows() const
return pointer to original rows
Declarations for CoinPresolveMatrix and CoinPostsolveMatrix and their common base class CoinPrePostso...
bool doForcing() const
Whether we want to do forcing part of presolve.
void setDoDoubleton(bool doDoubleton)
void setDoForcing(bool doForcing)
void setDoTwoxtwo(bool doTwoxTwo)
virtual ClpSimplex * gutsOfPresolvedModel(ClpSimplex *originalModel, double feasibilityTolerance, bool keepIntegers, int numberPasses, bool dropNames, bool doRowObjective, const char *prohibitedRows=NULL, const char *prohibitedColumns=NULL)
This is main part of Presolve.
virtual void postsolve(bool updateStatus=true)
virtual ~ClpPresolve()
Virtual destructor.
int substitution_
Substitution level.
This solves LPs using the simplex method.
void setPresolveActions(int action)
int zeroSmall() const
How much we want to zero small values from aggregation - ratio 0 - 1.0e-12, 1 1.0e-11, 2 1.0e-10, 3 1.0e-9.
bool doTwoxTwo() const
Whether we want to do twoxtwo part of presolve.
This is the Clp interface to CoinPresolve.
double * rowObjective_
Row objective.
const CoinPresolveAction * paction_
The list of transformations applied.
int * originalColumn_
Original column numbers.
bool doTransfer() const
Whether we want to do transfer part of presolve.
bool doIntersection() const
Whether we want to allow duplicate intersections.
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during postsol...
bool doDupcol() const
Whether we want to do dupcol part of presolve.
const int * originalColumns() const
return pointer to original columns
void setDoDependency(bool doDependency)
void setDoGubrow(bool doGubrow)
Augments CoinPrePostsolveMatrix with information about the problem that is only needed during presolv...
void setZeroSmall(int value)
int presolvedModelToFile(ClpSimplex &si, std::string fileName, double feasibilityTolerance=0.0, bool keepIntegers=true, int numberPasses=5, bool dropNames=false, bool doRowObjective=false)
This version saves data in a file.
void setOriginalModel(ClpSimplex *model)
Set pointer to original model.
bool doImpliedFree() const
Whether we want to do impliedfree part of presolve.
int presolveActions_
Whether we want to skip dual part of presolve etc.
int ncols_
The postsolved problem will expand back to its former size as postsolve transformations are applied...
ClpSimplex * model() const
Return pointer to presolved model, Up to user to destroy.
void setDoSingletonColumn(bool doSingleton)
ClpSimplex * presolvedModel_
ClpPresolved model - up to user to destroy by deleteClpPresolvedModel.
bool doDoubleton() const
Whether we want to do doubleton part of presolve.
int * originalRow_
Original row numbers.
virtual const CoinPresolveAction * presolve(CoinPresolveMatrix *prob)
If you want to apply the individual presolve routines differently, or perhaps add your own to the mix...
ClpSimplex * originalModel_
Original model - must not be destroyed before postsolve.
int presolveStatus() const
Return presolve status (0,1,2)
void setDoTransfer(bool doTransfer)
void destroyPresolve()
Gets rid of presolve actions (e.g.when infeasible)
void statistics()
Asks for statistics.
void setNonLinearValue(double value)
"Magic" number.
double nonLinearValue_
"Magic" number.
void setDoDupcol(bool doDupcol)