00001
00002
00003 #ifndef CbcModelC_H
00004 #define CbcModelC_H
00005
00006
00007 #include "Coin_C_defines.h"
00008
00014 #ifdef __cplusplus
00015 extern "C"{
00016 #endif
00017
00027
00029 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_newModel(void);
00031 COINLIBAPI void COINLINKAGE Cbc_deleteModel(Cbc_Model * model);
00049 COINLIBAPI void COINLINKAGE Cbc_loadProblem (Cbc_Model * 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);
00056 COINLIBAPI int COINLINKAGE Cbc_readMps(Cbc_Model * model,const char *filename);
00058 COINLIBAPI void COINLINKAGE Cbc_writeMps(Cbc_Model * model,const char *filename);
00060 COINLIBAPI void COINLINKAGE Cbc_copyInIntegerInformation(Cbc_Model * model,const char * information);
00062 COINLIBAPI void COINLINKAGE Cbc_deleteIntegerInformation(Cbc_Model * model);
00064 COINLIBAPI void COINLINKAGE Cbc_resize (Cbc_Model * model, int newNumberRows, int newNumberColumns);
00066 COINLIBAPI void COINLINKAGE Cbc_deleteRows(Cbc_Model * model, int number, const int * which);
00068 COINLIBAPI void COINLINKAGE Cbc_addRows(Cbc_Model * model, int number, const double * rowLower,
00069 const double * rowUpper,
00070 const int * rowStarts, const int * columns,
00071 const double * elements);
00072
00074 COINLIBAPI void COINLINKAGE Cbc_deleteColumns(Cbc_Model * model, int number, const int * which);
00076 COINLIBAPI void COINLINKAGE Cbc_addColumns(Cbc_Model * model, int number, const double * columnLower,
00077 const double * columnUpper,
00078 const double * objective,
00079 const int * columnStarts, const int * rows,
00080 const double * elements);
00082 COINLIBAPI void COINLINKAGE Cbc_dropNames(Cbc_Model * model);
00084 COINLIBAPI void COINLINKAGE Cbc_copyNames(Cbc_Model * model, const char * const * rowNames,
00085 const char * const * columnNames);
00086
00091 COINLIBAPI int COINLINKAGE Cbc_numberRows(Cbc_Model * model);
00093 COINLIBAPI int COINLINKAGE Cbc_numberColumns(Cbc_Model * model);
00095 COINLIBAPI double COINLINKAGE Cbc_primalTolerance(Cbc_Model * model);
00096 COINLIBAPI void COINLINKAGE Cbc_setPrimalTolerance(Cbc_Model * model, double value) ;
00098 COINLIBAPI double COINLINKAGE Cbc_dualTolerance(Cbc_Model * model);
00099 COINLIBAPI void COINLINKAGE Cbc_setDualTolerance(Cbc_Model * model, double value) ;
00100
00101 COINLIBAPI double COINLINKAGE Cbc_integerTolerance(Cbc_Model * model);
00102 COINLIBAPI void COINLINKAGE Cbc_setIntegerTolerance(Cbc_Model * model, double value);
00104 COINLIBAPI double COINLINKAGE Cbc_dualObjectiveLimit(Cbc_Model * model);
00105 COINLIBAPI void COINLINKAGE Cbc_setDualObjectiveLimit(Cbc_Model * model, double value);
00107 COINLIBAPI double COINLINKAGE Cbc_objectiveOffset(Cbc_Model * model);
00108 COINLIBAPI void COINLINKAGE Cbc_setObjectiveOffset(Cbc_Model * model, double value);
00110 COINLIBAPI void COINLINKAGE Cbc_problemName(Cbc_Model * model, int maxNumberCharacters, char * array);
00112 COINLIBAPI int COINLINKAGE
00113 Cbc_setProblemName(Cbc_Model * model, int maxNumberCharacters, char * array);
00115 COINLIBAPI int COINLINKAGE Cbc_numberIterations(Cbc_Model * model);
00116 COINLIBAPI void COINLINKAGE Cbc_setNumberIterations(Cbc_Model * model, int numberIterations);
00118 COINLIBAPI int Cbc_maximumIterations(Cbc_Model * model);
00119 COINLIBAPI void COINLINKAGE Cbc_setMaximumIterations(Cbc_Model * model, int value);
00121 COINLIBAPI double COINLINKAGE Cbc_maximumSeconds(Cbc_Model * model);
00122 COINLIBAPI void COINLINKAGE Cbc_setMaximumSeconds(Cbc_Model * model, double value);
00124 COINLIBAPI int COINLINKAGE Cbc_hitMaximumIterations(Cbc_Model * model);
00132 COINLIBAPI int COINLINKAGE Cbc_status(Cbc_Model * model);
00134 COINLIBAPI void COINLINKAGE Cbc_setProblemStatus(Cbc_Model * model, int problemStatus);
00142 COINLIBAPI int COINLINKAGE Cbc_secondaryStatus(Cbc_Model * model);
00143 COINLIBAPI void COINLINKAGE Cbc_setSecondaryStatus(Cbc_Model * model, int status);
00145 COINLIBAPI double COINLINKAGE Cbc_optimizationDirection(Cbc_Model * model);
00146 COINLIBAPI void COINLINKAGE Cbc_setOptimizationDirection(Cbc_Model * model, double value);
00148 COINLIBAPI double * COINLINKAGE Cbc_primalRowSolution(Cbc_Model * model);
00150 COINLIBAPI double * COINLINKAGE Cbc_primalColumnSolution(Cbc_Model * model);
00152 COINLIBAPI double * COINLINKAGE Cbc_dualRowSolution(Cbc_Model * model);
00154 COINLIBAPI double * COINLINKAGE Cbc_dualColumnSolution(Cbc_Model * model);
00156 COINLIBAPI double* COINLINKAGE Cbc_rowLower(Cbc_Model * model);
00158 COINLIBAPI double* COINLINKAGE Cbc_rowUpper(Cbc_Model * model);
00160 COINLIBAPI double * COINLINKAGE Cbc_objective(Cbc_Model * model);
00162 COINLIBAPI double * COINLINKAGE Cbc_columnLower(Cbc_Model * model);
00164 COINLIBAPI double * COINLINKAGE Cbc_columnUpper(Cbc_Model * model);
00166 COINLIBAPI int COINLINKAGE Cbc_getNumElements(Cbc_Model * model);
00168 COINLIBAPI const CoinBigIndex * COINLINKAGE Cbc_getVectorStarts(Cbc_Model * model);
00170 COINLIBAPI const int * COINLINKAGE Cbc_getIndices(Cbc_Model * model);
00172 COINLIBAPI const int * COINLINKAGE Cbc_getVectorLengths(Cbc_Model * model);
00174 COINLIBAPI const double * COINLINKAGE Cbc_getElements(Cbc_Model * model);
00176 COINLIBAPI double COINLINKAGE Cbc_objectiveValue(Cbc_Model * model);
00178 COINLIBAPI char * COINLINKAGE Cbc_integerInformation(Cbc_Model * model);
00181 COINLIBAPI double * COINLINKAGE Cbc_infeasibilityRay(Cbc_Model * model);
00182 COINLIBAPI double * COINLINKAGE Cbc_unboundedRay(Cbc_Model * model);
00184 COINLIBAPI int COINLINKAGE Cbc_statusExists(Cbc_Model * model);
00186 COINLIBAPI void COINLINKAGE Cbc_getBasisStatus(Cbc_Model * model, int * cstat, int * rstat);
00188 COINLIBAPI void COINLINKAGE setBasisStatus(Cbc_Model * model, int * cstat, int * rstat);
00189
00191 COINLIBAPI void COINLINKAGE Cbc_setUserPointer (Cbc_Model * model, void * pointer);
00192 COINLIBAPI void * COINLINKAGE Cbc_getUserPointer (Cbc_Model * model);
00198 COINLIBAPI void COINLINKAGE Cbc_registerCallBack(Cbc_Model * model,
00199 cbc_callback userCallBack);
00201 COINLIBAPI void COINLINKAGE Cbc_clearCallBack(Cbc_Model * model);
00210 COINLIBAPI void COINLINKAGE Cbc_setLogLevel(Cbc_Model * model, int value);
00211 COINLIBAPI int COINLINKAGE Cbc_logLevel(Cbc_Model * model);
00213 COINLIBAPI int COINLINKAGE Cbc_lengthNames(Cbc_Model * model);
00215 COINLIBAPI void COINLINKAGE Cbc_rowName(Cbc_Model * model, int iRow, char * name);
00217 COINLIBAPI void COINLINKAGE Cbc_columnName(Cbc_Model * model, int iColumn, char * name);
00218
00227 COINLIBAPI int COINLINKAGE Cbc_initialSolve(Cbc_Model * model);
00228
00229
00230
00231 COINLIBAPI int COINLINKAGE Cbc_branchAndBound(Cbc_Model * model);
00233 COINLIBAPI int COINLINKAGE Cbc_initialDualSolve(Cbc_Model * model);
00235 COINLIBAPI int COINLINKAGE Cbc_initialPrimalSolve(Cbc_Model * model);
00237 COINLIBAPI int COINLINKAGE Cbc_dual(Cbc_Model * model, int ifValuesPass);
00239 COINLIBAPI int COINLINKAGE Cbc_primal(Cbc_Model * model, int ifValuesPass);
00241 COINLIBAPI void COINLINKAGE Cbc_scaling(Cbc_Model * model, int mode);
00243 COINLIBAPI int COINLINKAGE Cbc_scalingFlag(Cbc_Model * model);
00258 COINLIBAPI int COINLINKAGE Cbc_crash(Cbc_Model * model, double gap,int pivot);
00265 COINLIBAPI int COINLINKAGE Cbc_primalFeasible(Cbc_Model * model);
00267 COINLIBAPI int COINLINKAGE Cbc_dualFeasible(Cbc_Model * model);
00269 COINLIBAPI double COINLINKAGE Cbc_dualBound(Cbc_Model * model);
00270 COINLIBAPI void COINLINKAGE Cbc_setDualBound(Cbc_Model * model, double value);
00272 COINLIBAPI double COINLINKAGE Cbc_infeasibilityCost(Cbc_Model * model);
00273 COINLIBAPI void COINLINKAGE Cbc_setInfeasibilityCost(Cbc_Model * model, double value);
00282 COINLIBAPI int COINLINKAGE Cbc_perturbation(Cbc_Model * model);
00283 COINLIBAPI void COINLINKAGE Cbc_setPerturbation(Cbc_Model * model, int value);
00285 COINLIBAPI int COINLINKAGE Cbc_algorithm(Cbc_Model * model);
00287 COINLIBAPI void COINLINKAGE Cbc_setAlgorithm(Cbc_Model * model, int value);
00289 COINLIBAPI double COINLINKAGE Cbc_sumDualInfeasibilities(Cbc_Model * model);
00291 COINLIBAPI int COINLINKAGE Cbc_numberDualInfeasibilities(Cbc_Model * model);
00293 COINLIBAPI double COINLINKAGE Cbc_sumPrimalInfeasibilities(Cbc_Model * model);
00295 COINLIBAPI int COINLINKAGE Cbc_numberPrimalInfeasibilities(Cbc_Model * model);
00302 COINLIBAPI int COINLINKAGE Cbc_saveModel(Cbc_Model * model, const char * fileName);
00305 COINLIBAPI int COINLINKAGE Cbc_restoreModel(Cbc_Model * model, const char * fileName);
00306
00309 COINLIBAPI void COINLINKAGE Cbc_checkSolution(Cbc_Model * model);
00312
00316 COINLIBAPI int COINLINKAGE Cbc_getNumRows(Cbc_Model * model);
00318 COINLIBAPI int COINLINKAGE Cbc_getNumCols(Cbc_Model * model);
00320 COINLIBAPI int COINLINKAGE Cbc_getIterationCount(Cbc_Model * model);
00322 COINLIBAPI int COINLINKAGE Cbc_isAbandoned(Cbc_Model * model);
00324 COINLIBAPI int COINLINKAGE Cbc_isProvenOptimal(Cbc_Model * model);
00326 COINLIBAPI int COINLINKAGE Cbc_isProvenPrimalInfeasible(Cbc_Model * model);
00328 COINLIBAPI int COINLINKAGE Cbc_isProvenDualInfeasible(Cbc_Model * model);
00330 COINLIBAPI int COINLINKAGE Cbc_isPrimalObjectiveLimitReached(Cbc_Model * model) ;
00332 COINLIBAPI int COINLINKAGE Cbc_isDualObjectiveLimitReached(Cbc_Model * model) ;
00334 COINLIBAPI int COINLINKAGE Cbc_isIterationLimitReached(Cbc_Model * model);
00336 COINLIBAPI double COINLINKAGE Cbc_getObjSense(Cbc_Model * model);
00338 COINLIBAPI const double * COINLINKAGE Cbc_getRowActivity(Cbc_Model * model);
00340 COINLIBAPI const double * COINLINKAGE Cbc_getColSolution(Cbc_Model * model);
00341 COINLIBAPI void COINLINKAGE Cbc_setColSolution(Cbc_Model * model, const double * input);
00343 COINLIBAPI const double * COINLINKAGE Cbc_getRowPrice(Cbc_Model * model);
00345 COINLIBAPI const double * COINLINKAGE Cbc_getReducedCost(Cbc_Model * model);
00347 COINLIBAPI const double* COINLINKAGE Cbc_getRowLower(Cbc_Model * model);
00349 COINLIBAPI const double* COINLINKAGE Cbc_getRowUpper(Cbc_Model * model);
00351 COINLIBAPI const double * COINLINKAGE Cbc_getObjCoefficients(Cbc_Model * model);
00353 COINLIBAPI const double * COINLINKAGE Cbc_getColLower(Cbc_Model * model);
00355 COINLIBAPI const double * COINLINKAGE Cbc_getColUpper(Cbc_Model * model);
00357 COINLIBAPI double COINLINKAGE Cbc_getObjValue(Cbc_Model * model);
00359 COINLIBAPI void COINLINKAGE Cbc_printModel(Cbc_Model * model, const char * prefix);
00361 COINLIBAPI int COINLINKAGE Cbc_isInteger(Cbc_Model * model, int i);
00363 COINLIBAPI double COINLINKAGE Cbc_cpuTime(Cbc_Model * model);
00365 COINLIBAPI int COINLINKAGE Cbc_getNodeCount(Cbc_Model * model);
00367 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_clone(Cbc_Model * model);
00369 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_setContinuous(Cbc_Model * model, int iColumn);
00370
00371 COINLIBAPI void COINLINKAGE Cbc_addSOS(Cbc_Model * model, int numberMembers,
00372 const int * which, const double * weights, int identifier, int type);
00373
00374 COINLIBAPI void COINLINKAGE Cbc_deleteObjects(Cbc_Model * model);
00375
00376 COINLIBAPI void COINLINKAGE Cbc_printSolution(Cbc_Model * model);
00378 #ifdef __cplusplus
00379 }
00380 #endif
00381 #endif