9class CoinPresolveAction;
10#include "CoinPresolveMatrix.hpp"
88 double feasibilityTolerance = 0.0,
89 bool keepIntegers =
true,
91 const char *prohibited = NULL,
93 const char *rowProhibited = NULL);
112 virtual void postsolve(
bool updateStatus =
true);
171 inline void setPresolveActions(
int action)
247 virtual const CoinPresolveAction *
presolve(CoinPresolveMatrix *prob);
*Return number of rows in original model int getNumRows() const
*Set the pointer to the original model void setOriginalModel(OsiSolverInterface *model)
*Number of major passes int numberPasses_
void setNonLinearValue(double value)
"Magic" number.
OsiPresolve()
Default constructor (empty object).
void gutsOfDestroy()
Destroys queued postsolve actions.
OsiSolverInterface * originalModel_
Fine control over presolve actions.
virtual ~OsiPresolve()
Virtual destructor.
int presolveActions_
Whether we want to skip dual part of presolve etc.
*Return a pointer to the original model OsiSolverInterface * originalModel() const
CoinBigIndex nelems_
Number of nonzero matrix coefficients in the original model.
*Return number of columns in original model int getNumCols() const
OsiSolverInterface * presolvedModel_
Presolved model (solver interface loaded with the presolved problem).
int ncols_
Number of columns in original model.
double nonLinearValue() const
OsiSolverInterface * model() const
Restate the solution to the presolved problem in terms of the original problem and load it into the o...
double nonLinearValue_
"Magic" number.
int nrows_
Number of rows in original model.
virtual void postsolve(CoinPostsolveMatrix &prob)
Reverse presolve transformations to recover the solution to the original problem.
virtual OsiSolverInterface * presolvedModel(OsiSolverInterface &origModel, double feasibilityTolerance=0.0, bool keepIntegers=true, int numberPasses=5, const char *prohibited=NULL, bool doStatus=true, const char *rowProhibited=NULL)
Create a new OsiSolverInterface loaded with the presolved problem.
virtual const CoinPresolveAction * presolve(CoinPresolveMatrix *prob)
Apply presolve transformations to the problem.
*Return a pointer to the original columns const int * originalColumns() const
*Original row numbers int * originalRow_
*The list of transformations applied const CoinPresolveAction * paction_
*Return a pointer to the original rows const int * originalRows() const
*Original column numbers int * originalColumn_
Abstract Base Class for describing an interface to a solver.