00001
00002
00003 #ifndef ClpSimplexC_H
00004 #define ClpSimplexC_H
00005
00006
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
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
00175 COINLIBAPI const CoinBigIndex * COINLINKAGE Clp_getVectorStarts(Clp_Simplex * model);
00176
00177 COINLIBAPI const int * COINLINKAGE Clp_getIndices(Clp_Simplex * model);
00178
00179 COINLIBAPI const int * COINLINKAGE Clp_getVectorLengths(Clp_Simplex * model);
00180
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
00197
00198
00199 COINLIBAPI const int COINLINKAGE Clp_getColumnStatus(Clp_Simplex * model,int sequence);
00200
00201 COINLIBAPI const int COINLINKAGE Clp_getRowStatus(Clp_Simplex * model,int sequence);
00202
00203 COINLIBAPI void COINLINKAGE Clp_setColumnStatus(Clp_Simplex * model,
00204 int sequence, int value);
00205
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
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
00376
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