8 #include "CoinFinite.hpp"
9 #include "CoinMessageHandler.hpp"
10 #include "OsiSolverInterface.hpp"
11 #include "OsiBranchingObject.hpp"
12 #include "OsiCuts.hpp"
13 #include "CoinWarmStartBasis.hpp"
17 #include "ClpDualRowPivot.hpp"
25 class OsiRowCutDebugger;
26 class CglCutGenerator;
29 class CglTreeProbingInfo;
233 int serialCuts(OsiCuts & cuts,
CbcNode * node, OsiCuts & slackCuts,
int lastNumberCuts);
249 int & numberNodesOutput,
int &
status) ;
253 #ifdef CBC_KEEP_DEPRECATED
259 CbcModel * cleanModel(
const double * lower,
const double * upper);
276 int subBranchAndBound(
CbcModel * model2,
294 int subBranchAndBound(
const double * lower,
const double * upper,
303 OsiSolverInterface * strengthenedModel();
313 CglPreProcess * preProcess(
int makeEquality = 0,
int numberPasses = 5,
317 void postProcess(CglPreProcess * process);
345 double * saveLower = NULL,
346 double * saveUpper = NULL);
374 int lessThanThis,
int defaultValue = 1000);
416 bool tightenVubs(
int type,
bool allowMultipleBinary =
false,
417 double useCutoff = 1.0e50);
424 bool tightenVubs(
int numberVubs,
const int * which,
425 double useCutoff = 1.0e50);
439 void saveModel(OsiSolverInterface * saveSolver,
double * checkCutoffForRestart,
bool * feasible);
464 const inline OsiObject *
object(
int which)
const {
781 bool doCutsNow(
int allowForTopOfTree)
const;
975 return solver_->getNumElements();
1004 return solver_->getColUpper();
1017 return solver_->getRowSense();
1029 return solver_->getRightHandSide();
1041 return solver_->getRowRange();
1046 return solver_->getRowLower();
1051 return solver_->getRowUpper();
1056 return solver_->getObjCoefficients();
1067 return solver_->isContinuous(colIndex);
1072 return solver_->isBinary(colIndex);
1080 return solver_->isInteger(colIndex);
1085 return solver_->isIntegerNonBinary(colIndex);
1090 return solver_->isFreeBinary(colIndex) ;
1095 return solver_->getMatrixByRow();
1100 return solver_->getMatrixByCol();
1105 return solver_->getInfinity();
1159 double & objectiveValue,
const double *solution,
1160 int fixVariables = 0);
1166 const double * solution);
1175 int fixVariables,
double originalObjValue);
1183 int & numberObjectInfeasibilities)
const;
1207 return solver_->getColSolution();
1212 return solver_->getRowPrice();
1217 return solver_->getReducedCost();
1222 return solver_->getRowActivity();
1278 double objectiveValue,
bool check =
false);
1528 int howOften = 1,
const char * name = NULL,
1529 bool normal =
true,
bool atSolution =
false,
1530 bool infeasible =
false,
int howOftenInSub = -100,
1531 int whatDepth = -1,
int whatDepthInSub = -1);
1607 return object_[sequence]->priority();
1662 void newLanguage(CoinMessages::Language language);
1745 void goToDantzig(
int numberNodes, ClpDualRowPivot *& savePivotMethod);
1762 CbcModel(
const OsiSolverInterface &);
1816 OsiSolverInterface * returnSolver =
solver_;
1818 return returnSolver;
1996 CbcNode * oldNode, OsiCuts & cuts,
1997 bool & resolved, CoinWarmStartBasis *lastws,
1998 const double * lowerBefore,
const double * upperBefore,
1999 OsiSolverBranch * & branches);
2008 CoinWarmStartBasis *
getEmptyBasis(
int ns = 0,
int na = 0)
const ;
2022 bool allowResolve, OsiCuts * saveCuts,
2023 int numberNewCuts = 0,
const OsiRowCut ** newCuts = NULL) ;
2038 int addCuts(
CbcNode * node, CoinWarmStartBasis *&lastws,
bool canFix);
2061 double & lower,
double & upper,
int force);
2088 int * numberDown = NULL,
int * numberUp = NULL,
2089 int * numberDownInfeasible = NULL,
2090 int * numberUpInfeasible = NULL)
const;
2150 # ifdef COIN_HAS_CLP
2178 int numberFixed,
bool ifInfeasible);
2526 # ifdef COIN_HAS_CLP
2531 # ifdef CBC_ONLY_CLP
2670 double & originalUpper) ;
2673 class OsiClpSolverInterface;
2674 int CbcMain (
int argc,
const char *argv[], OsiClpSolverInterface & solver,
CbcModel ** babSolver);
2677 int callCbc(
const char * input2, OsiClpSolverInterface& solver1);
2678 int callCbc(
const char * input2);
2679 int callCbc(
const std::string input2, OsiClpSolverInterface& solver1);
2680 int callCbc(
const std::string input2) ;