22 class CoinIndexedVector;
25 class CoinStructuredModel;
26 class OsiClpSolverInterface;
27 class CoinWarmStartBasis;
97 bool dropNames =
true,
bool dropIntegers =
true,
98 bool fixOthers =
false);
108 bool dropNames =
true,
bool dropIntegers =
true,
109 bool fixOthers =
false);
153 const double* collb,
const double* colub,
155 const double* rowlb,
const double* rowub,
158 const double* collb,
const double* colub,
160 const double* rowlb,
const double* rowub,
165 void loadProblem (
const int numcols,
const int numrows,
166 const CoinBigIndex* start,
const int* index,
168 const double* collb,
const double* colub,
170 const double* rowlb,
const double* rowub,
173 void loadProblem (
const int numcols,
const int numrows,
174 const CoinBigIndex* start,
const int* index,
175 const double* value,
const int * length,
176 const double* collb,
const double* colub,
178 const double* rowlb,
const double* rowub,
184 int loadProblem ( CoinModel & modelObject,
bool keepSolution =
false);
186 int readMps(
const char *filename,
187 bool keepNames =
false,
188 bool ignoreErrors =
false);
190 int readGMPL(
const char *filename,
const char * dataName,
191 bool keepNames =
false);
194 int readLp(
const char *filename,
const double epsilon = 1e-5);
243 int dual(
int ifValuesPass = 0,
int startFinishOptions = 0);
245 int dualDebug(
int ifValuesPass = 0,
int startFinishOptions = 0);
256 int primal(
int ifValuesPass = 0,
int startFinishOptions = 0);
262 int nonlinearSLP(
int numberPasses,
double deltaTolerance);
269 int numberPasses,
double deltaTolerance);
272 int barrier(
bool crossover =
true);
277 int solve(CoinStructuredModel * model);
284 int loadProblem ( CoinStructuredModel & modelObject,
285 bool originalOrder =
true,
bool keepSolution =
false);
300 int cleanup(
int cleanupScaling);
321 int dualRanging(
int numberCheck,
const int * which,
322 double * costIncrease,
int * sequenceIncrease,
323 double * costDecrease,
int * sequenceDecrease,
324 double * valueIncrease = NULL,
double * valueDecrease = NULL);
340 double * valueIncrease,
int * sequenceIncrease,
341 double * valueDecrease,
int * sequenceDecrease);
357 bool writeValues =
false,
358 int formatType = 0)
const;
363 CoinWarmStartBasis *
getBasis()
const;
410 double * newLower,
double * newUpper,
411 double ** outputSolution,
412 int * outputStatus,
int * outputIterations,
413 bool stopOnFirstInfeasible =
true,
414 bool alwaysFinish =
false,
415 int startFinishOptions = 0);
476 int startup(
int ifValuesPass,
int startFinishOptions = 0);
477 void finish(
int startFinishOptions = 0);
614 inline CoinIndexedVector *
rowArray(
int index)
const {
630 const double * columnActivities);
642 const double *
lower,
const double * gradient);
678 const double * columnActivities);
680 void add(
double * array,
681 int column,
double multiplier)
const;
717 const double * columnActivies = NULL);
729 int solveDW(CoinStructuredModel * model);
744 double allowedInfeasibility);
857 const double * givenPrimals,
858 bool valuesPass =
false);
874 bool createRim(
int what,
bool makeRowCopy =
false,
int startFinishOptions = 0);
885 void deleteRim(
int getRidOfFactorizationData = 2);
934 unsigned char & st_byte =
status_[sequence];
935 st_byte =
static_cast<unsigned char>(st_byte & ~7);
936 st_byte =
static_cast<unsigned char>(st_byte | newstatus);
1011 return dj_[sequence];
1014 return dj_[sequence];
1031 return cost_[sequence];
1035 return cost_[sequence];
1096 unsigned char & st_byte =
status_[sequence];
1097 st_byte =
static_cast<unsigned char>(st_byte & ~24);
1098 st_byte =
static_cast<unsigned char>(st_byte | (fakeBound << 3));
1105 st_byte =
static_cast<unsigned char>(st_byte & ~7);
1106 st_byte =
static_cast<unsigned char>(st_byte | newstatus);
1112 unsigned char & st_byte =
status_[sequence];
1113 st_byte =
static_cast<unsigned char>(st_byte & ~7);
1114 st_byte =
static_cast<unsigned char>(st_byte | newstatus);
1120 status_[sequence] =
static_cast<unsigned char>(
status_[sequence] | 32);
1123 status_[sequence] =
static_cast<unsigned char>(
status_[sequence] & ~32);
1126 return (((
status_[sequence] >> 5) & 1) != 0);
1131 status_[sequence] =
static_cast<unsigned char>(
status_[sequence] & ~64);
1134 return ((
status_[sequence] & 64) != 0);
1141 status_[iRow] =
static_cast<unsigned char>(
status_[iRow] & ~128);
1144 return ((
status_[iRow] & 128) != 0);
1189 void generateCpp( FILE * fp,
bool defaultFactor =
false);
1203 void getBInvARow(
int row,
double* z,
double * slack = NULL);
1252 const int* indexLast,
1253 const double* boundList);
1268 double newlower,
double newupper ) {
1279 const int* indexLast,
1280 const double* boundList) {
1286 void setRowLower(
int elementIndex,
double elementValue );
1290 void setRowUpper(
int elementIndex,
double elementValue ) ;
1303 const int* indexLast,
1304 const double* boundList);
1306 void resize (
int newNumberRows,
int newNumberColumns);
1537 #define DEVEX_TRY_NORM 1.0e-4
1538 #define DEVEX_ADD_ONE 1.0