/home/coin/SVN-release/Cbc-1.1.1/Clp/src/Clp_C_Interface.h

Go to the documentation of this file.
00001 /* Copyright (C) 2002, 2003 International Business Machines
00002    Corporation and others.  All Rights Reserved.*/
00003 #ifndef ClpSimplexC_H
00004 #define ClpSimplexC_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 Clp_Simplex * COINLINKAGE Clp_newModel(void);
00031   COINLIBAPI void COINLINKAGE Clp_deleteModel(Clp_Simplex * model);
00049   COINLIBAPI void COINLINKAGE Clp_loadProblem (Clp_Simplex * 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 Clp_readMps(Clp_Simplex * model,const char *filename,
00057               int keepNames,
00058               int ignoreErrors);
00060   COINLIBAPI void COINLINKAGE Clp_copyInIntegerInformation(Clp_Simplex * model,const char * information);
00062   COINLIBAPI void COINLINKAGE Clp_deleteIntegerInformation(Clp_Simplex * model);
00064   COINLIBAPI void COINLINKAGE Clp_resize (Clp_Simplex * model, int newNumberRows, int newNumberColumns);
00066   COINLIBAPI void COINLINKAGE Clp_deleteRows(Clp_Simplex * model, int number, const int * which);
00068   COINLIBAPI void COINLINKAGE Clp_addRows(Clp_Simplex * 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 Clp_deleteColumns(Clp_Simplex * model, int number, const int * which);
00076   COINLIBAPI void COINLINKAGE Clp_addColumns(Clp_Simplex * 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 Clp_chgRowLower(Clp_Simplex * model, const double * rowLower);
00084   COINLIBAPI void COINLINKAGE Clp_chgRowUpper(Clp_Simplex * model, const double * rowUpper); 
00086   COINLIBAPI void COINLINKAGE Clp_chgColumnLower(Clp_Simplex * model, const double * columnLower); 
00088   COINLIBAPI void COINLINKAGE Clp_chgColumnUpper(Clp_Simplex * model, const double * columnUpper); 
00090   COINLIBAPI void COINLINKAGE Clp_chgObjCoefficients(Clp_Simplex * model, const double * objIn); 
00092   COINLIBAPI void COINLINKAGE Clp_dropNames(Clp_Simplex * model);
00094   COINLIBAPI void COINLINKAGE Clp_copyNames(Clp_Simplex * model, const char * const * rowNames,
00095                  const char * const * columnNames);
00096   
00101   COINLIBAPI int COINLINKAGE Clp_numberRows(Clp_Simplex * model);
00103   COINLIBAPI int COINLINKAGE Clp_numberColumns(Clp_Simplex * model);
00105   COINLIBAPI double COINLINKAGE Clp_primalTolerance(Clp_Simplex * model);
00106   COINLIBAPI void COINLINKAGE Clp_setPrimalTolerance(Clp_Simplex * model,  double value) ;
00108   COINLIBAPI double COINLINKAGE Clp_dualTolerance(Clp_Simplex * model);
00109   COINLIBAPI void COINLINKAGE Clp_setDualTolerance(Clp_Simplex * model,  double value) ;
00111   COINLIBAPI double COINLINKAGE Clp_dualObjectiveLimit(Clp_Simplex * model);
00112   COINLIBAPI void COINLINKAGE Clp_setDualObjectiveLimit(Clp_Simplex * model, double value);
00114   COINLIBAPI double COINLINKAGE Clp_objectiveOffset(Clp_Simplex * model);
00115   COINLIBAPI void COINLINKAGE Clp_setObjectiveOffset(Clp_Simplex * model, double value);
00117   COINLIBAPI void COINLINKAGE Clp_problemName(Clp_Simplex * model, int maxNumberCharacters, char * array);
00118   /* Sets problem name.  Must have \0 at end.  */
00119   COINLIBAPI int COINLINKAGE 
00120     Clp_setProblemName(Clp_Simplex * model, int maxNumberCharacters, char * array);
00122   COINLIBAPI int COINLINKAGE Clp_numberIterations(Clp_Simplex * model);
00123   COINLIBAPI void COINLINKAGE Clp_setNumberIterations(Clp_Simplex * model, int numberIterations);
00125   COINLIBAPI int maximumIterations(Clp_Simplex * model);
00126   COINLIBAPI void COINLINKAGE Clp_setMaximumIterations(Clp_Simplex * model, int value);
00128   COINLIBAPI double COINLINKAGE Clp_maximumSeconds(Clp_Simplex * model);
00129   COINLIBAPI void COINLINKAGE Clp_setMaximumSeconds(Clp_Simplex * model, double value);
00131   COINLIBAPI int COINLINKAGE Clp_hitMaximumIterations(Clp_Simplex * model);
00139   COINLIBAPI int COINLINKAGE Clp_status(Clp_Simplex * model);
00141   COINLIBAPI void COINLINKAGE Clp_setProblemStatus(Clp_Simplex * model, int problemStatus);
00149   COINLIBAPI int COINLINKAGE Clp_secondaryStatus(Clp_Simplex * model);
00150   COINLIBAPI void COINLINKAGE Clp_setSecondaryStatus(Clp_Simplex * model, int status);
00152   COINLIBAPI double COINLINKAGE Clp_optimizationDirection(Clp_Simplex * model);
00153   COINLIBAPI void COINLINKAGE Clp_setOptimizationDirection(Clp_Simplex * model, double value);
00155   COINLIBAPI double * COINLINKAGE Clp_primalRowSolution(Clp_Simplex * model);
00157   COINLIBAPI double * COINLINKAGE Clp_primalColumnSolution(Clp_Simplex * model);
00159   COINLIBAPI double * COINLINKAGE Clp_dualRowSolution(Clp_Simplex * model);
00161   COINLIBAPI double * COINLINKAGE Clp_dualColumnSolution(Clp_Simplex * model);
00163   COINLIBAPI double* COINLINKAGE Clp_rowLower(Clp_Simplex * model);
00165   COINLIBAPI double* COINLINKAGE Clp_rowUpper(Clp_Simplex * model);
00167   COINLIBAPI double * COINLINKAGE Clp_objective(Clp_Simplex * model);            
00169   COINLIBAPI double * COINLINKAGE Clp_columnLower(Clp_Simplex * model);
00171   COINLIBAPI double * COINLINKAGE Clp_columnUpper(Clp_Simplex * model);
00173   COINLIBAPI int COINLINKAGE Clp_getNumElements(Clp_Simplex * model); 
00174   /* Column starts in matrix */
00175   COINLIBAPI const CoinBigIndex * COINLINKAGE Clp_getVectorStarts(Clp_Simplex * model); 
00176   /* Row indices in matrix */
00177   COINLIBAPI const int * COINLINKAGE Clp_getIndices(Clp_Simplex * model); 
00178   /* Column vector lengths in matrix */
00179   COINLIBAPI const int * COINLINKAGE Clp_getVectorLengths(Clp_Simplex * model); 
00180   /* Element values in matrix */
00181   COINLIBAPI const double * COINLINKAGE Clp_getElements(Clp_Simplex * model); 
00183   COINLIBAPI double COINLINKAGE Clp_objectiveValue(Clp_Simplex * model);
00185   COINLIBAPI char * COINLINKAGE Clp_integerInformation(Clp_Simplex * model);
00188   COINLIBAPI double * COINLINKAGE Clp_infeasibilityRay(Clp_Simplex * model);
00189   COINLIBAPI double * COINLINKAGE Clp_unboundedRay(Clp_Simplex * model);
00191   COINLIBAPI int COINLINKAGE Clp_statusExists(Clp_Simplex * model);
00193   COINLIBAPI unsigned char *  COINLINKAGE Clp_statusArray(Clp_Simplex * model);
00195   COINLIBAPI void COINLINKAGE Clp_copyinStatus(Clp_Simplex * model, const unsigned char * statusArray);
00196   /* status values are as in ClpSimplex.hpp i.e. 0 - free, 1 basic, 2 at upper,
00197      3 at lower, 4 superbasic, (5 fixed) */
00198   /* Get variable basis info */
00199   COINLIBAPI const int COINLINKAGE Clp_getColumnStatus(Clp_Simplex * model,int sequence);
00200   /* Get row basis info */
00201   COINLIBAPI const int COINLINKAGE Clp_getRowStatus(Clp_Simplex * model,int sequence);
00202   /* Set variable basis info (and value if at bound) */
00203   COINLIBAPI void COINLINKAGE Clp_setColumnStatus(Clp_Simplex * model,
00204                                                   int sequence, int value);
00205   /* Set row basis info (and value if at bound) */
00206   COINLIBAPI void COINLINKAGE Clp_setRowStatus(Clp_Simplex * model,
00207                                                int sequence, int value);
00208   
00210   COINLIBAPI void COINLINKAGE Clp_setUserPointer (Clp_Simplex * model, void * pointer);
00211   COINLIBAPI void * COINLINKAGE Clp_getUserPointer (Clp_Simplex * model);
00217   COINLIBAPI void COINLINKAGE Clp_registerCallBack(Clp_Simplex * model, 
00218                                                    clp_callback userCallBack);
00220   COINLIBAPI void COINLINKAGE Clp_clearCallBack(Clp_Simplex * model);
00229   COINLIBAPI void COINLINKAGE Clp_setLogLevel(Clp_Simplex * model, int value);
00230   COINLIBAPI int COINLINKAGE Clp_logLevel(Clp_Simplex * model);
00232   COINLIBAPI int COINLINKAGE Clp_lengthNames(Clp_Simplex * model);
00234   COINLIBAPI void COINLINKAGE Clp_rowName(Clp_Simplex * model, int iRow, char * name);
00236   COINLIBAPI void COINLINKAGE Clp_columnName(Clp_Simplex * model, int iColumn, char * name);
00237 
00246   COINLIBAPI int COINLINKAGE Clp_initialSolve(Clp_Simplex * model);
00248   COINLIBAPI int COINLINKAGE Clp_initialDualSolve(Clp_Simplex * model);
00250   COINLIBAPI int COINLINKAGE Clp_initialPrimalSolve(Clp_Simplex * model);
00252   COINLIBAPI int COINLINKAGE Clp_dual(Clp_Simplex * model, int ifValuesPass);
00254   COINLIBAPI int COINLINKAGE Clp_primal(Clp_Simplex * model, int ifValuesPass);
00256   COINLIBAPI void COINLINKAGE Clp_scaling(Clp_Simplex * model, int mode);
00258   COINLIBAPI int COINLINKAGE Clp_scalingFlag(Clp_Simplex * model);
00273   COINLIBAPI int COINLINKAGE Clp_crash(Clp_Simplex * model, double gap,int pivot);
00280   COINLIBAPI int COINLINKAGE Clp_primalFeasible(Clp_Simplex * model);
00282   COINLIBAPI int COINLINKAGE Clp_dualFeasible(Clp_Simplex * model);
00284   COINLIBAPI double COINLINKAGE Clp_dualBound(Clp_Simplex * model);
00285   COINLIBAPI void COINLINKAGE Clp_setDualBound(Clp_Simplex * model, double value);
00287   COINLIBAPI double COINLINKAGE Clp_infeasibilityCost(Clp_Simplex * model);
00288   COINLIBAPI void COINLINKAGE Clp_setInfeasibilityCost(Clp_Simplex * model, double value);
00297   COINLIBAPI int COINLINKAGE Clp_perturbation(Clp_Simplex * model);
00298   COINLIBAPI void COINLINKAGE Clp_setPerturbation(Clp_Simplex * model, int value);
00300   COINLIBAPI int COINLINKAGE Clp_algorithm(Clp_Simplex * model); 
00302   COINLIBAPI void COINLINKAGE Clp_setAlgorithm(Clp_Simplex * model, int value);
00304   COINLIBAPI double COINLINKAGE Clp_sumDualInfeasibilities(Clp_Simplex * model); 
00306   COINLIBAPI int COINLINKAGE Clp_numberDualInfeasibilities(Clp_Simplex * model); 
00308   COINLIBAPI double COINLINKAGE Clp_sumPrimalInfeasibilities(Clp_Simplex * model); 
00310   COINLIBAPI int COINLINKAGE Clp_numberPrimalInfeasibilities(Clp_Simplex * model); 
00317   COINLIBAPI int COINLINKAGE Clp_saveModel(Clp_Simplex * model, const char * fileName);
00320   COINLIBAPI int COINLINKAGE Clp_restoreModel(Clp_Simplex * model, const char * fileName);
00321   
00324   COINLIBAPI void COINLINKAGE Clp_checkSolution(Clp_Simplex * model);
00327   /******************** End of most useful part **************/
00331   COINLIBAPI int COINLINKAGE Clp_getNumRows(Clp_Simplex * model);
00333   COINLIBAPI int COINLINKAGE Clp_getNumCols(Clp_Simplex * model);
00335   COINLIBAPI int COINLINKAGE Clp_getIterationCount(Clp_Simplex * model);
00337   COINLIBAPI int COINLINKAGE Clp_isAbandoned(Clp_Simplex * model);
00339   COINLIBAPI int COINLINKAGE Clp_isProvenOptimal(Clp_Simplex * model);
00341   COINLIBAPI int COINLINKAGE Clp_isProvenPrimalInfeasible(Clp_Simplex * model);
00343   COINLIBAPI int COINLINKAGE Clp_isProvenDualInfeasible(Clp_Simplex * model);
00345   COINLIBAPI int COINLINKAGE Clp_isPrimalObjectiveLimitReached(Clp_Simplex * model) ;
00347   COINLIBAPI int COINLINKAGE Clp_isDualObjectiveLimitReached(Clp_Simplex * model) ;
00349   COINLIBAPI int COINLINKAGE Clp_isIterationLimitReached(Clp_Simplex * model);
00351   COINLIBAPI double COINLINKAGE Clp_getObjSense(Clp_Simplex * model);
00353   COINLIBAPI const double * COINLINKAGE Clp_getRowActivity(Clp_Simplex * model);
00355   COINLIBAPI const double * COINLINKAGE Clp_getColSolution(Clp_Simplex * model);
00356   COINLIBAPI void COINLINKAGE Clp_setColSolution(Clp_Simplex * model, const double * input);
00358   COINLIBAPI const double * COINLINKAGE Clp_getRowPrice(Clp_Simplex * model);
00360   COINLIBAPI const double * COINLINKAGE Clp_getReducedCost(Clp_Simplex * model);
00362   COINLIBAPI const double* COINLINKAGE Clp_getRowLower(Clp_Simplex * model);
00364   COINLIBAPI const double* COINLINKAGE Clp_getRowUpper(Clp_Simplex * model);
00366   COINLIBAPI const double * COINLINKAGE Clp_getObjCoefficients(Clp_Simplex * model); 
00368   COINLIBAPI const double * COINLINKAGE Clp_getColLower(Clp_Simplex * model);
00370   COINLIBAPI const double * COINLINKAGE Clp_getColUpper(Clp_Simplex * model);
00372   COINLIBAPI double COINLINKAGE Clp_getObjValue(Clp_Simplex * model);
00374   COINLIBAPI void COINLINKAGE Clp_printModel(Clp_Simplex * model, const char * prefix);
00375   /* Small element value - elements less than this set to zero,
00376      default is 1.0e-20 */
00377   COINLIBAPI double COINLINKAGE Clp_getSmallElementValue(Clp_Simplex * model);
00378   COINLIBAPI void COINLINKAGE Clp_setSmallElementValue(Clp_Simplex * model,double value);
00380 #ifdef __cplusplus
00381           }
00382 #endif
00383 #endif

Generated on Thu May 15 21:59:05 2008 by  doxygen 1.4.7