1 #ifndef OsiDylpSolverInterface_H
2 #define OsiDylpSolverInterface_H
24 #include <CoinPackedMatrix.hpp>
26 #include <CoinWarmStart.hpp>
27 #include <CoinMessageHandler.hpp>
28 #include <CoinMpsIO.hpp>
29 #include <CoinPresolveMatrix.hpp>
103 const std::string &netLibDir) ;
149 int readMps(
const char *filename,
const char *extension =
"mps") ;
155 int readMps(
const char *filename,
const char *extension,
156 int &numberSets, CoinSet **&sets) ;
166 const char *extension =
"mps",
167 double objsense = 0.0)
const ;
173 const double *collb,
const double *colub,
const double *obj,
174 const char *rowsen,
const double *rowrhs,
175 const double *rowrng) ;
181 const double *collb,
const double *colub,
const double *obj,
182 const double *rowlb,
const double *rowub) ;
187 void loadProblem(
const int colcnt,
const int rowcnt,
188 const int *start,
const int *index,
const double *value,
189 const double *collb,
const double *colub,
const double *obj,
190 const char *sense,
const double *rhsin,
const double *range) ;
195 void loadProblem(
const int colcnt,
const int rowcnt,
196 const int *start,
const int *index,
const double *value,
197 const double *collb,
const double *colub,
const double *obj,
198 const double *row_lower,
const double *row_upper) ;
204 double *&collb,
double *&colub,
double *&obj,
205 char *&rowsen,
double *&rowrhs,
double *&rowrng) ;
211 double *&collb,
double *&colub,
double *&obj,
212 double *&rowlb,
double *&rowub) ;
320 void setInteger(
const int *indices,
int len) ;
342 void setRowType(
int index,
char rowsen,
double rowrhs,
double rowrng) ;
370 void addCol(
const CoinPackedVectorBase &vec,
371 const double collb,
const double colub,
const double obj) ;
375 void deleteCols(
const int num,
const int *colIndices) ;
383 void addRow(
const CoinPackedVectorBase &row,
384 const double rowlb,
const double rowub) ;
388 void addRow(
const CoinPackedVectorBase &row,
389 const char rowsen,
const double rowrhs,
const double rowrng) ;
393 void deleteRows(
const int num,
const int *rowIndices) ;
619 # if ODSI_PARANOIA >= 1
629 void indexCheck (
int k,
bool isCol, std::string rtnnme) ;
640 const bool mustexist =
true) ;
644 void dylp_logfile(
const char* name,
bool echo =
false) ;
977 double *rhs,
double *rhslow, contyp_enum *ctyp,
978 const double *rowlb,
const double *rowub) ;
980 double *rhs,
double *rhslow, contyp_enum *ctyp,
981 const char *sense,
const double *rhsin,
const double *range) ;
984 const double* col_lower,
const double* col_upper,
const double* obj,
985 const contyp_enum *ctyp,
const double* rhs,
const double* rhslow) ;
987 const int *start,
const int *lens,
988 const int *index,
const double *value,
989 const double* col_lower,
const double* col_upper,
const double* obj,
990 const contyp_enum *ctyp,
const double* rhs,
const double* rhslow) ;
1016 void add_col(
const CoinPackedVectorBase& coin_coli,
1017 vartyp_enum vtypi,
double vlbi,
1018 double vubi,
double obji,
const std::string *nme) ;
1019 void add_row(
const CoinPackedVectorBase& coin_rowi,
1020 char clazzi, contyp_enum ctypi,
1021 double rhsi,
double rhslowi,
const std::string *nme) ;
1024 void gen_rowiparms(contyp_enum* ctypi,
double* rhsi,
double* rhslowi,
1025 char sensei,
double rhsini,
double rangei) ;
1026 void gen_rowiparms(contyp_enum* ctypi,
double* rhsi,
double* rhslowi,
1027 double rowlbi,
double rowubi) ;
1028 void unimp_hint(
bool dylpSense,
bool hintSense,
1047 template<
class T>
static void copy(
const T* src, T* dst,
int n) ;
1048 template<
class T>
static T*
copy(
const T* src,
int n) ;
1049 template<
class T>
static T*
copy(
const T* src) ;
1053 static basis_struct*
copy_basis(
const basis_struct* src,
int dstsze) ;
1054 static void copy_basis(
const basis_struct* src, basis_struct* dst) ;
1055 static lpprob_struct*
copy_lpprob(
const lpprob_struct* src) ;
1064 template<
class T>
static void assert_same(
const T& t1,
const T& t2,
1066 template<
class T>
static void assert_same(
const T* t1,
const T* t2,
1067 int n,
bool exact) ;
1069 static void assert_same(
double d1,
double d2,
bool exact) ;
1072 const basis_struct& b2,
bool exact) ;
1073 static void assert_same(
const consys_struct& c1,
const
1074 consys_struct& c2,
bool exact) ;
1075 static void assert_same(
const conbnd_struct& c1,
const
1076 conbnd_struct& c2,
bool exact) ;
1078 const lpprob_struct& l2,
bool exact) ;
1086 template<
class T>
static T*
idx_vec(T* data) ;
1087 static int idx(
int i) ;
1088 template<
class T>
static T*
inv_vec(T* data) ;
1089 static int inv(
int i) ;
1092 const CoinShallowPackedVector vector,
int dimension) ;
1094 const CoinShallowPackedVector vector,
int dimension, pkvec_struct *dst) ;
1100 const char *ext1,
const char *ext2) ;
1117 int OsiDylpSolverInterfaceUnitTest(
const std::string & mpsDir,
1118 const std::string &netLibDir) ;
1120 #endif // OsiDylpSolverInterface_H