4 #ifndef _OsiOslSolverInterface_hpp_
5 #define _OsiOslSolverInterface_hpp_
7 #if (defined(__MINGW32__) || defined(__CYGWIN32__)) && !defined(OSLMSDLL)
12 #include "ekk_c_api.h"
15 #include "CoinPackedMatrix.hpp"
16 #include "CoinWarmStartBasis.hpp"
98 {
return (dynamic_cast<CoinWarmStart *>(
new CoinWarmStartBasis())) ; }
103 virtual bool setWarmStart(
const CoinWarmStart* warmstart);
198 virtual bool isBinary(
int columnNumber)
const;
205 virtual bool isInteger(
int columnNumber)
const;
257 virtual std::vector<double*>
getDualRays(
int maxNumRays)
const;
269 virtual std::vector<double*>
getPrimalRays(
int maxNumRays)
const;
288 virtual void setObjCoeff(
int elementIndex,
double elementValue );
292 virtual void setColLower(
int elementIndex,
double elementValue );
296 virtual void setColUpper(
int elementIndex,
double elementValue );
304 double lower,
double upper ) {
318 const int* indexLast,
319 const double* boundList);
323 virtual void setRowLower(
int elementIndex,
double elementValue );
327 virtual void setRowUpper(
int elementIndex,
double elementValue );
333 double lower,
double upper );
336 virtual void setRowType(
int index,
char sense,
double rightHandSide,
348 const int* indexLast,
349 const double* boundList);
362 const int* indexLast,
363 const char* senseList,
364 const double* rhsList,
365 const double* rangeList);
380 virtual void setInteger(
const int* indices,
int len);
417 virtual void addCol(
const CoinPackedVectorBase& vec,
418 const double collb,
const double colub,
421 virtual void addCols(
const int numcols,
422 const CoinPackedVectorBase *
const * cols,
423 const double* collb,
const double* colub,
427 virtual void addCols(
const CoinPackedMatrix& matrix,
428 const double* collb,
const double* colub,
432 virtual void deleteCols(
const int num,
const int * colIndices);
435 virtual void addRow(
const CoinPackedVectorBase& vec,
436 const double rowlb,
const double rowub);
438 virtual void addRow(
const CoinPackedVectorBase& vec,
439 const char rowsen,
const double rowrhs,
440 const double rowrng);
442 virtual void addRows(
const int numrows,
443 const CoinPackedVectorBase *
const * rows,
444 const double* rowlb,
const double* rowub);
446 virtual void addRows(
const int numrows,
447 const CoinPackedVectorBase *
const * rows,
448 const char* rowsen,
const double* rowrhs,
449 const double* rowrng);
452 virtual void addRows(
const CoinPackedMatrix& matrix,
453 const double* rowlb,
const double* rowub);
455 virtual void addRows(
const CoinPackedMatrix& matrix,
456 const char* rowsen,
const double* rowrhs,
457 const double* rowrng);
460 virtual void deleteRows(
const int num,
const int * rowIndices);
486 double effectivenessLb = 0.0);
506 virtual void loadProblem(
const CoinPackedMatrix& matrix,
507 const double* collb,
const double* colub,
509 const double* rowlb,
const double* rowub);
519 double*& collb,
double*& colub,
double*& obj,
520 double*& rowlb,
double*& rowub);
534 virtual void loadProblem(
const CoinPackedMatrix& matrix,
535 const double* collb,
const double* colub,
537 const char* rowsen,
const double* rowrhs,
538 const double* rowrng);
548 double*& collb,
double*& colub,
double*& obj,
549 char*& rowsen,
double*& rowrhs,
554 virtual void loadProblem(
const int numcols,
const int numrows,
555 const CoinBigIndex * start,
const int* index,
557 const double* collb,
const double* colub,
559 const double* rowlb,
const double* rowub);
563 virtual void loadProblem(
const int numcols,
const int numrows,
564 const CoinBigIndex * start,
const int* index,
566 const double* collb,
const double* colub,
568 const char* rowsen,
const double* rowrhs,
569 const double* rowrng);
573 virtual int readMps(
const char *filename,
574 const char *extension =
"mps");
580 virtual void writeMps(
const char *filename,
581 const char *extension =
"mps",
582 double objSense=0.0)
const;
639 virtual void reset();