4 #ifndef _OsiFmpSolverInterface_hpp_
5 #define _OsiFmpSolverInterface_hpp_
7 #if (defined(__MINGW32__) || defined(__CYGWIN32__)) && !defined(FMPMSDLL)
15 #include "CoinPackedMatrix.hpp"
16 #include "CoinWarmStartBasis.hpp"
96 {
return (dynamic_cast<CoinWarmStart *>(
new CoinWarmStartBasis())) ; }
101 virtual bool setWarmStart(
const CoinWarmStart* warmstart);
196 virtual bool isBinary(
int columnNumber)
const;
203 virtual bool isInteger(
int columnNumber)
const;
255 virtual std::vector<double*>
getDualRays(
int maxNumRays)
const;
267 virtual std::vector<double*>
getPrimalRays(
int maxNumRays)
const;
286 virtual void setObjCoeff(
int elementIndex,
double elementValue );
290 virtual void setColLower(
int elementIndex,
double elementValue );
294 virtual void setColUpper(
int elementIndex,
double elementValue );
302 double lower,
double upper ) {
316 const int* indexLast,
317 const double* boundList);
321 virtual void setRowLower(
int elementIndex,
double elementValue );
325 virtual void setRowUpper(
int elementIndex,
double elementValue );
331 double lower,
double upper );
334 virtual void setRowType(
int index,
char sense,
double rightHandSide,
346 const int* indexLast,
347 const double* boundList);
360 const int* indexLast,
361 const char* senseList,
362 const double* rhsList,
363 const double* rangeList);
378 virtual void setInteger(
const int* indices,
int len);
415 virtual void addCol(
const CoinPackedVectorBase& vec,
416 const double collb,
const double colub,
419 virtual void addCols(
const int numcols,
420 const CoinPackedVectorBase *
const * cols,
421 const double* collb,
const double* colub,
425 virtual void addCols(
const CoinPackedMatrix& matrix,
426 const double* collb,
const double* colub,
430 virtual void deleteCols(
const int num,
const int * colIndices);
433 virtual void addRow(
const CoinPackedVectorBase& vec,
434 const double rowlb,
const double rowub);
436 virtual void addRow(
const CoinPackedVectorBase& vec,
437 const char rowsen,
const double rowrhs,
438 const double rowrng);
440 virtual void addRows(
const int numrows,
441 const CoinPackedVectorBase *
const * rows,
442 const double* rowlb,
const double* rowub);
444 virtual void addRows(
const int numrows,
445 const CoinPackedVectorBase *
const * rows,
446 const char* rowsen,
const double* rowrhs,
447 const double* rowrng);
450 virtual void addRows(
const CoinPackedMatrix& matrix,
451 const double* rowlb,
const double* rowub);
453 virtual void addRows(
const CoinPackedMatrix& matrix,
454 const char* rowsen,
const double* rowrhs,
455 const double* rowrng);
458 virtual void deleteRows(
const int num,
const int * rowIndices);
484 double effectivenessLb = 0.0);
504 virtual void loadProblem(
const CoinPackedMatrix& matrix,
505 const double* collb,
const double* colub,
507 const double* rowlb,
const double* rowub);
517 double*& collb,
double*& colub,
double*& obj,
518 double*& rowlb,
double*& rowub);
532 virtual void loadProblem(
const CoinPackedMatrix& matrix,
533 const double* collb,
const double* colub,
535 const char* rowsen,
const double* rowrhs,
536 const double* rowrng);
546 double*& collb,
double*& colub,
double*& obj,
547 char*& rowsen,
double*& rowrhs,
552 virtual void loadProblem(
const int numcols,
const int numrows,
553 const CoinBigIndex * start,
const int* index,
555 const double* collb,
const double* colub,
557 const double* rowlb,
const double* rowub);
561 virtual void loadProblem(
const int numcols,
const int numrows,
562 const CoinBigIndex * start,
const int* index,
564 const double* collb,
const double* colub,
566 const char* rowsen,
const double* rowrhs,
567 const double* rowrng);
571 virtual int readMps(
const char *filename,
572 const char *extension =
"mps");
578 virtual void writeMps(
const char *filename,
579 const char *extension =
"mps",
580 double objSense=0.0)
const;
605 virtual void reset();