00001
00002
00003 #ifndef ClpSimplexC_H
00004 #define ClpSimplexC_H
00005
00006
00007 #include "Coin_C_defines.h"
00008
00014 #ifdef __cplusplus
00015 extern "C"{
00016 #endif
00017
00027
00029 COINLIBAPI Clp_Simplex * COINLINKAGE Clp_newModel(void);
00031 COINLIBAPI void COINLINKAGE Clp_deleteModel(Clp_Simplex * model);
00049 COINLIBAPI void COINLINKAGE Clp_loadProblem (Clp_Simplex * model, const int numcols, const int numrows,
00050 const CoinBigIndex * start, const int* index,
00051 const double* value,
00052 const double* collb, const double* colub,
00053 const double* obj,
00054 const double* rowlb, const double* rowub);
00055
00056
00057 COINLIBAPI void COINLINKAGE
00058 Clp_loadQuadraticObjective(Clp_Simplex * model,
00059 const int numberColumns,
00060 const CoinBigIndex * start,
00061 const int * column,
00062 const double * element);
00064 COINLIBAPI int COINLINKAGE Clp_readMps(Clp_Simplex * model,const char *filename,
00065 int keepNames,
00066 int ignoreErrors);
00068 COINLIBAPI void COINLINKAGE Clp_copyInIntegerInformation(Clp_Simplex * model,const char * information);
00070 COINLIBAPI void COINLINKAGE Clp_deleteIntegerInformation(Clp_Simplex * model);
00072 COINLIBAPI void COINLINKAGE Clp_resize (Clp_Simplex * model, int newNumberRows, int newNumberColumns);
00074 COINLIBAPI void COINLINKAGE Clp_deleteRows(Clp_Simplex * model, int number, const int * which);
00076 COINLIBAPI void COINLINKAGE Clp_addRows(Clp_Simplex * model, int number, const double * rowLower,
00077 const double * rowUpper,
00078 const int * rowStarts, const int * columns,
00079 const double * elements);
00080
00082 COINLIBAPI void COINLINKAGE Clp_deleteColumns(Clp_Simplex * model, int number, const int * which);
00084 COINLIBAPI void COINLINKAGE Clp_addColumns(Clp_Simplex * model, int number, const double * columnLower,
00085 const double * columnUpper,
00086 const double * objective,
00087 const int * columnStarts, const int * rows,
00088 const double * elements);
00090 COINLIBAPI void COINLINKAGE Clp_chgRowLower(Clp_Simplex * model, const double * rowLower);
00092 COINLIBAPI void COINLINKAGE Clp_chgRowUpper(Clp_Simplex * model, const double * rowUpper);
00094 COINLIBAPI void COINLINKAGE Clp_chgColumnLower(Clp_Simplex * model, const double * columnLower);
00096 COINLIBAPI void COINLINKAGE Clp_chgColumnUpper(Clp_Simplex * model, const double * columnUpper);
00098 COINLIBAPI void COINLINKAGE Clp_chgObjCoefficients(Clp_Simplex * model, const double * objIn);
00100 COINLIBAPI void COINLINKAGE Clp_dropNames(Clp_Simplex * model);
00102 COINLIBAPI void COINLINKAGE Clp_copyNames(Clp_Simplex * model, const char * const * rowNames,
00103 const char * const * columnNames);
00104
00109 COINLIBAPI int COINLINKAGE Clp_numberRows(Clp_Simplex * model);
00111 COINLIBAPI int COINLINKAGE Clp_numberColumns(Clp_Simplex * model);
00113 COINLIBAPI double COINLINKAGE Clp_primalTolerance(Clp_Simplex * model);
00114 COINLIBAPI void COINLINKAGE Clp_setPrimalTolerance(Clp_Simplex * model, double value) ;
00116 COINLIBAPI double COINLINKAGE Clp_dualTolerance(Clp_Simplex * model);
00117 COINLIBAPI void COINLINKAGE Clp_setDualTolerance(Clp_Simplex * model, double value) ;
00119 COINLIBAPI double COINLINKAGE Clp_dualObjectiveLimit(Clp_Simplex * model);
00120 COINLIBAPI void COINLINKAGE Clp_setDualObjectiveLimit(Clp_Simplex * model, double value);
00122 COINLIBAPI double COINLINKAGE Clp_objectiveOffset(Clp_Simplex * model);
00123 COINLIBAPI void COINLINKAGE Clp_setObjectiveOffset(Clp_Simplex * model, double value);
00125 COINLIBAPI void COINLINKAGE Clp_problemName(Clp_Simplex * model, int maxNumberCharacters, char * array);
00126
00127 COINLIBAPI int COINLINKAGE
00128 Clp_setProblemName(Clp_Simplex * model, int maxNumberCharacters, char * array);
00130 COINLIBAPI int COINLINKAGE Clp_numberIterations(Clp_Simplex * model);
00131 COINLIBAPI void COINLINKAGE Clp_setNumberIterations(Clp_Simplex * model, int numberIterations);
00133 COINLIBAPI int maximumIterations(Clp_Simplex * model);
00134 COINLIBAPI void COINLINKAGE Clp_setMaximumIterations(Clp_Simplex * model, int value);
00136 COINLIBAPI double COINLINKAGE Clp_maximumSeconds(Clp_Simplex * model);
00137 COINLIBAPI void COINLINKAGE Clp_setMaximumSeconds(Clp_Simplex * model, double value);
00139 COINLIBAPI int COINLINKAGE Clp_hitMaximumIterations(Clp_Simplex * model);
00147 COINLIBAPI int COINLINKAGE Clp_status(Clp_Simplex * model);
00149 COINLIBAPI void COINLINKAGE Clp_setProblemStatus(Clp_Simplex * model, int problemStatus);
00157 COINLIBAPI int COINLINKAGE Clp_secondaryStatus(Clp_Simplex * model);
00158 COINLIBAPI void COINLINKAGE Clp_setSecondaryStatus(Clp_Simplex * model, int status);
00160 COINLIBAPI double COINLINKAGE Clp_optimizationDirection(Clp_Simplex * model);
00161 COINLIBAPI void COINLINKAGE Clp_setOptimizationDirection(Clp_Simplex * model, double value);
00163 COINLIBAPI double * COINLINKAGE Clp_primalRowSolution(Clp_Simplex * model);
00165 COINLIBAPI double * COINLINKAGE Clp_primalColumnSolution(Clp_Simplex * model);
00167 COINLIBAPI double * COINLINKAGE Clp_dualRowSolution(Clp_Simplex * model);
00169 COINLIBAPI double * COINLINKAGE Clp_dualColumnSolution(Clp_Simplex * model);
00171 COINLIBAPI double* COINLINKAGE Clp_rowLower(Clp_Simplex * model);
00173 COINLIBAPI double* COINLINKAGE Clp_rowUpper(Clp_Simplex * model);
00175 COINLIBAPI double * COINLINKAGE Clp_objective(Clp_Simplex * model);
00177 COINLIBAPI double * COINLINKAGE Clp_columnLower(Clp_Simplex * model);
00179 COINLIBAPI double * COINLINKAGE Clp_columnUpper(Clp_Simplex * model);
00181 COINLIBAPI int COINLINKAGE Clp_getNumElements(Clp_Simplex * model);
00182
00183 COINLIBAPI const CoinBigIndex * COINLINKAGE Clp_getVectorStarts(Clp_Simplex * model);
00184
00185 COINLIBAPI const int * COINLINKAGE Clp_getIndices(Clp_Simplex * model);
00186
00187 COINLIBAPI const int * COINLINKAGE Clp_getVectorLengths(Clp_Simplex * model);
00188
00189 COINLIBAPI const double * COINLINKAGE Clp_getElements(Clp_Simplex * model);
00191 COINLIBAPI double COINLINKAGE Clp_objectiveValue(Clp_Simplex * model);
00193 COINLIBAPI char * COINLINKAGE Clp_integerInformation(Clp_Simplex * model);
00196 COINLIBAPI double * COINLINKAGE Clp_infeasibilityRay(Clp_Simplex * model);
00197 COINLIBAPI double * COINLINKAGE Clp_unboundedRay(Clp_Simplex * model);
00199 COINLIBAPI int COINLINKAGE Clp_statusExists(Clp_Simplex * model);
00201 COINLIBAPI unsigned char * COINLINKAGE Clp_statusArray(Clp_Simplex * model);
00203 COINLIBAPI void COINLINKAGE Clp_copyinStatus(Clp_Simplex * model, const unsigned char * statusArray);
00204
00205
00206
00207 COINLIBAPI int COINLINKAGE Clp_getColumnStatus(Clp_Simplex * model,int sequence);
00208
00209 COINLIBAPI int COINLINKAGE Clp_getRowStatus(Clp_Simplex * model,int sequence);
00210
00211 COINLIBAPI void COINLINKAGE Clp_setColumnStatus(Clp_Simplex * model,
00212 int sequence, int value);
00213
00214 COINLIBAPI void COINLINKAGE Clp_setRowStatus(Clp_Simplex * model,
00215 int sequence, int value);
00216
00218 COINLIBAPI void COINLINKAGE Clp_setUserPointer (Clp_Simplex * model, void * pointer);
00219 COINLIBAPI void * COINLINKAGE Clp_getUserPointer (Clp_Simplex * model);
00225 COINLIBAPI void COINLINKAGE Clp_registerCallBack(Clp_Simplex * model,
00226 clp_callback userCallBack);
00228 COINLIBAPI void COINLINKAGE Clp_clearCallBack(Clp_Simplex * model);
00237 COINLIBAPI void COINLINKAGE Clp_setLogLevel(Clp_Simplex * model, int value);
00238 COINLIBAPI int COINLINKAGE Clp_logLevel(Clp_Simplex * model);
00240 COINLIBAPI int COINLINKAGE Clp_lengthNames(Clp_Simplex * model);
00242 COINLIBAPI void COINLINKAGE Clp_rowName(Clp_Simplex * model, int iRow, char * name);
00244 COINLIBAPI void COINLINKAGE Clp_columnName(Clp_Simplex * model, int iColumn, char * name);
00245
00254 COINLIBAPI int COINLINKAGE Clp_initialSolve(Clp_Simplex * model);
00256 COINLIBAPI int COINLINKAGE Clp_initialDualSolve(Clp_Simplex * model);
00258 COINLIBAPI int COINLINKAGE Clp_initialPrimalSolve(Clp_Simplex * model);
00260 COINLIBAPI int COINLINKAGE Clp_initialBarrierSolve(Clp_Simplex * model);
00262 COINLIBAPI int COINLINKAGE Clp_initialBarrierNoCrossSolve(Clp_Simplex * model);
00264 COINLIBAPI int COINLINKAGE Clp_dual(Clp_Simplex * model, int ifValuesPass);
00266 COINLIBAPI int COINLINKAGE Clp_primal(Clp_Simplex * model, int ifValuesPass);
00268 COINLIBAPI void COINLINKAGE Clp_scaling(Clp_Simplex * model, int mode);
00270 COINLIBAPI int COINLINKAGE Clp_scalingFlag(Clp_Simplex * model);
00285 COINLIBAPI int COINLINKAGE Clp_crash(Clp_Simplex * model, double gap,int pivot);
00292 COINLIBAPI int COINLINKAGE Clp_primalFeasible(Clp_Simplex * model);
00294 COINLIBAPI int COINLINKAGE Clp_dualFeasible(Clp_Simplex * model);
00296 COINLIBAPI double COINLINKAGE Clp_dualBound(Clp_Simplex * model);
00297 COINLIBAPI void COINLINKAGE Clp_setDualBound(Clp_Simplex * model, double value);
00299 COINLIBAPI double COINLINKAGE Clp_infeasibilityCost(Clp_Simplex * model);
00300 COINLIBAPI void COINLINKAGE Clp_setInfeasibilityCost(Clp_Simplex * model, double value);
00309 COINLIBAPI int COINLINKAGE Clp_perturbation(Clp_Simplex * model);
00310 COINLIBAPI void COINLINKAGE Clp_setPerturbation(Clp_Simplex * model, int value);
00312 COINLIBAPI int COINLINKAGE Clp_algorithm(Clp_Simplex * model);
00314 COINLIBAPI void COINLINKAGE Clp_setAlgorithm(Clp_Simplex * model, int value);
00316 COINLIBAPI double COINLINKAGE Clp_sumDualInfeasibilities(Clp_Simplex * model);
00318 COINLIBAPI int COINLINKAGE Clp_numberDualInfeasibilities(Clp_Simplex * model);
00320 COINLIBAPI double COINLINKAGE Clp_sumPrimalInfeasibilities(Clp_Simplex * model);
00322 COINLIBAPI int COINLINKAGE Clp_numberPrimalInfeasibilities(Clp_Simplex * model);
00329 COINLIBAPI int COINLINKAGE Clp_saveModel(Clp_Simplex * model, const char * fileName);
00332 COINLIBAPI int COINLINKAGE Clp_restoreModel(Clp_Simplex * model, const char * fileName);
00333
00336 COINLIBAPI void COINLINKAGE Clp_checkSolution(Clp_Simplex * model);
00339
00343 COINLIBAPI int COINLINKAGE Clp_getNumRows(Clp_Simplex * model);
00345 COINLIBAPI int COINLINKAGE Clp_getNumCols(Clp_Simplex * model);
00347 COINLIBAPI int COINLINKAGE Clp_getIterationCount(Clp_Simplex * model);
00349 COINLIBAPI int COINLINKAGE Clp_isAbandoned(Clp_Simplex * model);
00351 COINLIBAPI int COINLINKAGE Clp_isProvenOptimal(Clp_Simplex * model);
00353 COINLIBAPI int COINLINKAGE Clp_isProvenPrimalInfeasible(Clp_Simplex * model);
00355 COINLIBAPI int COINLINKAGE Clp_isProvenDualInfeasible(Clp_Simplex * model);
00357 COINLIBAPI int COINLINKAGE Clp_isPrimalObjectiveLimitReached(Clp_Simplex * model) ;
00359 COINLIBAPI int COINLINKAGE Clp_isDualObjectiveLimitReached(Clp_Simplex * model) ;
00361 COINLIBAPI int COINLINKAGE Clp_isIterationLimitReached(Clp_Simplex * model);
00363 COINLIBAPI double COINLINKAGE Clp_getObjSense(Clp_Simplex * model);
00365 COINLIBAPI const double * COINLINKAGE Clp_getRowActivity(Clp_Simplex * model);
00367 COINLIBAPI const double * COINLINKAGE Clp_getColSolution(Clp_Simplex * model);
00368 COINLIBAPI void COINLINKAGE Clp_setColSolution(Clp_Simplex * model, const double * input);
00370 COINLIBAPI const double * COINLINKAGE Clp_getRowPrice(Clp_Simplex * model);
00372 COINLIBAPI const double * COINLINKAGE Clp_getReducedCost(Clp_Simplex * model);
00374 COINLIBAPI const double* COINLINKAGE Clp_getRowLower(Clp_Simplex * model);
00376 COINLIBAPI const double* COINLINKAGE Clp_getRowUpper(Clp_Simplex * model);
00378 COINLIBAPI const double * COINLINKAGE Clp_getObjCoefficients(Clp_Simplex * model);
00380 COINLIBAPI const double * COINLINKAGE Clp_getColLower(Clp_Simplex * model);
00382 COINLIBAPI const double * COINLINKAGE Clp_getColUpper(Clp_Simplex * model);
00384 COINLIBAPI double COINLINKAGE Clp_getObjValue(Clp_Simplex * model);
00386 COINLIBAPI void COINLINKAGE Clp_printModel(Clp_Simplex * model, const char * prefix);
00387
00388
00389 COINLIBAPI double COINLINKAGE Clp_getSmallElementValue(Clp_Simplex * model);
00390 COINLIBAPI void COINLINKAGE Clp_setSmallElementValue(Clp_Simplex * model,double value);
00392 #ifdef __cplusplus
00393 }
00394 #endif
00395 #endif