/home/coin/SVN-release/Cbc-2.4.2/Cbc/src/Cbc_C_Interface.h

Go to the documentation of this file.
00001 /* $Id: Cbc_C_Interface.h 1271 2009-11-05 15:57:25Z forrest $ */
00002 /* Copyright (C) 2004 International Business Machines
00003    Corporation and others.  All Rights Reserved.*/
00004 #ifndef CbcModelC_H
00005 #define CbcModelC_H
00006 
00007 /* include all defines and ugly stuff */
00008 #include "Coin_C_defines.h"
00009 
00015 #ifdef __cplusplus
00016   extern "C"{
00017 #endif
00018   
00028 
00030   COINLIBAPI double COINLINKAGE Cbc_getVersion()
00031   ;
00033   COINLIBAPI Cbc_Model * COINLINKAGE 
00034   Cbc_newModel()
00035   ;
00037   COINLIBAPI void COINLINKAGE 
00038   Cbc_deleteModel(Cbc_Model * model)
00039   ;
00044   /* Loads a problem (the constraints on the
00045       rows are given by lower and upper bounds). If a pointer is NULL then the
00046       following values are the default:
00047       <ul>
00048       <li> <code>colub</code>: all columns have upper bound infinity
00049       <li> <code>collb</code>: all columns have lower bound 0 
00050       <li> <code>rowub</code>: all rows have upper bound infinity
00051       <li> <code>rowlb</code>: all rows have lower bound -infinity
00052       <li> <code>obj</code>: all variables have 0 objective coefficient
00053       </ul>
00054 
00055    Just like the other loadProblem() method except that the matrix is
00056    given in a standard column major ordered format (without gaps). 
00057 */
00058   COINLIBAPI void COINLINKAGE 
00059   Cbc_loadProblem (Cbc_Model * model,  const int numcols, const int numrows,
00060           const CoinBigIndex * start, const int* index,
00061           const double* value,
00062           const double* collb, const double* colub,   
00063           const double* obj,
00064           const double* rowlb, const double* rowub)
00065   ;
00067   COINLIBAPI int COINLINKAGE 
00068   Cbc_readMps(Cbc_Model * model,const char *filename)
00069   ;
00071   COINLIBAPI void COINLINKAGE 
00072   Cbc_writeMps(Cbc_Model * model,const char *filename)
00073   ;
00075   COINLIBAPI char * COINLINKAGE 
00076   Cbc_integerInformation(Cbc_Model * model)
00077   ;
00079   COINLIBAPI void COINLINKAGE 
00080   Cbc_copyInIntegerInformation(Cbc_Model * model,const char * information)
00081   ;
00083   COINLIBAPI void COINLINKAGE 
00084   Cbc_deleteIntegerInformation(Cbc_Model * model)
00085   ;
00087   COINLIBAPI void COINLINKAGE 
00088   Cbc_resize (Cbc_Model * model, int newNumberRows, int newNumberColumns)
00089   ;
00091   COINLIBAPI void COINLINKAGE 
00092   Cbc_deleteRows(Cbc_Model * model, int number, const int * which)
00093   ;
00095   COINLIBAPI void COINLINKAGE 
00096   Cbc_addRows(Cbc_Model * model, const int number, const double * rowLower, 
00097          const double * rowUpper,
00098          const int * rowStarts, const int * columns,
00099          const double * elements)
00100          ;
00101 
00103   COINLIBAPI void COINLINKAGE 
00104   Cbc_deleteColumns(Cbc_Model * model, int number, const int * which)
00105   ;
00107   COINLIBAPI void COINLINKAGE 
00108   Cbc_addColumns(Cbc_Model * model, int number, const double * columnLower, 
00109       const double * columnUpper,
00110       const double * objective,
00111       const int * columnStarts, const int * rows,
00112       const double * elements);
00114   COINLIBAPI void COINLINKAGE 
00115   Cbc_dropNames(Cbc_Model * model)
00116   ;
00118   COINLIBAPI void COINLINKAGE 
00119   Cbc_copyNames(Cbc_Model * model, const char * const * rowNamesIn,
00120      const char * const * columnNamesIn)
00121   ;
00122   
00127   COINLIBAPI int COINLINKAGE 
00128   Cbc_numberRows(Cbc_Model * model)
00129   ;
00131   COINLIBAPI int COINLINKAGE 
00132   Cbc_numberColumns(Cbc_Model * model)
00133   ;
00135   COINLIBAPI double COINLINKAGE 
00136   Cbc_primalTolerance(Cbc_Model * model)
00137   ;
00138   COINLIBAPI void COINLINKAGE 
00139   Cbc_setPrimalTolerance(Cbc_Model * model,  double value)
00140   ;
00142   COINLIBAPI double COINLINKAGE 
00143   Cbc_dualTolerance(Cbc_Model * model)
00144   ;
00145   COINLIBAPI void COINLINKAGE 
00146   Cbc_setDualTolerance(Cbc_Model * model,  double value) 
00147   ;
00148   /* Integer tolerance to use */
00149   COINLIBAPI double COINLINKAGE 
00150   Cbc_integerTolerance(Cbc_Model * model)
00151   ;
00152   COINLIBAPI void COINLINKAGE 
00153   Cbc_setIntegerTolerance(Cbc_Model * model,  double value)
00154   ;
00156   COINLIBAPI double COINLINKAGE 
00157   Cbc_dualObjectiveLimit(Cbc_Model * model)
00158   ;
00159   COINLIBAPI void COINLINKAGE 
00160   Cbc_setDualObjectiveLimit(Cbc_Model * model, double value)
00161   ;
00163   COINLIBAPI double COINLINKAGE 
00164   Cbc_objectiveOffset(Cbc_Model * model)
00165   ;
00166   COINLIBAPI void COINLINKAGE 
00167   Cbc_setObjectiveOffset(Cbc_Model * model, double value)
00168   ;
00170   COINLIBAPI void COINLINKAGE 
00171   Cbc_problemName(Cbc_Model * model, int maxNumberCharacters, char * array)
00172   ;
00174   COINLIBAPI int COINLINKAGE 
00175   Cbc_setProblemName(Cbc_Model * model, int maxNumberCharacters, char * array)
00176   ;
00178   COINLIBAPI int COINLINKAGE 
00179   Cbc_numberIterations(Cbc_Model * model)
00180   ;
00181   COINLIBAPI void COINLINKAGE 
00182   Cbc_setNumberIterations(Cbc_Model * model, int numberIterations)
00183   ;
00185   COINLIBAPI int COINLINKAGE 
00186   Cbc_maximumIterations(Cbc_Model * model)
00187   ;
00188   COINLIBAPI void COINLINKAGE 
00189   Cbc_setMaximumIterations(Cbc_Model * model, int value)
00190   ;
00192   COINLIBAPI int COINLINKAGE 
00193   Cbc_maxNumNode(Cbc_Model * model)
00194   ;
00195   COINLIBAPI void COINLINKAGE 
00196   Cbc_setMaxNumNode(Cbc_Model * model, int value)
00197   ;
00198   /* Maximum number of solutions */
00199   COINLIBAPI int COINLINKAGE
00200   Cbc_maxNumSol(Cbc_Model * model)
00201   ;
00202   COINLIBAPI void COINLINKAGE 
00203   Cbc_setMaxNumSol(Cbc_Model * model, int value)
00204   ;
00206   COINLIBAPI double COINLINKAGE 
00207   Cbc_maximumSeconds(Cbc_Model * model)
00208   ;
00209   COINLIBAPI void COINLINKAGE 
00210   Cbc_setMaximumSeconds(Cbc_Model * model, double value)
00211   ;
00213   COINLIBAPI int COINLINKAGE 
00214   Cbc_hitMaximumIterations(Cbc_Model * model)
00215   ;
00223   COINLIBAPI int COINLINKAGE 
00224   Cbc_status(Cbc_Model * model)
00225   ;
00227   COINLIBAPI void COINLINKAGE 
00228   Cbc_setProblemStatus(Cbc_Model * model, int problemStatus)
00229   ;
00237   COINLIBAPI int COINLINKAGE 
00238   Cbc_secondaryStatus(Cbc_Model * model)
00239   ;
00240   COINLIBAPI void COINLINKAGE 
00241   Cbc_setSecondaryStatus(Cbc_Model * model, int status)
00242   ;
00244   COINLIBAPI double COINLINKAGE 
00245   Cbc_optimizationDirection(Cbc_Model * model)
00246   ;
00247   COINLIBAPI void COINLINKAGE 
00248   Cbc_setOptimizationDirection(Cbc_Model * model, double value)
00249   ;
00251   COINLIBAPI double * COINLINKAGE 
00252   Cbc_primalRowSolution(Cbc_Model * model)
00253   ;
00255   COINLIBAPI double * COINLINKAGE 
00256   Cbc_primalColumnSolution(Cbc_Model * model)
00257   ;
00259   COINLIBAPI double * COINLINKAGE 
00260   Cbc_dualRowSolution(Cbc_Model * model)
00261   ;
00263   COINLIBAPI double * COINLINKAGE 
00264   Cbc_dualColumnSolution(Cbc_Model * model)
00265   ;
00267   COINLIBAPI double* COINLINKAGE 
00268   Cbc_rowLower(Cbc_Model * model)
00269   ;
00271   COINLIBAPI double* COINLINKAGE 
00272   Cbc_rowUpper(Cbc_Model * model)
00273   ;
00275   COINLIBAPI double * COINLINKAGE 
00276   Cbc_objective(Cbc_Model * model)
00277   ;            
00279   COINLIBAPI double * COINLINKAGE 
00280   Cbc_columnLower(Cbc_Model * model)
00281   ;
00283   COINLIBAPI double * COINLINKAGE 
00284   Cbc_columnUpper(Cbc_Model * model)
00285   ;
00287   COINLIBAPI int COINLINKAGE 
00288   Cbc_getNumElements(Cbc_Model * model)
00289   ;
00291   COINLIBAPI const CoinBigIndex * COINLINKAGE 
00292   Cbc_getVectorStarts(Cbc_Model * model)
00293   ; 
00295   COINLIBAPI const int * COINLINKAGE 
00296   Cbc_getIndices(Cbc_Model * model)
00297   ; 
00299   COINLIBAPI const int * COINLINKAGE 
00300   Cbc_getVectorLengths(Cbc_Model * model)
00301   ; 
00303   COINLIBAPI const double * COINLINKAGE 
00304   Cbc_getElements(Cbc_Model * model)
00305   ; 
00307   COINLIBAPI double COINLINKAGE 
00308   Cbc_objectiveValue(Cbc_Model * model)
00309   ;
00312   COINLIBAPI double * COINLINKAGE 
00313   Cbc_infeasibilityRay(Cbc_Model * model)
00314   ;
00315   COINLIBAPI double * COINLINKAGE 
00316   Cbc_unboundedRay(Cbc_Model * model)
00317   ;
00319   COINLIBAPI int COINLINKAGE 
00320   Cbc_statusExists(Cbc_Model * model)
00321   ;
00323   COINLIBAPI void  COINLINKAGE 
00324   Cbc_getBasisStatus(Cbc_Model * model, int * cstat, int * rstat)
00325   ;
00327   COINLIBAPI void COINLINKAGE 
00328   Cbc_setBasisStatus(Cbc_Model * model, int * cstat, int * rstat)
00329   ;
00330   
00332   COINLIBAPI void COINLINKAGE 
00333   Cbc_setUserPointer (Cbc_Model * model, void * pointer)
00334   ;
00335   COINLIBAPI void * COINLINKAGE 
00336   Cbc_getUserPointer (Cbc_Model * model)
00337   ;
00343   COINLIBAPI void COINLINKAGE 
00344   Cbc_registerCallBack(Cbc_Model * model, 
00345                cbc_callback userCallBack)
00346   ;
00348   COINLIBAPI void COINLINKAGE 
00349   Cbc_clearCallBack(Cbc_Model * model)
00350   ;
00359   COINLIBAPI void COINLINKAGE 
00360   Cbc_setLogLevel(Cbc_Model * model, int value)
00361   ;
00362   COINLIBAPI int COINLINKAGE 
00363   Cbc_logLevel(Cbc_Model * model)
00364   ;
00366   COINLIBAPI int COINLINKAGE 
00367   Cbc_lengthNames(Cbc_Model * model)
00368   ;
00370   COINLIBAPI void COINLINKAGE 
00371   Cbc_rowName(Cbc_Model * model, int iRow, char * name)
00372   ;
00374   COINLIBAPI void COINLINKAGE 
00375   Cbc_columnName(Cbc_Model * model, int iColumn, char * name)
00376   ;
00377 
00386   COINLIBAPI int COINLINKAGE 
00387   Cbc_initialSolve(Cbc_Model * model)
00388   ;
00389   /* General solve algorithm which can do presolve.
00390      See  CbcModel.hpp for options
00391   */
00392   COINLIBAPI int COINLINKAGE 
00393   Cbc_branchAndBound(Cbc_Model * model)
00394   ;
00396   COINLIBAPI void COINLINKAGE 
00397   Cbc_scaling(Cbc_Model * model, int mode)
00398   ;
00400   COINLIBAPI int COINLINKAGE 
00401   Cbc_scalingFlag(Cbc_Model * model)
00402   ;
00417   COINLIBAPI int COINLINKAGE 
00418   Cbc_crash(Cbc_Model * model, double gap,int pivot)
00419   ;
00426   COINLIBAPI int COINLINKAGE 
00427   Cbc_primalFeasible(Cbc_Model * model)
00428   ;
00430   COINLIBAPI int COINLINKAGE 
00431   Cbc_dualFeasible(Cbc_Model * model)
00432   ;
00434   COINLIBAPI double COINLINKAGE 
00435   Cbc_dualBound(Cbc_Model * model)
00436   ;
00437   COINLIBAPI void COINLINKAGE 
00438   Cbc_setDualBound(Cbc_Model * model, double value)
00439   ;
00441   COINLIBAPI double COINLINKAGE 
00442   Cbc_infeasibilityCost(Cbc_Model * model)
00443   ;
00444   COINLIBAPI void COINLINKAGE 
00445   Cbc_setInfeasibilityCost(Cbc_Model * model, double value)
00446   ;
00455   COINLIBAPI int COINLINKAGE 
00456   Cbc_perturbation(Cbc_Model * model)
00457   ;
00458   COINLIBAPI void COINLINKAGE 
00459   Cbc_setPerturbation(Cbc_Model * model, int value)
00460   ;
00462   COINLIBAPI int COINLINKAGE 
00463   Cbc_algorithm(Cbc_Model * model)
00464   ; 
00466   COINLIBAPI void COINLINKAGE 
00467   Cbc_setAlgorithm(Cbc_Model * model, int value)
00468   ;
00470   COINLIBAPI double COINLINKAGE 
00471   Cbc_sumDualInfeasibilities(Cbc_Model * model)
00472   ; 
00474   COINLIBAPI int COINLINKAGE 
00475   Cbc_numberDualInfeasibilities(Cbc_Model * model)
00476   ; 
00478   COINLIBAPI double COINLINKAGE 
00479   Cbc_sumPrimalInfeasibilities(Cbc_Model * model)
00480   ; 
00482   COINLIBAPI int COINLINKAGE 
00483   Cbc_numberPrimalInfeasibilities(Cbc_Model * model)
00484   ; 
00491   COINLIBAPI int COINLINKAGE 
00492   Cbc_saveModel(Cbc_Model * model, const char * fileName)
00493   ;
00496   COINLIBAPI int COINLINKAGE 
00497   Cbc_restoreModel(Cbc_Model * model, const char * fileName)
00498   ;
00499   
00502   COINLIBAPI void COINLINKAGE 
00503   Cbc_checkSolution(Cbc_Model * model)
00504   ;
00507   /******************** End of most useful part **************/
00511   COINLIBAPI int COINLINKAGE 
00512   Cbc_getNumRows(Cbc_Model * model)
00513   ;
00515   COINLIBAPI int COINLINKAGE 
00516   Cbc_getNumCols(Cbc_Model * model)
00517   ;
00519   COINLIBAPI int COINLINKAGE 
00520   Cbc_getIterationCount(Cbc_Model * model)
00521   ;
00523   COINLIBAPI int COINLINKAGE 
00524   Cbc_isAbandoned(Cbc_Model * model)
00525   ;
00527   COINLIBAPI int COINLINKAGE 
00528   Cbc_isProvenOptimal(Cbc_Model * model)
00529   ;
00531   COINLIBAPI int COINLINKAGE 
00532   Cbc_isProvenPrimalInfeasible(Cbc_Model * model)
00533   ;
00535   COINLIBAPI int COINLINKAGE 
00536   Cbc_isProvenDualInfeasible(Cbc_Model * model)
00537   ;
00539   COINLIBAPI int COINLINKAGE 
00540   Cbc_isPrimalObjectiveLimitReached(Cbc_Model * model) 
00541   ;
00543   COINLIBAPI int COINLINKAGE 
00544   Cbc_isDualObjectiveLimitReached(Cbc_Model * model) 
00545   ;
00547   COINLIBAPI int COINLINKAGE 
00548   Cbc_isIterationLimitReached(Cbc_Model * model)
00549   ;
00551   COINLIBAPI double COINLINKAGE 
00552   Cbc_getObjSense(Cbc_Model * model)
00553   ;
00555   COINLIBAPI const double * COINLINKAGE 
00556   Cbc_getRowActivity(Cbc_Model * model)
00557   ;
00559   COINLIBAPI const double * COINLINKAGE 
00560   Cbc_getColSolution(Cbc_Model * model)
00561   ;
00562   COINLIBAPI void COINLINKAGE 
00563   Cbc_setColSolution(Cbc_Model * model, const double * input)
00564   ;
00566   COINLIBAPI const double * COINLINKAGE 
00567   Cbc_getRowPrice(Cbc_Model * model)
00568   ;
00570   COINLIBAPI const double * COINLINKAGE 
00571   Cbc_getReducedCost(Cbc_Model * model)
00572   ;
00574   COINLIBAPI const double* COINLINKAGE 
00575   Cbc_getRowLower(Cbc_Model * model)
00576   ;
00578   COINLIBAPI const double* COINLINKAGE 
00579   Cbc_getRowUpper(Cbc_Model * model)
00580   ;
00582   COINLIBAPI const double * COINLINKAGE 
00583   Cbc_getObjCoefficients(Cbc_Model * model)
00584   ; 
00586   COINLIBAPI const double * COINLINKAGE 
00587   Cbc_getColLower(Cbc_Model * model)
00588   ;
00590   COINLIBAPI const double * COINLINKAGE 
00591   Cbc_getColUpper(Cbc_Model * model)
00592   ;
00594   COINLIBAPI double COINLINKAGE 
00595   Cbc_getObjValue(Cbc_Model * model)
00596   ;
00598   COINLIBAPI void COINLINKAGE 
00599   Cbc_printModel(Cbc_Model * model, const char * argPrefix)
00600   ;
00602   COINLIBAPI int COINLINKAGE 
00603   Cbc_isInteger(Cbc_Model * model, int i)
00604   ;
00606   COINLIBAPI double COINLINKAGE 
00607   Cbc_cpuTime(Cbc_Model * model)
00608   ;
00610   COINLIBAPI int COINLINKAGE 
00611   Cbc_getNodeCount(Cbc_Model * model)
00612   ;
00614   COINLIBAPI Cbc_Model * COINLINKAGE 
00615   Cbc_clone(Cbc_Model * model)
00616   ;
00618   COINLIBAPI Cbc_Model * COINLINKAGE 
00619   Cbc_setContinuous(Cbc_Model * model, int iColumn)
00620   ;
00622   COINLIBAPI void  COINLINKAGE 
00623   Cbc_addSOS_Dense(Cbc_Model * model, int numObjects, const int * len,
00624              const int ** which, const double * weights, const int type)
00625   ;
00627   COINLIBAPI void  COINLINKAGE 
00628   Cbc_addSOS_Sparse(Cbc_Model * model, const int * rowStarts,
00629              const int * rowIndices, const double * weights, const int type)
00630   ;
00632   COINLIBAPI void  COINLINKAGE 
00633   Cbc_deleteObjects(Cbc_Model * model)
00634   ;
00636   COINLIBAPI void  COINLINKAGE 
00637   Cbc_printSolution(Cbc_Model * model)
00638   ;
00640   COINLIBAPI int COINLINKAGE 
00641   Cbc_initialDualSolve(Cbc_Model * model)
00642   ;
00644   COINLIBAPI int COINLINKAGE 
00645   Cbc_initialPrimalSolve(Cbc_Model * model)
00646   ;
00648   COINLIBAPI int COINLINKAGE 
00649   Cbc_dual(Cbc_Model * model, int ifValuesPass)
00650   ;
00652   COINLIBAPI int COINLINKAGE 
00653   Cbc_primal(Cbc_Model * model, int ifValuesPass)
00654   ;
00656 #ifdef __cplusplus
00657     }
00658 #endif
00659 #endif

Generated on Sat May 22 03:07:43 2010 by  doxygen 1.4.7