/home/coin/SVN-release/CoinAll-1.1.0/Cbc/src/Cbc_C_Interface.h

Go to the documentation of this file.
00001 /* Copyright (C) 2004 International Business Machines
00002    Corporation and others.  All Rights Reserved.*/
00003 #ifndef CbcModelC_H
00004 #define CbcModelC_H
00005 
00006 /* include all defines and ugly stuff */
00007 #include "Coin_C_defines.h"
00008 
00014 #ifdef __cplusplus
00015   extern "C"{
00016 #endif
00017   
00027 
00029   COINLIBAPI double COINLINKAGE Cbc_getVersion()
00030   ;
00032   COINLIBAPI Cbc_Model * COINLINKAGE 
00033   Cbc_newModel()
00034   ;
00036   COINLIBAPI void COINLINKAGE 
00037   Cbc_deleteModel(Cbc_Model * model)
00038   ;
00043   /* Loads a problem (the constraints on the
00044       rows are given by lower and upper bounds). If a pointer is NULL then the
00045       following values are the default:
00046       <ul>
00047       <li> <code>colub</code>: all columns have upper bound infinity
00048       <li> <code>collb</code>: all columns have lower bound 0 
00049       <li> <code>rowub</code>: all rows have upper bound infinity
00050       <li> <code>rowlb</code>: all rows have lower bound -infinity
00051       <li> <code>obj</code>: all variables have 0 objective coefficient
00052       </ul>
00053 
00054    Just like the other loadProblem() method except that the matrix is
00055    given in a standard column major ordered format (without gaps). 
00056 */
00057   COINLIBAPI void COINLINKAGE 
00058   Cbc_loadProblem (Cbc_Model * model,  const int numcols, const int numrows,
00059           const CoinBigIndex * start, const int* index,
00060           const double* value,
00061           const double* collb, const double* colub,   
00062           const double* obj,
00063           const double* rowlb, const double* rowub)
00064   ;
00066   COINLIBAPI int COINLINKAGE 
00067   Cbc_readMps(Cbc_Model * model,const char *filename)
00068   ;
00070   COINLIBAPI void COINLINKAGE 
00071   Cbc_writeMps(Cbc_Model * model,const char *filename)
00072   ;
00074   COINLIBAPI char * COINLINKAGE 
00075   Cbc_integerInformation(Cbc_Model * model)
00076   ;
00078   COINLIBAPI void COINLINKAGE 
00079   Cbc_copyInIntegerInformation(Cbc_Model * model,const char * information)
00080   ;
00082   COINLIBAPI void COINLINKAGE 
00083   Cbc_deleteIntegerInformation(Cbc_Model * model)
00084   ;
00086   COINLIBAPI void COINLINKAGE 
00087   Cbc_resize (Cbc_Model * model, int newNumberRows, int newNumberColumns)
00088   ;
00090   COINLIBAPI void COINLINKAGE 
00091   Cbc_deleteRows(Cbc_Model * model, int number, const int * which)
00092   ;
00094   COINLIBAPI void COINLINKAGE 
00095   Cbc_addRows(Cbc_Model * model, const int number, const double * rowLower, 
00096          const double * rowUpper,
00097          const int * rowStarts, const int * columns,
00098          const double * elements)
00099          ;
00100 
00102   COINLIBAPI void COINLINKAGE 
00103   Cbc_deleteColumns(Cbc_Model * model, int number, const int * which)
00104   ;
00106   COINLIBAPI void COINLINKAGE 
00107   Cbc_addColumns(Cbc_Model * model, int number, const double * columnLower, 
00108       const double * columnUpper,
00109       const double * objective,
00110       const int * columnStarts, const int * rows,
00111       const double * elements);
00113   COINLIBAPI void COINLINKAGE 
00114   Cbc_dropNames(Cbc_Model * model)
00115   ;
00117   COINLIBAPI void COINLINKAGE 
00118   Cbc_copyNames(Cbc_Model * model, const char * const * rowNamesIn,
00119      const char * const * columnNamesIn)
00120   ;
00121   
00126   COINLIBAPI int COINLINKAGE 
00127   Cbc_numberRows(Cbc_Model * model)
00128   ;
00130   COINLIBAPI int COINLINKAGE 
00131   Cbc_numberColumns(Cbc_Model * model)
00132   ;
00134   COINLIBAPI double COINLINKAGE 
00135   Cbc_primalTolerance(Cbc_Model * model)
00136   ;
00137   COINLIBAPI void COINLINKAGE 
00138   Cbc_setPrimalTolerance(Cbc_Model * model,  double value)
00139   ;
00141   COINLIBAPI double COINLINKAGE 
00142   Cbc_dualTolerance(Cbc_Model * model)
00143   ;
00144   COINLIBAPI void COINLINKAGE 
00145   Cbc_setDualTolerance(Cbc_Model * model,  double value) 
00146   ;
00147   /* Integer tolerance to use */
00148   COINLIBAPI double COINLINKAGE 
00149   Cbc_integerTolerance(Cbc_Model * model)
00150   ;
00151   COINLIBAPI void COINLINKAGE 
00152   Cbc_setIntegerTolerance(Cbc_Model * model,  double value)
00153   ;
00155   COINLIBAPI double COINLINKAGE 
00156   Cbc_dualObjectiveLimit(Cbc_Model * model)
00157   ;
00158   COINLIBAPI void COINLINKAGE 
00159   Cbc_setDualObjectiveLimit(Cbc_Model * model, double value)
00160   ;
00162   COINLIBAPI double COINLINKAGE 
00163   Cbc_objectiveOffset(Cbc_Model * model)
00164   ;
00165   COINLIBAPI void COINLINKAGE 
00166   Cbc_setObjectiveOffset(Cbc_Model * model, double value)
00167   ;
00169   COINLIBAPI void COINLINKAGE 
00170   Cbc_problemName(Cbc_Model * model, int maxNumberCharacters, char * array)
00171   ;
00173   COINLIBAPI int COINLINKAGE 
00174   Cbc_setProblemName(Cbc_Model * model, int maxNumberCharacters, char * array)
00175   ;
00177   COINLIBAPI int COINLINKAGE 
00178   Cbc_numberIterations(Cbc_Model * model)
00179   ;
00180   COINLIBAPI void COINLINKAGE 
00181   Cbc_setNumberIterations(Cbc_Model * model, int numberIterations)
00182   ;
00184   COINLIBAPI int COINLINKAGE 
00185   Cbc_maximumIterations(Cbc_Model * model)
00186   ;
00187   COINLIBAPI void COINLINKAGE 
00188   Cbc_setMaximumIterations(Cbc_Model * model, int value)
00189   ;
00191   COINLIBAPI int COINLINKAGE 
00192   Cbc_maxNumNode(Cbc_Model * model)
00193   ;
00194   COINLIBAPI void COINLINKAGE 
00195   Cbc_setMaxNumNode(Cbc_Model * model, int value)
00196   ;
00197   /* Maximum number of solutions */
00198   COINLIBAPI int COINLINKAGE
00199   Cbc_maxNumSol(Cbc_Model * model)
00200   ;
00201   COINLIBAPI void COINLINKAGE 
00202   Cbc_setMaxNumSol(Cbc_Model * model, int value)
00203   ;
00205   COINLIBAPI double COINLINKAGE 
00206   Cbc_maximumSeconds(Cbc_Model * model)
00207   ;
00208   COINLIBAPI void COINLINKAGE 
00209   Cbc_setMaximumSeconds(Cbc_Model * model, double value)
00210   ;
00212   COINLIBAPI int COINLINKAGE 
00213   Cbc_hitMaximumIterations(Cbc_Model * model)
00214   ;
00222   COINLIBAPI int COINLINKAGE 
00223   Cbc_status(Cbc_Model * model)
00224   ;
00226   COINLIBAPI void COINLINKAGE 
00227   Cbc_setProblemStatus(Cbc_Model * model, int problemStatus)
00228   ;
00236   COINLIBAPI int COINLINKAGE 
00237   Cbc_secondaryStatus(Cbc_Model * model)
00238   ;
00239   COINLIBAPI void COINLINKAGE 
00240   Cbc_setSecondaryStatus(Cbc_Model * model, int status)
00241   ;
00243   COINLIBAPI double COINLINKAGE 
00244   Cbc_optimizationDirection(Cbc_Model * model)
00245   ;
00246   COINLIBAPI void COINLINKAGE 
00247   Cbc_setOptimizationDirection(Cbc_Model * model, double value)
00248   ;
00250   COINLIBAPI double * COINLINKAGE 
00251   Cbc_primalRowSolution(Cbc_Model * model)
00252   ;
00254   COINLIBAPI double * COINLINKAGE 
00255   Cbc_primalColumnSolution(Cbc_Model * model)
00256   ;
00258   COINLIBAPI double * COINLINKAGE 
00259   Cbc_dualRowSolution(Cbc_Model * model)
00260   ;
00262   COINLIBAPI double * COINLINKAGE 
00263   Cbc_dualColumnSolution(Cbc_Model * model)
00264   ;
00266   COINLIBAPI double* COINLINKAGE 
00267   Cbc_rowLower(Cbc_Model * model)
00268   ;
00270   COINLIBAPI double* COINLINKAGE 
00271   Cbc_rowUpper(Cbc_Model * model)
00272   ;
00274   COINLIBAPI double * COINLINKAGE 
00275   Cbc_objective(Cbc_Model * model)
00276   ;            
00278   COINLIBAPI double * COINLINKAGE 
00279   Cbc_columnLower(Cbc_Model * model)
00280   ;
00282   COINLIBAPI double * COINLINKAGE 
00283   Cbc_columnUpper(Cbc_Model * model)
00284   ;
00286   COINLIBAPI int COINLINKAGE 
00287   Cbc_getNumElements(Cbc_Model * model)
00288   ;
00290   COINLIBAPI const CoinBigIndex * COINLINKAGE 
00291   Cbc_getVectorStarts(Cbc_Model * model)
00292   ; 
00294   COINLIBAPI const int * COINLINKAGE 
00295   Cbc_getIndices(Cbc_Model * model)
00296   ; 
00298   COINLIBAPI const int * COINLINKAGE 
00299   Cbc_getVectorLengths(Cbc_Model * model)
00300   ; 
00302   COINLIBAPI const double * COINLINKAGE 
00303   Cbc_getElements(Cbc_Model * model)
00304   ; 
00306   COINLIBAPI double COINLINKAGE 
00307   Cbc_objectiveValue(Cbc_Model * model)
00308   ;
00311   COINLIBAPI double * COINLINKAGE 
00312   Cbc_infeasibilityRay(Cbc_Model * model)
00313   ;
00314   COINLIBAPI double * COINLINKAGE 
00315   Cbc_unboundedRay(Cbc_Model * model)
00316   ;
00318   COINLIBAPI int COINLINKAGE 
00319   Cbc_statusExists(Cbc_Model * model)
00320   ;
00322   COINLIBAPI void  COINLINKAGE 
00323   Cbc_getBasisStatus(Cbc_Model * model, int * cstat, int * rstat)
00324   ;
00326   COINLIBAPI void COINLINKAGE 
00327   Cbc_setBasisStatus(Cbc_Model * model, int * cstat, int * rstat)
00328   ;
00329   
00331   COINLIBAPI void COINLINKAGE 
00332   Cbc_setUserPointer (Cbc_Model * model, void * pointer)
00333   ;
00334   COINLIBAPI void * COINLINKAGE 
00335   Cbc_getUserPointer (Cbc_Model * model)
00336   ;
00342   COINLIBAPI void COINLINKAGE 
00343   Cbc_registerCallBack(Cbc_Model * model, 
00344                cbc_callback userCallBack)
00345   ;
00347   COINLIBAPI void COINLINKAGE 
00348   Cbc_clearCallBack(Cbc_Model * model)
00349   ;
00358   COINLIBAPI void COINLINKAGE 
00359   Cbc_setLogLevel(Cbc_Model * model, int value)
00360   ;
00361   COINLIBAPI int COINLINKAGE 
00362   Cbc_logLevel(Cbc_Model * model)
00363   ;
00365   COINLIBAPI int COINLINKAGE 
00366   Cbc_lengthNames(Cbc_Model * model)
00367   ;
00369   COINLIBAPI void COINLINKAGE 
00370   Cbc_rowName(Cbc_Model * model, int iRow, char * name)
00371   ;
00373   COINLIBAPI void COINLINKAGE 
00374   Cbc_columnName(Cbc_Model * model, int iColumn, char * name)
00375   ;
00376 
00385   COINLIBAPI int COINLINKAGE 
00386   Cbc_initialSolve(Cbc_Model * model)
00387   ;
00388   /* General solve algorithm which can do presolve.
00389      See  CbcModel.hpp for options
00390   */
00391   COINLIBAPI int COINLINKAGE 
00392   Cbc_branchAndBound(Cbc_Model * model)
00393   ;
00395   COINLIBAPI void COINLINKAGE 
00396   Cbc_scaling(Cbc_Model * model, int mode)
00397   ;
00399   COINLIBAPI int COINLINKAGE 
00400   Cbc_scalingFlag(Cbc_Model * model)
00401   ;
00416   COINLIBAPI int COINLINKAGE 
00417   Cbc_crash(Cbc_Model * model, double gap,int pivot)
00418   ;
00425   COINLIBAPI int COINLINKAGE 
00426   Cbc_primalFeasible(Cbc_Model * model)
00427   ;
00429   COINLIBAPI int COINLINKAGE 
00430   Cbc_dualFeasible(Cbc_Model * model)
00431   ;
00433   COINLIBAPI double COINLINKAGE 
00434   Cbc_dualBound(Cbc_Model * model)
00435   ;
00436   COINLIBAPI void COINLINKAGE 
00437   Cbc_setDualBound(Cbc_Model * model, double value)
00438   ;
00440   COINLIBAPI double COINLINKAGE 
00441   Cbc_infeasibilityCost(Cbc_Model * model)
00442   ;
00443   COINLIBAPI void COINLINKAGE 
00444   Cbc_setInfeasibilityCost(Cbc_Model * model, double value)
00445   ;
00454   COINLIBAPI int COINLINKAGE 
00455   Cbc_perturbation(Cbc_Model * model)
00456   ;
00457   COINLIBAPI void COINLINKAGE 
00458   Cbc_setPerturbation(Cbc_Model * model, int value)
00459   ;
00461   COINLIBAPI int COINLINKAGE 
00462   Cbc_algorithm(Cbc_Model * model)
00463   ; 
00465   COINLIBAPI void COINLINKAGE 
00466   Cbc_setAlgorithm(Cbc_Model * model, int value)
00467   ;
00469   COINLIBAPI double COINLINKAGE 
00470   Cbc_sumDualInfeasibilities(Cbc_Model * model)
00471   ; 
00473   COINLIBAPI int COINLINKAGE 
00474   Cbc_numberDualInfeasibilities(Cbc_Model * model)
00475   ; 
00477   COINLIBAPI double COINLINKAGE 
00478   Cbc_sumPrimalInfeasibilities(Cbc_Model * model)
00479   ; 
00481   COINLIBAPI int COINLINKAGE 
00482   Cbc_numberPrimalInfeasibilities(Cbc_Model * model)
00483   ; 
00490   COINLIBAPI int COINLINKAGE 
00491   Cbc_saveModel(Cbc_Model * model, const char * fileName)
00492   ;
00495   COINLIBAPI int COINLINKAGE 
00496   Cbc_restoreModel(Cbc_Model * model, const char * fileName)
00497   ;
00498   
00501   COINLIBAPI void COINLINKAGE 
00502   Cbc_checkSolution(Cbc_Model * model)
00503   ;
00506   /******************** End of most useful part **************/
00510   COINLIBAPI int COINLINKAGE 
00511   Cbc_getNumRows(Cbc_Model * model)
00512   ;
00514   COINLIBAPI int COINLINKAGE 
00515   Cbc_getNumCols(Cbc_Model * model)
00516   ;
00518   COINLIBAPI int COINLINKAGE 
00519   Cbc_getIterationCount(Cbc_Model * model)
00520   ;
00522   COINLIBAPI int COINLINKAGE 
00523   Cbc_isAbandoned(Cbc_Model * model)
00524   ;
00526   COINLIBAPI int COINLINKAGE 
00527   Cbc_isProvenOptimal(Cbc_Model * model)
00528   ;
00530   COINLIBAPI int COINLINKAGE 
00531   Cbc_isProvenPrimalInfeasible(Cbc_Model * model)
00532   ;
00534   COINLIBAPI int COINLINKAGE 
00535   Cbc_isProvenDualInfeasible(Cbc_Model * model)
00536   ;
00538   COINLIBAPI int COINLINKAGE 
00539   Cbc_isPrimalObjectiveLimitReached(Cbc_Model * model) 
00540   ;
00542   COINLIBAPI int COINLINKAGE 
00543   Cbc_isDualObjectiveLimitReached(Cbc_Model * model) 
00544   ;
00546   COINLIBAPI int COINLINKAGE 
00547   Cbc_isIterationLimitReached(Cbc_Model * model)
00548   ;
00550   COINLIBAPI double COINLINKAGE 
00551   Cbc_getObjSense(Cbc_Model * model)
00552   ;
00554   COINLIBAPI const double * COINLINKAGE 
00555   Cbc_getRowActivity(Cbc_Model * model)
00556   ;
00558   COINLIBAPI const double * COINLINKAGE 
00559   Cbc_getColSolution(Cbc_Model * model)
00560   ;
00561   COINLIBAPI void COINLINKAGE 
00562   Cbc_setColSolution(Cbc_Model * model, const double * input)
00563   ;
00565   COINLIBAPI const double * COINLINKAGE 
00566   Cbc_getRowPrice(Cbc_Model * model)
00567   ;
00569   COINLIBAPI const double * COINLINKAGE 
00570   Cbc_getReducedCost(Cbc_Model * model)
00571   ;
00573   COINLIBAPI const double* COINLINKAGE 
00574   Cbc_getRowLower(Cbc_Model * model)
00575   ;
00577   COINLIBAPI const double* COINLINKAGE 
00578   Cbc_getRowUpper(Cbc_Model * model)
00579   ;
00581   COINLIBAPI const double * COINLINKAGE 
00582   Cbc_getObjCoefficients(Cbc_Model * model)
00583   ; 
00585   COINLIBAPI const double * COINLINKAGE 
00586   Cbc_getColLower(Cbc_Model * model)
00587   ;
00589   COINLIBAPI const double * COINLINKAGE 
00590   Cbc_getColUpper(Cbc_Model * model)
00591   ;
00593   COINLIBAPI double COINLINKAGE 
00594   Cbc_getObjValue(Cbc_Model * model)
00595   ;
00597   COINLIBAPI void COINLINKAGE 
00598   Cbc_printModel(Cbc_Model * model, const char * argPrefix)
00599   ;
00601   COINLIBAPI int COINLINKAGE 
00602   Cbc_isInteger(Cbc_Model * model, int i)
00603   ;
00605   COINLIBAPI double COINLINKAGE 
00606   Cbc_cpuTime(Cbc_Model * model)
00607   ;
00609   COINLIBAPI int COINLINKAGE 
00610   Cbc_getNodeCount(Cbc_Model * model)
00611   ;
00613   COINLIBAPI Cbc_Model * COINLINKAGE 
00614   Cbc_clone(Cbc_Model * model)
00615   ;
00617   COINLIBAPI Cbc_Model * COINLINKAGE 
00618   Cbc_setContinuous(Cbc_Model * model, int iColumn)
00619   ;
00621   COINLIBAPI void  COINLINKAGE 
00622   Cbc_addSOS_Dense(Cbc_Model * model, int numObjects, const int * len,
00623              const int ** which, const double * weights, const int type)
00624   ;
00626   COINLIBAPI void  COINLINKAGE 
00627   Cbc_addSOS_Sparse(Cbc_Model * model, const int * rowStarts,
00628              const int * rowIndices, const double * weights, const int type)
00629   ;
00631   COINLIBAPI void  COINLINKAGE 
00632   Cbc_deleteObjects(Cbc_Model * model)
00633   ;
00635   COINLIBAPI void  COINLINKAGE 
00636   Cbc_printSolution(Cbc_Model * model)
00637   ;
00639   COINLIBAPI int COINLINKAGE 
00640   Cbc_initialDualSolve(Cbc_Model * model)
00641   ;
00643   COINLIBAPI int COINLINKAGE 
00644   Cbc_initialPrimalSolve(Cbc_Model * model)
00645   ;
00647   COINLIBAPI int COINLINKAGE 
00648   Cbc_dual(Cbc_Model * model, int ifValuesPass)
00649   ;
00651   COINLIBAPI int COINLINKAGE 
00652   Cbc_primal(Cbc_Model * model, int ifValuesPass)
00653   ;
00655 #ifdef __cplusplus
00656     }
00657 #endif
00658 #endif

Generated on Sun Nov 14 14:06:30 2010 for Coin-All by  doxygen 1.4.7