• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/coinor-cbc-2.5.0/Cbc/src/Cbc_C_Interface.h

Go to the documentation of this file.
00001 /* $Id: Cbc_C_Interface.h 1286 2009-11-09 23:33:07Z EdwinStraver $ */
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 Oct 23 2010 23:46:54 by  doxygen 1.7.1