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_LPstatus(Cbc_Model * model);
00134 COINLIBAPI void COINLINKAGE Cbc_setProblemLPStatus(Cbc_Model * model, int problemStatus);
00142 COINLIBAPI int COINLINKAGE Cbc_secondaryLPStatus(Cbc_Model * model);
00143 COINLIBAPI void COINLINKAGE Cbc_setSecondaryLPStatus(Cbc_Model * model, int status);
00153 COINLIBAPI int COINLINKAGE Cbc_status(Cbc_Model * model);
00155 COINLIBAPI void COINLINKAGE Cbc_setProblemStatus(Cbc_Model * model, int problemStatus);
00167 COINLIBAPI int COINLINKAGE Cbc_secondaryStatus(Cbc_Model * model);
00168 COINLIBAPI void COINLINKAGE Cbc_setSecondaryStatus(Cbc_Model * model, int status);
00170 COINLIBAPI double COINLINKAGE Cbc_optimizationDirection(Cbc_Model * model);
00171 COINLIBAPI void COINLINKAGE Cbc_setOptimizationDirection(Cbc_Model * model, double value);
00173 COINLIBAPI double * COINLINKAGE Cbc_primalRowSolution(Cbc_Model * model);
00175 COINLIBAPI double * COINLINKAGE Cbc_primalColumnSolution(Cbc_Model * model);
00177 COINLIBAPI double * COINLINKAGE Cbc_dualRowSolution(Cbc_Model * model);
00179 COINLIBAPI double * COINLINKAGE Cbc_dualColumnSolution(Cbc_Model * model);
00181 COINLIBAPI double* COINLINKAGE Cbc_rowLower(Cbc_Model * model);
00183 COINLIBAPI double* COINLINKAGE Cbc_rowUpper(Cbc_Model * model);
00185 COINLIBAPI double * COINLINKAGE Cbc_objective(Cbc_Model * model);
00187 COINLIBAPI double * COINLINKAGE Cbc_columnLower(Cbc_Model * model);
00189 COINLIBAPI double * COINLINKAGE Cbc_columnUpper(Cbc_Model * model);
00191 COINLIBAPI int COINLINKAGE Cbc_getNumElements(Cbc_Model * model);
00193 COINLIBAPI const CoinBigIndex * COINLINKAGE Cbc_getVectorStarts(Cbc_Model * model);
00195 COINLIBAPI const int * COINLINKAGE Cbc_getIndices(Cbc_Model * model);
00197 COINLIBAPI const int * COINLINKAGE Cbc_getVectorLengths(Cbc_Model * model);
00199 COINLIBAPI const double * COINLINKAGE Cbc_getElements(Cbc_Model * model);
00201 COINLIBAPI double COINLINKAGE Cbc_objectiveValue(Cbc_Model * model);
00203 COINLIBAPI char * COINLINKAGE Cbc_integerInformation(Cbc_Model * model);
00206 COINLIBAPI double * COINLINKAGE Cbc_infeasibilityRay(Cbc_Model * model);
00207 COINLIBAPI double * COINLINKAGE Cbc_unboundedRay(Cbc_Model * model);
00209 COINLIBAPI int COINLINKAGE Cbc_statusExists(Cbc_Model * model);
00211 COINLIBAPI void COINLINKAGE Cbc_getBasisStatus(Cbc_Model * model, int * cstat, int * rstat);
00213 COINLIBAPI void COINLINKAGE setBasisStatus(Cbc_Model * model, int * cstat, int * rstat);
00214
00216 COINLIBAPI void COINLINKAGE Cbc_setUserPointer (Cbc_Model * model, void * pointer);
00217 COINLIBAPI void * COINLINKAGE Cbc_getUserPointer (Cbc_Model * model);
00223 COINLIBAPI void COINLINKAGE Cbc_registerCallBack(Cbc_Model * model,
00224 cbc_callback userCallBack);
00226 COINLIBAPI void COINLINKAGE Cbc_clearCallBack(Cbc_Model * model);
00235 COINLIBAPI void COINLINKAGE Cbc_setLogLevel(Cbc_Model * model, int value);
00236 COINLIBAPI int COINLINKAGE Cbc_logLevel(Cbc_Model * model);
00238 COINLIBAPI int COINLINKAGE Cbc_lengthNames(Cbc_Model * model);
00240 COINLIBAPI void COINLINKAGE Cbc_rowName(Cbc_Model * model, int iRow, char * name);
00242 COINLIBAPI void COINLINKAGE Cbc_columnName(Cbc_Model * model, int iColumn, char * name);
00243
00252 COINLIBAPI int COINLINKAGE Cbc_initialSolve(Cbc_Model * model);
00253
00254
00255
00256 COINLIBAPI int COINLINKAGE Cbc_branchAndBound(Cbc_Model * model);
00258 COINLIBAPI int COINLINKAGE Cbc_initialDualSolve(Cbc_Model * model);
00260 COINLIBAPI int COINLINKAGE Cbc_initialPrimalSolve(Cbc_Model * model);
00262 COINLIBAPI int COINLINKAGE Cbc_dual(Cbc_Model * model, int ifValuesPass);
00264 COINLIBAPI int COINLINKAGE Cbc_primal(Cbc_Model * model, int ifValuesPass);
00266 COINLIBAPI void COINLINKAGE Cbc_scaling(Cbc_Model * model, int mode);
00268 COINLIBAPI int COINLINKAGE Cbc_scalingFlag(Cbc_Model * model);
00283 COINLIBAPI int COINLINKAGE Cbc_crash(Cbc_Model * model, double gap,int pivot);
00290 COINLIBAPI int COINLINKAGE Cbc_primalFeasible(Cbc_Model * model);
00292 COINLIBAPI int COINLINKAGE Cbc_dualFeasible(Cbc_Model * model);
00294 COINLIBAPI double COINLINKAGE Cbc_dualBound(Cbc_Model * model);
00295 COINLIBAPI void COINLINKAGE Cbc_setDualBound(Cbc_Model * model, double value);
00297 COINLIBAPI double COINLINKAGE Cbc_infeasibilityCost(Cbc_Model * model);
00298 COINLIBAPI void COINLINKAGE Cbc_setInfeasibilityCost(Cbc_Model * model, double value);
00307 COINLIBAPI int COINLINKAGE Cbc_perturbation(Cbc_Model * model);
00308 COINLIBAPI void COINLINKAGE Cbc_setPerturbation(Cbc_Model * model, int value);
00310 COINLIBAPI int COINLINKAGE Cbc_algorithm(Cbc_Model * model);
00312 COINLIBAPI void COINLINKAGE Cbc_setAlgorithm(Cbc_Model * model, int value);
00314 COINLIBAPI double COINLINKAGE Cbc_sumDualInfeasibilities(Cbc_Model * model);
00316 COINLIBAPI int COINLINKAGE Cbc_numberDualInfeasibilities(Cbc_Model * model);
00318 COINLIBAPI double COINLINKAGE Cbc_sumPrimalInfeasibilities(Cbc_Model * model);
00320 COINLIBAPI int COINLINKAGE Cbc_numberPrimalInfeasibilities(Cbc_Model * model);
00327 COINLIBAPI int COINLINKAGE Cbc_saveModel(Cbc_Model * model, const char * fileName);
00330 COINLIBAPI int COINLINKAGE Cbc_restoreModel(Cbc_Model * model, const char * fileName);
00331
00334 COINLIBAPI void COINLINKAGE Cbc_checkSolution(Cbc_Model * model);
00337
00341 COINLIBAPI int COINLINKAGE Cbc_getNumRows(Cbc_Model * model);
00343 COINLIBAPI int COINLINKAGE Cbc_getNumCols(Cbc_Model * model);
00345 COINLIBAPI int COINLINKAGE Cbc_getIterationCount(Cbc_Model * model);
00347 COINLIBAPI int COINLINKAGE Cbc_isAbandoned(Cbc_Model * model);
00349 COINLIBAPI int COINLINKAGE Cbc_isProvenOptimal(Cbc_Model * model);
00351 COINLIBAPI int COINLINKAGE Cbc_isProvenPrimalInfeasible(Cbc_Model * model);
00353 COINLIBAPI int COINLINKAGE Cbc_isProvenDualInfeasible(Cbc_Model * model);
00355 COINLIBAPI int COINLINKAGE Cbc_isPrimalObjectiveLimitReached(Cbc_Model * model) ;
00357 COINLIBAPI int COINLINKAGE Cbc_isDualObjectiveLimitReached(Cbc_Model * model) ;
00359 COINLIBAPI int COINLINKAGE Cbc_isIterationLimitReached(Cbc_Model * model);
00361 COINLIBAPI double COINLINKAGE Cbc_getObjSense(Cbc_Model * model);
00363 COINLIBAPI const double * COINLINKAGE Cbc_getRowActivity(Cbc_Model * model);
00365 COINLIBAPI const double * COINLINKAGE Cbc_getColSolution(Cbc_Model * model);
00366 COINLIBAPI void COINLINKAGE Cbc_setColSolution(Cbc_Model * model, const double * input);
00368 COINLIBAPI const double * COINLINKAGE Cbc_getRowPrice(Cbc_Model * model);
00370 COINLIBAPI const double * COINLINKAGE Cbc_getReducedCost(Cbc_Model * model);
00372 COINLIBAPI const double* COINLINKAGE Cbc_getRowLower(Cbc_Model * model);
00374 COINLIBAPI const double* COINLINKAGE Cbc_getRowUpper(Cbc_Model * model);
00376 COINLIBAPI const double * COINLINKAGE Cbc_getObjCoefficients(Cbc_Model * model);
00378 COINLIBAPI const double * COINLINKAGE Cbc_getColLower(Cbc_Model * model);
00380 COINLIBAPI const double * COINLINKAGE Cbc_getColUpper(Cbc_Model * model);
00382 COINLIBAPI double COINLINKAGE Cbc_getObjValue(Cbc_Model * model);
00384 COINLIBAPI void COINLINKAGE Cbc_printModel(Cbc_Model * model, const char * prefix);
00386 COINLIBAPI int COINLINKAGE Cbc_isInteger(Cbc_Model * model, int i);
00388 COINLIBAPI double COINLINKAGE Cbc_cpuTime(Cbc_Model * model);
00390 COINLIBAPI int COINLINKAGE Cbc_getNodeCount(Cbc_Model * model);
00392 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_clone(Cbc_Model * model);
00394 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_setContinuous(Cbc_Model * model, int iColumn);
00395
00396 COINLIBAPI void COINLINKAGE Cbc_addSOS(Cbc_Model * model, int numberMembers,
00397 const int * which, const double * weights, int identifier, int type);
00398
00399 COINLIBAPI void COINLINKAGE Cbc_deleteObjects(Cbc_Model * model);
00400
00401 COINLIBAPI void COINLINKAGE Cbc_printSolution(Cbc_Model * model);
00403 #ifdef __cplusplus
00404 }
00405 #endif
00406 #endif