4 #ifndef OsiCbcSolverInterface_H
5 #define OsiCbcSolverInterface_H
10 #include "CbcModel.hpp"
11 #include "CoinPackedMatrix.hpp"
13 #include "CbcStrategy.hpp"
14 #include "CoinWarmStartBasis.hpp"
81 void * otherInformation=NULL);
85 void *& otherInformation)
const;
129 virtual bool setWarmStart(
const CoinWarmStart* warmstart);
267 virtual std::vector<double*>
getDualRays(
int maxNumRays)
const;
279 virtual std::vector<double*>
getPrimalRays(
int maxNumRays)
const;
295 int ndx,
unsigned digits = 7)
const ;
299 virtual std::string
getObjName (
unsigned maxLen = std::string::npos)
const ;
308 unsigned maxLen = std::string::npos)
const ;
316 virtual void setRowName(
int ndx, std::string name) ;
321 int srcStart,
int len,
int tgtStart) ;
330 unsigned maxLen = std::string::npos)
const ;
338 virtual void setColName(
int ndx, std::string name) ;
343 int srcStart,
int len,
int tgtStart) ;
360 virtual void setObjCoeff(
int elementIndex,
double elementValue );
365 virtual void setColLower(
int elementIndex,
double elementValue );
370 virtual void setColUpper(
int elementIndex,
double elementValue );
374 double lower,
double upper );
385 const int* indexLast,
386 const double* boundList);
390 virtual void setRowLower(
int elementIndex,
double elementValue );
394 virtual void setRowUpper(
int elementIndex,
double elementValue ) ;
398 double lower,
double upper ) ;
401 virtual void setRowType(
int index,
char sense,
double rightHandSide,
413 const int* indexLast,
414 const double* boundList);
427 const int* indexLast,
428 const char* senseList,
429 const double* rhsList,
430 const double* rangeList);
445 virtual void setInteger(
const int* indices,
int len);
483 virtual void addCol(
const CoinPackedVectorBase& vec,
484 const double collb,
const double colub,
487 virtual void addCol(
int numberElements,
const int * rows,
const double * elements,
488 const double collb,
const double colub,
493 virtual void addCols(
const int numcols,
494 const CoinPackedVectorBase *
const * cols,
495 const double* collb,
const double* colub,
498 virtual void deleteCols(
const int num,
const int * colIndices);
502 virtual void addRow(
const CoinPackedVectorBase& vec,
503 const double rowlb,
const double rowub);
505 virtual void addRow(
const CoinPackedVectorBase& vec,
506 const char rowsen,
const double rowrhs,
507 const double rowrng);
511 virtual void addRows(
const int numrows,
512 const CoinPackedVectorBase *
const * rows,
513 const double* rowlb,
const double* rowub);
515 virtual void addRows(
const int numrows,
516 const CoinPackedVectorBase *
const * rows,
517 const char* rowsen,
const double* rowrhs,
518 const double* rowrng);
520 virtual void deleteRows(
const int num,
const int * rowIndices);
552 virtual void loadProblem(
const CoinPackedMatrix& matrix,
553 const double* collb,
const double* colub,
555 const double* rowlb,
const double* rowub);
565 double*& collb,
double*& colub,
double*& obj,
566 double*& rowlb,
double*& rowub);
580 virtual void loadProblem(
const CoinPackedMatrix& matrix,
581 const double* collb,
const double* colub,
583 const char* rowsen,
const double* rowrhs,
584 const double* rowrng);
594 double*& collb,
double*& colub,
double*& obj,
595 char*& rowsen,
double*& rowrhs,
600 virtual void loadProblem(
const int numcols,
const int numrows,
601 const CoinBigIndex * start,
const int* index,
603 const double* collb,
const double* colub,
605 const double* rowlb,
const double* rowub);
609 virtual void loadProblem(
const int numcols,
const int numrows,
610 const CoinBigIndex * start,
const int* index,
612 const double* collb,
const double* colub,
614 const char* rowsen,
const double* rowrhs,
615 const double* rowrng);
620 virtual int readMps(
const char *filename,
621 const char *extension =
"mps") ;
627 virtual void writeMps(
const char *filename,
628 const char *extension =
"mps",
629 double objSense=0.0)
const;
639 const char ** rowNames,
const char ** columnNames,
640 int formatType=0,
int numberAcross=2,
641 double objSense=0.0)
const ;
677 {
modelPtr_->setMaximumSolutions(value);}
680 {
return modelPtr_->getMaximumSolutions();}
686 {
return modelPtr_->getMaximumSeconds();}
689 {
return modelPtr_->isNodeLimitReached();}
692 {
return modelPtr_->isSolutionLimitReached();}
714 CbcStrategy * strategy=NULL);