18 #include "CoinMessageHandler.hpp"
19 #include "CoinHelperFunctions.hpp"
20 #include "CoinFinite.hpp"
45 ClpModel (
bool emptyMessages =
false );
61 bool dropNames =
true,
bool dropIntegers =
true);
80 const double* collb,
const double* colub,
82 const double* rowlb,
const double* rowub,
85 const double* collb,
const double* colub,
87 const double* rowlb,
const double* rowub,
92 void loadProblem (
const int numcols,
const int numrows,
93 const CoinBigIndex* start,
const int* index,
95 const double* collb,
const double* colub,
97 const double* rowlb,
const double* rowub,
104 int loadProblem ( CoinModel & modelObject,
bool tryPlusMinusOne =
false);
106 void loadProblem (
const int numcols,
const int numrows,
107 const CoinBigIndex* start,
const int* index,
108 const double* value,
const int * length,
109 const double* collb,
const double* colub,
111 const double* rowlb,
const double* rowub,
115 const CoinBigIndex * start,
116 const int * column,
const double * element);
123 int readMps(
const char *filename,
124 bool keepNames =
false,
125 bool ignoreErrors =
false);
127 int readGMPL(
const char *filename,
const char * dataName,
128 bool keepNames =
false);
140 void resize (
int newNumberRows,
int newNumberColumns);
142 void deleteRows(
int number,
const int * which);
144 void addRow(
int numberInRow,
const int * columns,
145 const double * elements,
double rowLower = -COIN_DBL_MAX,
150 const CoinBigIndex * rowStarts,
const int * columns,
151 const double * elements);
153 void addRows(
int number,
const double * rowLower,
154 const double * rowUpper,
155 const CoinBigIndex * rowStarts,
const int * rowLengths,
157 const double * elements);
158 #ifndef CLP_NO_VECTOR
159 void addRows(
int number,
const double * rowLower,
160 const double * rowUpper,
161 const CoinPackedVectorBase *
const * rows);
168 int addRows(
const CoinBuild & buildObject,
bool tryPlusMinusOne =
false,
169 bool checkDuplicates =
true);
178 int addRows(CoinModel & modelObject,
bool tryPlusMinusOne =
false,
179 bool checkDuplicates =
true);
186 const double * elements,
194 const CoinBigIndex * columnStarts,
const int * rows,
195 const double * elements);
196 void addColumns(
int number,
const double * columnLower,
197 const double * columnUpper,
198 const double * objective,
199 const CoinBigIndex * columnStarts,
const int * columnLengths,
201 const double * elements);
202 #ifndef CLP_NO_VECTOR
203 void addColumns(
int number,
const double * columnLower,
204 const double * columnUpper,
205 const double * objective,
206 const CoinPackedVectorBase *
const * columns);
213 int addColumns(
const CoinBuild & buildObject,
bool tryPlusMinusOne =
false,
214 bool checkDuplicates =
true);
222 int addColumns(CoinModel & modelObject,
bool tryPlusMinusOne =
false,
223 bool checkDuplicates =
true);
226 bool keepZero =
false) {
274 void setRowName(
int rowIndex, std::string & name) ;
285 int findNetwork(
char * rotate,
double fractionNeeded = 0.75);
303 int formatType = 0,
int numberAcross = 2,
304 double objSense = 0.0)
const ;
507 inline void setObjCoeff(
int elementIndex,
double elementValue ) {
521 double lower,
double upper );
532 const int* indexLast,
533 const double* boundList);
537 inline void setColLower(
int elementIndex,
double elementValue ) {
542 inline void setColUpper(
int elementIndex,
double elementValue ) {
548 double lower,
double upper ) {
559 const int* indexLast,
560 const double* boundList) {
566 void setRowLower(
int elementIndex,
double elementValue );
570 void setRowUpper(
int elementIndex,
double elementValue ) ;
574 double lower,
double upper ) ;
583 const int* indexLast,
584 const double* boundList);
646 inline double *
objective(
const double * solution,
double & offset,
bool refresh =
true)
const {
684 inline CoinPackedMatrix *
matrix()
const {
685 if (
matrix_ == NULL )
return NULL;
731 bool deleteCurrent =
false) {
875 inline const std::vector<std::string> *
rowNames()
const {
878 inline const std::string&
rowName(
int iRow)
const {
903 int emptyProblem(
int * infeasNumber = NULL,
double * infeasSum = NULL,
bool printMessage =
true);
915 void times(
double scalar,
916 const double * x,
double * y)
const;
921 const double * x,
double * y)
const ;
1018 #define COIN_CBC_USING_CLP 0x01000000
1034 void getRowBound(
int iRow,
double& lower,
double& upper)
const;
1037 const double* collb,
const double* colub,
1039 const double* rowlb,
const double* rowub,
1040 const double * rowObjective = NULL);