Clp  1.15.5
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Clp_C_Interface.h
Go to the documentation of this file.
1 /* $Id: Clp_C_Interface.h 1902 2013-01-03 17:07:26Z stefan $ */
2 /*
3  Copyright (C) 2002, 2003 International Business Machines Corporation
4  and others. All Rights Reserved.
5 
6  This code is licensed under the terms of the Eclipse Public License (EPL).
7 */
8 #ifndef ClpSimplexC_H
9 #define ClpSimplexC_H
10 
11 /* include all defines and ugly stuff */
12 #include "Coin_C_defines.h"
13 
14 #if defined (CLP_EXTERN_C)
15 typedef struct {
16  ClpSolve options;
17 } Clp_Solve;
18 #else
19 typedef void Clp_Solve;
20 #endif
21 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
44 
46  COINLIBAPI Clp_Simplex * COINLINKAGE Clp_newModel(void);
48  COINLIBAPI void COINLINKAGE Clp_deleteModel(Clp_Simplex * model);
50  COINLIBAPI Clp_Solve * COINLINKAGE ClpSolve_new();
52  COINLIBAPI void COINLINKAGE ClpSolve_delete(Clp_Solve * solve);
70  COINLIBAPI void COINLINKAGE Clp_loadProblem (Clp_Simplex * model, const int numcols, const int numrows,
71  const CoinBigIndex * start, const int* index,
72  const double* value,
73  const double* collb, const double* colub,
74  const double* obj,
75  const double* rowlb, const double* rowub);
76 
77  /* read quadratic part of the objective (the matrix part) */
78  COINLIBAPI void COINLINKAGE
79  Clp_loadQuadraticObjective(Clp_Simplex * model,
80  const int numberColumns,
81  const CoinBigIndex * start,
82  const int * column,
83  const double * element);
85  COINLIBAPI int COINLINKAGE Clp_readMps(Clp_Simplex * model, const char *filename,
86  int keepNames,
87  int ignoreErrors);
89  COINLIBAPI void COINLINKAGE Clp_copyInIntegerInformation(Clp_Simplex * model, const char * information);
91  COINLIBAPI void COINLINKAGE Clp_deleteIntegerInformation(Clp_Simplex * model);
93  COINLIBAPI void COINLINKAGE Clp_resize (Clp_Simplex * model, int newNumberRows, int newNumberColumns);
95  COINLIBAPI void COINLINKAGE Clp_deleteRows(Clp_Simplex * model, int number, const int * which);
97  COINLIBAPI void COINLINKAGE Clp_addRows(Clp_Simplex * model, int number, const double * rowLower,
98  const double * rowUpper,
99  const int * rowStarts, const int * columns,
100  const double * elements);
101 
103  COINLIBAPI void COINLINKAGE Clp_deleteColumns(Clp_Simplex * model, int number, const int * which);
105  COINLIBAPI void COINLINKAGE Clp_addColumns(Clp_Simplex * model, int number, const double * columnLower,
106  const double * columnUpper,
107  const double * objective,
108  const int * columnStarts, const int * rows,
109  const double * elements);
111  COINLIBAPI void COINLINKAGE Clp_chgRowLower(Clp_Simplex * model, const double * rowLower);
113  COINLIBAPI void COINLINKAGE Clp_chgRowUpper(Clp_Simplex * model, const double * rowUpper);
115  COINLIBAPI void COINLINKAGE Clp_chgColumnLower(Clp_Simplex * model, const double * columnLower);
117  COINLIBAPI void COINLINKAGE Clp_chgColumnUpper(Clp_Simplex * model, const double * columnUpper);
119  COINLIBAPI void COINLINKAGE Clp_chgObjCoefficients(Clp_Simplex * model, const double * objIn);
121  COINLIBAPI void COINLINKAGE Clp_dropNames(Clp_Simplex * model);
123  COINLIBAPI void COINLINKAGE Clp_copyNames(Clp_Simplex * model, const char * const * rowNames,
124  const char * const * columnNames);
125 
130  COINLIBAPI int COINLINKAGE Clp_numberRows(Clp_Simplex * model);
132  COINLIBAPI int COINLINKAGE Clp_numberColumns(Clp_Simplex * model);
134  COINLIBAPI double COINLINKAGE Clp_primalTolerance(Clp_Simplex * model);
135  COINLIBAPI void COINLINKAGE Clp_setPrimalTolerance(Clp_Simplex * model, double value) ;
137  COINLIBAPI double COINLINKAGE Clp_dualTolerance(Clp_Simplex * model);
138  COINLIBAPI void COINLINKAGE Clp_setDualTolerance(Clp_Simplex * model, double value) ;
140  COINLIBAPI double COINLINKAGE Clp_dualObjectiveLimit(Clp_Simplex * model);
141  COINLIBAPI void COINLINKAGE Clp_setDualObjectiveLimit(Clp_Simplex * model, double value);
143  COINLIBAPI double COINLINKAGE Clp_objectiveOffset(Clp_Simplex * model);
144  COINLIBAPI void COINLINKAGE Clp_setObjectiveOffset(Clp_Simplex * model, double value);
146  COINLIBAPI void COINLINKAGE Clp_problemName(Clp_Simplex * model, int maxNumberCharacters, char * array);
147  /* Sets problem name. Must have \0 at end. */
148  COINLIBAPI int COINLINKAGE
149  Clp_setProblemName(Clp_Simplex * model, int maxNumberCharacters, char * array);
151  COINLIBAPI int COINLINKAGE Clp_numberIterations(Clp_Simplex * model);
152  COINLIBAPI void COINLINKAGE Clp_setNumberIterations(Clp_Simplex * model, int numberIterations);
154  COINLIBAPI int maximumIterations(Clp_Simplex * model);
155  COINLIBAPI void COINLINKAGE Clp_setMaximumIterations(Clp_Simplex * model, int value);
157  COINLIBAPI double COINLINKAGE Clp_maximumSeconds(Clp_Simplex * model);
158  COINLIBAPI void COINLINKAGE Clp_setMaximumSeconds(Clp_Simplex * model, double value);
160  COINLIBAPI int COINLINKAGE Clp_hitMaximumIterations(Clp_Simplex * model);
168  COINLIBAPI int COINLINKAGE Clp_status(Clp_Simplex * model);
170  COINLIBAPI void COINLINKAGE Clp_setProblemStatus(Clp_Simplex * model, int problemStatus);
178  COINLIBAPI int COINLINKAGE Clp_secondaryStatus(Clp_Simplex * model);
179  COINLIBAPI void COINLINKAGE Clp_setSecondaryStatus(Clp_Simplex * model, int status);
181  COINLIBAPI double COINLINKAGE Clp_optimizationDirection(Clp_Simplex * model);
182  COINLIBAPI void COINLINKAGE Clp_setOptimizationDirection(Clp_Simplex * model, double value);
184  COINLIBAPI double * COINLINKAGE Clp_primalRowSolution(Clp_Simplex * model);
186  COINLIBAPI double * COINLINKAGE Clp_primalColumnSolution(Clp_Simplex * model);
188  COINLIBAPI double * COINLINKAGE Clp_dualRowSolution(Clp_Simplex * model);
190  COINLIBAPI double * COINLINKAGE Clp_dualColumnSolution(Clp_Simplex * model);
192  COINLIBAPI double* COINLINKAGE Clp_rowLower(Clp_Simplex * model);
194  COINLIBAPI double* COINLINKAGE Clp_rowUpper(Clp_Simplex * model);
196  COINLIBAPI double * COINLINKAGE Clp_objective(Clp_Simplex * model);
198  COINLIBAPI double * COINLINKAGE Clp_columnLower(Clp_Simplex * model);
200  COINLIBAPI double * COINLINKAGE Clp_columnUpper(Clp_Simplex * model);
202  COINLIBAPI int COINLINKAGE Clp_getNumElements(Clp_Simplex * model);
203  /* Column starts in matrix */
204  COINLIBAPI const CoinBigIndex * COINLINKAGE Clp_getVectorStarts(Clp_Simplex * model);
205  /* Row indices in matrix */
206  COINLIBAPI const int * COINLINKAGE Clp_getIndices(Clp_Simplex * model);
207  /* Column vector lengths in matrix */
208  COINLIBAPI const int * COINLINKAGE Clp_getVectorLengths(Clp_Simplex * model);
209  /* Element values in matrix */
210  COINLIBAPI const double * COINLINKAGE Clp_getElements(Clp_Simplex * model);
212  COINLIBAPI double COINLINKAGE Clp_objectiveValue(Clp_Simplex * model);
214  COINLIBAPI char * COINLINKAGE Clp_integerInformation(Clp_Simplex * model);
217  COINLIBAPI double * COINLINKAGE Clp_infeasibilityRay(Clp_Simplex * model);
218  COINLIBAPI double * COINLINKAGE Clp_unboundedRay(Clp_Simplex * model);
220  COINLIBAPI int COINLINKAGE Clp_statusExists(Clp_Simplex * model);
222  COINLIBAPI unsigned char * COINLINKAGE Clp_statusArray(Clp_Simplex * model);
224  COINLIBAPI void COINLINKAGE Clp_copyinStatus(Clp_Simplex * model, const unsigned char * statusArray);
225  /* status values are as in ClpSimplex.hpp i.e. 0 - free, 1 basic, 2 at upper,
226  3 at lower, 4 superbasic, (5 fixed) */
227  /* Get variable basis info */
228  COINLIBAPI int COINLINKAGE Clp_getColumnStatus(Clp_Simplex * model, int sequence);
229  /* Get row basis info */
230  COINLIBAPI int COINLINKAGE Clp_getRowStatus(Clp_Simplex * model, int sequence);
231  /* Set variable basis info (and value if at bound) */
232  COINLIBAPI void COINLINKAGE Clp_setColumnStatus(Clp_Simplex * model,
233  int sequence, int value);
234  /* Set row basis info (and value if at bound) */
235  COINLIBAPI void COINLINKAGE Clp_setRowStatus(Clp_Simplex * model,
236  int sequence, int value);
237 
239  COINLIBAPI void COINLINKAGE Clp_setUserPointer (Clp_Simplex * model, void * pointer);
240  COINLIBAPI void * COINLINKAGE Clp_getUserPointer (Clp_Simplex * model);
246  COINLIBAPI void COINLINKAGE Clp_registerCallBack(Clp_Simplex * model,
247  clp_callback userCallBack);
249  COINLIBAPI void COINLINKAGE Clp_clearCallBack(Clp_Simplex * model);
258  COINLIBAPI void COINLINKAGE Clp_setLogLevel(Clp_Simplex * model, int value);
259  COINLIBAPI int COINLINKAGE Clp_logLevel(Clp_Simplex * model);
261  COINLIBAPI int COINLINKAGE Clp_lengthNames(Clp_Simplex * model);
263  COINLIBAPI void COINLINKAGE Clp_rowName(Clp_Simplex * model, int iRow, char * name);
265  COINLIBAPI void COINLINKAGE Clp_columnName(Clp_Simplex * model, int iColumn, char * name);
266 
275  COINLIBAPI int COINLINKAGE Clp_initialSolve(Clp_Simplex * model);
277  COINLIBAPI int COINLINKAGE Clp_initialSolveWithOptions(Clp_Simplex * model, Clp_Solve *);
279  COINLIBAPI int COINLINKAGE Clp_initialDualSolve(Clp_Simplex * model);
281  COINLIBAPI int COINLINKAGE Clp_initialPrimalSolve(Clp_Simplex * model);
283  COINLIBAPI int COINLINKAGE Clp_initialBarrierSolve(Clp_Simplex * model);
285  COINLIBAPI int COINLINKAGE Clp_initialBarrierNoCrossSolve(Clp_Simplex * model);
287  COINLIBAPI int COINLINKAGE Clp_dual(Clp_Simplex * model, int ifValuesPass);
289  COINLIBAPI int COINLINKAGE Clp_primal(Clp_Simplex * model, int ifValuesPass);
290 #ifndef SLIM_CLP
291 
292  COINLIBAPI void COINLINKAGE Clp_idiot(Clp_Simplex * model, int tryhard);
293 #endif
294 
295  COINLIBAPI void COINLINKAGE Clp_scaling(Clp_Simplex * model, int mode);
297  COINLIBAPI int COINLINKAGE Clp_scalingFlag(Clp_Simplex * model);
312  COINLIBAPI int COINLINKAGE Clp_crash(Clp_Simplex * model, double gap, int pivot);
319  COINLIBAPI int COINLINKAGE Clp_primalFeasible(Clp_Simplex * model);
321  COINLIBAPI int COINLINKAGE Clp_dualFeasible(Clp_Simplex * model);
323  COINLIBAPI double COINLINKAGE Clp_dualBound(Clp_Simplex * model);
324  COINLIBAPI void COINLINKAGE Clp_setDualBound(Clp_Simplex * model, double value);
326  COINLIBAPI double COINLINKAGE Clp_infeasibilityCost(Clp_Simplex * model);
327  COINLIBAPI void COINLINKAGE Clp_setInfeasibilityCost(Clp_Simplex * model, double value);
336  COINLIBAPI int COINLINKAGE Clp_perturbation(Clp_Simplex * model);
337  COINLIBAPI void COINLINKAGE Clp_setPerturbation(Clp_Simplex * model, int value);
339  COINLIBAPI int COINLINKAGE Clp_algorithm(Clp_Simplex * model);
341  COINLIBAPI void COINLINKAGE Clp_setAlgorithm(Clp_Simplex * model, int value);
343  COINLIBAPI double COINLINKAGE Clp_sumDualInfeasibilities(Clp_Simplex * model);
345  COINLIBAPI int COINLINKAGE Clp_numberDualInfeasibilities(Clp_Simplex * model);
347  COINLIBAPI double COINLINKAGE Clp_sumPrimalInfeasibilities(Clp_Simplex * model);
349  COINLIBAPI int COINLINKAGE Clp_numberPrimalInfeasibilities(Clp_Simplex * model);
356  COINLIBAPI int COINLINKAGE Clp_saveModel(Clp_Simplex * model, const char * fileName);
359  COINLIBAPI int COINLINKAGE Clp_restoreModel(Clp_Simplex * model, const char * fileName);
360 
363  COINLIBAPI void COINLINKAGE Clp_checkSolution(Clp_Simplex * model);
366  /******************** End of most useful part **************/
370  COINLIBAPI int COINLINKAGE Clp_getNumRows(Clp_Simplex * model);
372  COINLIBAPI int COINLINKAGE Clp_getNumCols(Clp_Simplex * model);
374  COINLIBAPI int COINLINKAGE Clp_getIterationCount(Clp_Simplex * model);
376  COINLIBAPI int COINLINKAGE Clp_isAbandoned(Clp_Simplex * model);
378  COINLIBAPI int COINLINKAGE Clp_isProvenOptimal(Clp_Simplex * model);
380  COINLIBAPI int COINLINKAGE Clp_isProvenPrimalInfeasible(Clp_Simplex * model);
382  COINLIBAPI int COINLINKAGE Clp_isProvenDualInfeasible(Clp_Simplex * model);
384  COINLIBAPI int COINLINKAGE Clp_isPrimalObjectiveLimitReached(Clp_Simplex * model) ;
386  COINLIBAPI int COINLINKAGE Clp_isDualObjectiveLimitReached(Clp_Simplex * model) ;
388  COINLIBAPI int COINLINKAGE Clp_isIterationLimitReached(Clp_Simplex * model);
390  COINLIBAPI double COINLINKAGE Clp_getObjSense(Clp_Simplex * model);
392  COINLIBAPI void COINLINKAGE Clp_setObjSense(Clp_Simplex * model, double objsen);
394  COINLIBAPI const double * COINLINKAGE Clp_getRowActivity(Clp_Simplex * model);
396  COINLIBAPI const double * COINLINKAGE Clp_getColSolution(Clp_Simplex * model);
397  COINLIBAPI void COINLINKAGE Clp_setColSolution(Clp_Simplex * model, const double * input);
399  COINLIBAPI const double * COINLINKAGE Clp_getRowPrice(Clp_Simplex * model);
401  COINLIBAPI const double * COINLINKAGE Clp_getReducedCost(Clp_Simplex * model);
403  COINLIBAPI const double* COINLINKAGE Clp_getRowLower(Clp_Simplex * model);
405  COINLIBAPI const double* COINLINKAGE Clp_getRowUpper(Clp_Simplex * model);
407  COINLIBAPI const double * COINLINKAGE Clp_getObjCoefficients(Clp_Simplex * model);
409  COINLIBAPI const double * COINLINKAGE Clp_getColLower(Clp_Simplex * model);
411  COINLIBAPI const double * COINLINKAGE Clp_getColUpper(Clp_Simplex * model);
413  COINLIBAPI double COINLINKAGE Clp_getObjValue(Clp_Simplex * model);
415  COINLIBAPI void COINLINKAGE Clp_printModel(Clp_Simplex * model, const char * prefix);
416  /* Small element value - elements less than this set to zero,
417  default is 1.0e-20 */
418  COINLIBAPI double COINLINKAGE Clp_getSmallElementValue(Clp_Simplex * model);
419  COINLIBAPI void COINLINKAGE Clp_setSmallElementValue(Clp_Simplex * model, double value);
426  COINLIBAPI void COINLINKAGE ClpSolve_setSpecialOption(Clp_Solve *, int which, int value, int extraInfo);
427  COINLIBAPI int COINLINKAGE ClpSolve_getSpecialOption(Clp_Solve *, int which);
428 
438  COINLIBAPI void COINLINKAGE ClpSolve_setSolveType(Clp_Solve *, int method, int extraInfo);
439  COINLIBAPI int COINLINKAGE ClpSolve_getSolveType(Clp_Solve *);
440 
447  COINLIBAPI void COINLINKAGE ClpSolve_setPresolveType(Clp_Solve *, int amount, int extraInfo);
448  COINLIBAPI int COINLINKAGE ClpSolve_getPresolveType(Clp_Solve *);
449 
450  COINLIBAPI int COINLINKAGE ClpSolve_getPresolvePasses(Clp_Solve *);
451  COINLIBAPI int COINLINKAGE ClpSolve_getExtraInfo(Clp_Solve *, int which);
452  COINLIBAPI void COINLINKAGE ClpSolve_setInfeasibleReturn(Clp_Solve *, int trueFalse);
453  COINLIBAPI int COINLINKAGE ClpSolve_infeasibleReturn(Clp_Solve *);
454 
455  COINLIBAPI int COINLINKAGE ClpSolve_doDual(Clp_Solve *);
456  COINLIBAPI void COINLINKAGE ClpSolve_setDoDual(Clp_Solve *, int doDual);
457 
458  COINLIBAPI int COINLINKAGE ClpSolve_doSingleton(Clp_Solve *);
459  COINLIBAPI void COINLINKAGE ClpSolve_setDoSingleton(Clp_Solve *, int doSingleton);
460 
461  COINLIBAPI int COINLINKAGE ClpSolve_doDoubleton(Clp_Solve *);
462  COINLIBAPI void COINLINKAGE ClpSolve_setDoDoubleton(Clp_Solve *, int doDoubleton);
463 
464  COINLIBAPI int COINLINKAGE ClpSolve_doTripleton(Clp_Solve *);
465  COINLIBAPI void COINLINKAGE ClpSolve_setDoTripleton(Clp_Solve *, int doTripleton);
466 
467  COINLIBAPI int COINLINKAGE ClpSolve_doTighten(Clp_Solve *);
468  COINLIBAPI void COINLINKAGE ClpSolve_setDoTighten(Clp_Solve *, int doTighten);
469 
470  COINLIBAPI int COINLINKAGE ClpSolve_doForcing(Clp_Solve *);
471  COINLIBAPI void COINLINKAGE ClpSolve_setDoForcing(Clp_Solve *, int doForcing);
472 
473  COINLIBAPI int COINLINKAGE ClpSolve_doImpliedFree(Clp_Solve *);
474  COINLIBAPI void COINLINKAGE ClpSolve_setDoImpliedFree(Clp_Solve *, int doImpliedFree);
475 
476  COINLIBAPI int COINLINKAGE ClpSolve_doDupcol(Clp_Solve *);
477  COINLIBAPI void COINLINKAGE ClpSolve_setDoDupcol(Clp_Solve *, int doDupcol);
478 
479  COINLIBAPI int COINLINKAGE ClpSolve_doDuprow(Clp_Solve *);
480  COINLIBAPI void COINLINKAGE ClpSolve_setDoDuprow(Clp_Solve *, int doDuprow);
481 
482  COINLIBAPI int COINLINKAGE ClpSolve_doSingletonColumn(Clp_Solve *);
483  COINLIBAPI void COINLINKAGE ClpSolve_setDoSingletonColumn(Clp_Solve *, int doSingleton);
484 
485  COINLIBAPI int COINLINKAGE ClpSolve_presolveActions(Clp_Solve *);
486  COINLIBAPI void COINLINKAGE ClpSolve_setPresolveActions(Clp_Solve *, int action);
487 
488  COINLIBAPI int COINLINKAGE ClpSolve_substitution(Clp_Solve *);
489  COINLIBAPI void COINLINKAGE ClpSolve_setSubstitution(Clp_Solve *, int value);
490 
492 #ifdef __cplusplus
493 }
494 #endif
495 #endif
COINLIBAPI void COINLINKAGE Clp_deleteColumns(Clp_Simplex *model, int number, const int *which)
Deletes columns.
COINLIBAPI double *COINLINKAGE Clp_columnLower(Clp_Simplex *model)
Column Lower.
This is a very simple class to guide algorithms.
Definition: ClpSolve.hpp:20
COINLIBAPI void COINLINKAGE Clp_dropNames(Clp_Simplex *model)
Drops names - makes lengthnames 0 and names empty.
COINLIBAPI const double *COINLINKAGE Clp_getObjCoefficients(Clp_Simplex *model)
Objective.
COINLIBAPI void COINLINKAGE Clp_problemName(Clp_Simplex *model, int maxNumberCharacters, char *array)
Fills in array with problem name.
COINLIBAPI int COINLINKAGE Clp_isPrimalObjectiveLimitReached(Clp_Simplex *model)
Is the given primal objective limit reached?
COINLIBAPI void COINLINKAGE Clp_copyinStatus(Clp_Simplex *model, const unsigned char *statusArray)
Copy in status vector.
COINLIBAPI void COINLINKAGE Clp_addColumns(Clp_Simplex *model, int number, const double *columnLower, const double *columnUpper, const double *objective, const int *columnStarts, const int *rows, const double *elements)
Add columns.
COINLIBAPI const double *COINLINKAGE Clp_getRowActivity(Clp_Simplex *model)
Primal row solution.
COINLIBAPI const double *COINLINKAGE Clp_getColLower(Clp_Simplex *model)
Column Lower.
COINLIBAPI int COINLINKAGE Clp_getNumElements(Clp_Simplex *model)
Number of elements in matrix.
COINLIBAPI void COINLINKAGE ClpSolve_delete(Clp_Solve *solve)
Destructor.
COINLIBAPI double COINLINKAGE Clp_maximumSeconds(Clp_Simplex *model)
Maximum time in seconds (from when set called)
COINLIBAPI void COINLINKAGE Clp_rowName(Clp_Simplex *model, int iRow, char *name)
Fill in array (at least lengthNames+1 long) with a row name.
COINLIBAPI int COINLINKAGE Clp_readMps(Clp_Simplex *model, const char *filename, int keepNames, int ignoreErrors)
Read an mps file from the given filename.
COINLIBAPI int COINLINKAGE Clp_numberIterations(Clp_Simplex *model)
Number of iterations.
COINLIBAPI int COINLINKAGE ClpSolve_doDual(Clp_Solve *)
COINLIBAPI int COINLINKAGE Clp_scalingFlag(Clp_Simplex *model)
Gets scalingFlag.
COINLIBAPI char *COINLINKAGE Clp_integerInformation(Clp_Simplex *model)
Integer information.
COINLIBAPI int COINLINKAGE Clp_initialPrimalSolve(Clp_Simplex *model)
Primal initial solve.
COINLIBAPI int COINLINKAGE Clp_algorithm(Clp_Simplex *model)
Current (or last) algorithm.
COINLIBAPI void COINLINKAGE ClpSolve_setPresolveActions(Clp_Solve *, int action)
COINLIBAPI int COINLINKAGE Clp_isProvenPrimalInfeasible(Clp_Simplex *model)
Is primal infeasiblity proven?
COINLIBAPI double *COINLINKAGE Clp_unboundedRay(Clp_Simplex *model)
COINLIBAPI int COINLINKAGE ClpSolve_doDupcol(Clp_Solve *)
COINLIBAPI void COINLINKAGE Clp_setColSolution(Clp_Simplex *model, const double *input)
COINLIBAPI Clp_Solve *COINLINKAGE ClpSolve_new()
Default constructor.
COINLIBAPI int COINLINKAGE Clp_numberColumns(Clp_Simplex *model)
Number of columns.
COINLIBAPI double COINLINKAGE Clp_dualObjectiveLimit(Clp_Simplex *model)
Dual objective limit.
COINLIBAPI double COINLINKAGE Clp_getObjValue(Clp_Simplex *model)
Objective value.
COINLIBAPI double *COINLINKAGE Clp_dualRowSolution(Clp_Simplex *model)
Dual row solution.
COINLIBAPI const double *COINLINKAGE Clp_getRowLower(Clp_Simplex *model)
Row lower.
COINLIBAPI int COINLINKAGE ClpSolve_doSingleton(Clp_Solve *)
COINLIBAPI void COINLINKAGE Clp_clearCallBack(Clp_Simplex *model)
Unset Callback function.
COINLIBAPI void COINLINKAGE ClpSolve_setDoDuprow(Clp_Solve *, int doDuprow)
COINLIBAPI void COINLINKAGE Clp_columnName(Clp_Simplex *model, int iColumn, char *name)
Fill in array (at least lengthNames+1 long) with a column name.
COINLIBAPI void COINLINKAGE Clp_setOptimizationDirection(Clp_Simplex *model, double value)
COINLIBAPI int COINLINKAGE Clp_restoreModel(Clp_Simplex *model, const char *fileName)
Restore model from file, returns 0 if success, deletes current model.
COINLIBAPI int COINLINKAGE ClpSolve_getPresolveType(Clp_Solve *)
COINLIBAPI double *COINLINKAGE Clp_rowLower(Clp_Simplex *model)
Row lower.
COINLIBAPI Clp_Simplex *COINLINKAGE Clp_newModel(void)
Default constructor.
COINLIBAPI int COINLINKAGE Clp_initialSolve(Clp_Simplex *model)
General solve algorithm which can do presolve.
COINLIBAPI int COINLINKAGE Clp_secondaryStatus(Clp_Simplex *model)
Secondary status of problem - may get extended 0 - none 1 - primal infeasible because dual limit reac...
COINLIBAPI double COINLINKAGE Clp_dualTolerance(Clp_Simplex *model)
Dual tolerance to use.
COINLIBAPI int COINLINKAGE Clp_numberRows(Clp_Simplex *model)
Number of rows.
COINLIBAPI void COINLINKAGE Clp_setMaximumIterations(Clp_Simplex *model, int value)
COINLIBAPI double *COINLINKAGE Clp_objective(Clp_Simplex *model)
Objective.
COINLIBAPI void COINLINKAGE Clp_setSecondaryStatus(Clp_Simplex *model, int status)
COINLIBAPI int COINLINKAGE Clp_isProvenDualInfeasible(Clp_Simplex *model)
Is dual infeasiblity proven?
COINLIBAPI void COINLINKAGE ClpSolve_setSubstitution(Clp_Solve *, int value)
COINLIBAPI void COINLINKAGE Clp_setObjSense(Clp_Simplex *model, double objsen)
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
COINLIBAPI const double *COINLINKAGE Clp_getElements(Clp_Simplex *model)
COINLIBAPI void COINLINKAGE Clp_setSmallElementValue(Clp_Simplex *model, double value)
COINLIBAPI double COINLINKAGE Clp_objectiveValue(Clp_Simplex *model)
Objective value.
COINLIBAPI int COINLINKAGE Clp_primalFeasible(Clp_Simplex *model)
If problem is primal feasible.
COINLIBAPI void COINLINKAGE Clp_chgRowLower(Clp_Simplex *model, const double *rowLower)
Change row lower bounds.
COINLIBAPI int COINLINKAGE ClpSolve_doDuprow(Clp_Solve *)
COINLIBAPI const double *COINLINKAGE Clp_getRowUpper(Clp_Simplex *model)
Row upper.
COINLIBAPI void COINLINKAGE Clp_setColumnStatus(Clp_Simplex *model, int sequence, int value)
COINLIBAPI const int *COINLINKAGE Clp_getVectorLengths(Clp_Simplex *model)
COINLIBAPI void COINLINKAGE ClpSolve_setSolveType(Clp_Solve *, int method, int extraInfo)
method: (see ClpSolve::SolveType) 0 - dual simplex 1 - primal simplex 2 - primal or sprint 3 - barrie...
COINLIBAPI int COINLINKAGE Clp_getNumRows(Clp_Simplex *model)
Number of rows.
COINLIBAPI double *COINLINKAGE Clp_columnUpper(Clp_Simplex *model)
Column Upper.
COINLIBAPI int COINLINKAGE Clp_primal(Clp_Simplex *model, int ifValuesPass)
Primal algorithm - see ClpSimplexPrimal.hpp for method.
COINLIBAPI unsigned char *COINLINKAGE Clp_statusArray(Clp_Simplex *model)
Return address of status array (char[numberRows+numberColumns])
COINLIBAPI int COINLINKAGE Clp_isAbandoned(Clp_Simplex *model)
Are there a numerical difficulties?
COINLIBAPI void COINLINKAGE Clp_chgColumnUpper(Clp_Simplex *model, const double *columnUpper)
Change column upper bounds.
COINLIBAPI double COINLINKAGE Clp_sumPrimalInfeasibilities(Clp_Simplex *model)
Sum of primal infeasibilities.
COINLIBAPI int COINLINKAGE Clp_isDualObjectiveLimitReached(Clp_Simplex *model)
Is the given dual objective limit reached?
COINLIBAPI const double *COINLINKAGE Clp_getRowPrice(Clp_Simplex *model)
Dual row solution.
COINLIBAPI int COINLINKAGE ClpSolve_getPresolvePasses(Clp_Solve *)
COINLIBAPI const double *COINLINKAGE Clp_getReducedCost(Clp_Simplex *model)
Reduced costs.
COINLIBAPI void COINLINKAGE Clp_chgObjCoefficients(Clp_Simplex *model, const double *objIn)
Change objective coefficients.
COINLIBAPI double *COINLINKAGE Clp_primalColumnSolution(Clp_Simplex *model)
Primal column solution.
COINLIBAPI const double *COINLINKAGE Clp_getColUpper(Clp_Simplex *model)
Column Upper.
COINLIBAPI void COINLINKAGE Clp_copyInIntegerInformation(Clp_Simplex *model, const char *information)
Copy in integer informations.
COINLIBAPI void COINLINKAGE ClpSolve_setSpecialOption(Clp_Solve *, int which, int value, int extraInfo)
COINLIBAPI void COINLINKAGE Clp_setPrimalTolerance(Clp_Simplex *model, double value)
COINLIBAPI void COINLINKAGE Clp_printModel(Clp_Simplex *model, const char *prefix)
Print model for debugging purposes.
COINLIBAPI int COINLINKAGE ClpSolve_substitution(Clp_Solve *)
COINLIBAPI double *COINLINKAGE Clp_rowUpper(Clp_Simplex *model)
Row upper.
COINLIBAPI int COINLINKAGE Clp_lengthNames(Clp_Simplex *model)
length of names (0 means no names0
COINLIBAPI int COINLINKAGE Clp_perturbation(Clp_Simplex *model)
Perturbation: 50 - switch on perturbation 100 - auto perturb if takes too long (1.0e-6 largest nonzero) 101 - we are perturbed 102 - don't try perturbing again default is 100 others are for playing.
COINLIBAPI const int *COINLINKAGE Clp_getIndices(Clp_Simplex *model)
COINLIBAPI const double *COINLINKAGE Clp_getColSolution(Clp_Simplex *model)
Primal column solution.
COINLIBAPI double COINLINKAGE Clp_dualBound(Clp_Simplex *model)
Dual bound.
COINLIBAPI void COINLINKAGE Clp_setProblemStatus(Clp_Simplex *model, int problemStatus)
Set problem status.
COINLIBAPI int COINLINKAGE ClpSolve_doSingletonColumn(Clp_Solve *)
COINLIBAPI void COINLINKAGE Clp_deleteIntegerInformation(Clp_Simplex *model)
Drop integer informations.
COINLIBAPI int COINLINKAGE Clp_hitMaximumIterations(Clp_Simplex *model)
Returns true if hit maximum iterations (or time)
COINLIBAPI void COINLINKAGE Clp_setDualTolerance(Clp_Simplex *model, double value)
COINLIBAPI double COINLINKAGE Clp_getSmallElementValue(Clp_Simplex *model)
COINLIBAPI int COINLINKAGE ClpSolve_doTripleton(Clp_Solve *)
COINLIBAPI double COINLINKAGE Clp_getObjSense(Clp_Simplex *model)
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
COINLIBAPI int COINLINKAGE Clp_saveModel(Clp_Simplex *model, const char *fileName)
Save model to file, returns 0 if success.
COINLIBAPI int COINLINKAGE Clp_getColumnStatus(Clp_Simplex *model, int sequence)
COINLIBAPI void COINLINKAGE Clp_setAlgorithm(Clp_Simplex *model, int value)
Set algorithm.
COINLIBAPI void COINLINKAGE ClpSolve_setDoDoubleton(Clp_Solve *, int doDoubleton)
COINLIBAPI void COINLINKAGE Clp_scaling(Clp_Simplex *model, int mode)
Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic(later) ...
COINLIBAPI void *COINLINKAGE Clp_getUserPointer(Clp_Simplex *model)
COINLIBAPI int COINLINKAGE Clp_initialDualSolve(Clp_Simplex *model)
Dual initial solve.
COINLIBAPI void COINLINKAGE Clp_loadQuadraticObjective(Clp_Simplex *model, const int numberColumns, const CoinBigIndex *start, const int *column, const double *element)
COINLIBAPI void COINLINKAGE Clp_resize(Clp_Simplex *model, int newNumberRows, int newNumberColumns)
Resizes rim part of model.
COINLIBAPI int maximumIterations(Clp_Simplex *model)
Maximum number of iterations.
COINLIBAPI void COINLINKAGE Clp_checkSolution(Clp_Simplex *model)
Just check solution (for external use) - sets sum of infeasibilities etc.
COINLIBAPI int COINLINKAGE ClpSolve_doTighten(Clp_Solve *)
COINLIBAPI double *COINLINKAGE Clp_dualColumnSolution(Clp_Simplex *model)
Reduced costs.
COINLIBAPI void COINLINKAGE Clp_chgColumnLower(Clp_Simplex *model, const double *columnLower)
Change column lower bounds.
COINLIBAPI int COINLINKAGE Clp_initialSolveWithOptions(Clp_Simplex *model, Clp_Solve *)
Pass solve options.
COINLIBAPI void COINLINKAGE ClpSolve_setDoSingleton(Clp_Solve *, int doSingleton)
COINLIBAPI void COINLINKAGE Clp_chgRowUpper(Clp_Simplex *model, const double *rowUpper)
Change row upper bounds.
COINLIBAPI void COINLINKAGE ClpSolve_setDoSingletonColumn(Clp_Solve *, int doSingleton)
COINLIBAPI void COINLINKAGE Clp_copyNames(Clp_Simplex *model, const char *const *rowNames, const char *const *columnNames)
Copies in names.
COINLIBAPI const CoinBigIndex *COINLINKAGE Clp_getVectorStarts(Clp_Simplex *model)
COINLIBAPI double COINLINKAGE Clp_sumDualInfeasibilities(Clp_Simplex *model)
Sum of dual infeasibilities.
COINLIBAPI int COINLINKAGE ClpSolve_doImpliedFree(Clp_Solve *)
COINLIBAPI double *COINLINKAGE Clp_infeasibilityRay(Clp_Simplex *model)
Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use free() on these arrays...
COINLIBAPI int COINLINKAGE Clp_numberDualInfeasibilities(Clp_Simplex *model)
Number of dual infeasibilities.
COINLIBAPI int COINLINKAGE Clp_statusExists(Clp_Simplex *model)
See if status array exists (partly for OsiClp)
COINLIBAPI int COINLINKAGE Clp_dual(Clp_Simplex *model, int ifValuesPass)
Dual algorithm - see ClpSimplexDual.hpp for method.
COINLIBAPI double *COINLINKAGE Clp_primalRowSolution(Clp_Simplex *model)
Primal row solution.
COINLIBAPI void COINLINKAGE Clp_setMaximumSeconds(Clp_Simplex *model, double value)
COINLIBAPI void COINLINKAGE Clp_setDualBound(Clp_Simplex *model, double value)
COINLIBAPI void COINLINKAGE Clp_setUserPointer(Clp_Simplex *model, void *pointer)
User pointer for whatever reason.
COINLIBAPI int COINLINKAGE ClpSolve_infeasibleReturn(Clp_Solve *)
COINLIBAPI void COINLINKAGE Clp_setLogLevel(Clp_Simplex *model, int value)
Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - ver...
COINLIBAPI void COINLINKAGE ClpSolve_setDoTripleton(Clp_Solve *, int doTripleton)
COINLIBAPI void COINLINKAGE ClpSolve_setInfeasibleReturn(Clp_Solve *, int trueFalse)
COINLIBAPI void COINLINKAGE Clp_deleteModel(Clp_Simplex *model)
Destructor.
COINLIBAPI double COINLINKAGE Clp_objectiveOffset(Clp_Simplex *model)
Objective offset.
COINLIBAPI int COINLINKAGE Clp_status(Clp_Simplex *model)
Status of problem: 0 - optimal 1 - primal infeasible 2 - dual infeasible 3 - stopped on iterations et...
COINLIBAPI int COINLINKAGE Clp_getNumCols(Clp_Simplex *model)
Number of columns.
COINLIBAPI void COINLINKAGE Clp_registerCallBack(Clp_Simplex *model, clp_callback userCallBack)
Pass in Callback function.
COINLIBAPI int COINLINKAGE Clp_getRowStatus(Clp_Simplex *model, int sequence)
COINLIBAPI int COINLINKAGE Clp_logLevel(Clp_Simplex *model)
COINLIBAPI void COINLINKAGE Clp_setInfeasibilityCost(Clp_Simplex *model, double value)
COINLIBAPI int COINLINKAGE Clp_getIterationCount(Clp_Simplex *model)
Number of iterations.
COINLIBAPI int COINLINKAGE Clp_initialBarrierNoCrossSolve(Clp_Simplex *model)
Barrier initial solve, no crossover.
COINLIBAPI int COINLINKAGE Clp_crash(Clp_Simplex *model, double gap, int pivot)
Crash - at present just aimed at dual, returns -2 if dual preferred and crash basis created -1 if dua...
COINLIBAPI void COINLINKAGE ClpSolve_setDoDual(Clp_Solve *, int doDual)
COINLIBAPI void COINLINKAGE ClpSolve_setDoImpliedFree(Clp_Solve *, int doImpliedFree)
COINLIBAPI int COINLINKAGE Clp_isProvenOptimal(Clp_Simplex *model)
Is optimality proven?
COINLIBAPI int COINLINKAGE ClpSolve_getSolveType(Clp_Solve *)
void Clp_Solve
COINLIBAPI void COINLINKAGE Clp_setNumberIterations(Clp_Simplex *model, int numberIterations)
COINLIBAPI int COINLINKAGE ClpSolve_doDoubleton(Clp_Solve *)
COINLIBAPI void COINLINKAGE Clp_idiot(Clp_Simplex *model, int tryhard)
Solve the problem with the idiot code.
COINLIBAPI void COINLINKAGE ClpSolve_setPresolveType(Clp_Solve *, int amount, int extraInfo)
amount: (see ClpSolve::PresolveType) 0 - presolve on 1 - presolve off 2 - presolve number 3 - presolv...
COINLIBAPI void COINLINKAGE ClpSolve_setDoForcing(Clp_Solve *, int doForcing)
COINLIBAPI int COINLINKAGE Clp_numberPrimalInfeasibilities(Clp_Simplex *model)
Number of primal infeasibilities.
COINLIBAPI void COINLINKAGE ClpSolve_setDoDupcol(Clp_Solve *, int doDupcol)
COINLIBAPI int COINLINKAGE Clp_setProblemName(Clp_Simplex *model, int maxNumberCharacters, char *array)
COINLIBAPI void COINLINKAGE Clp_deleteRows(Clp_Simplex *model, int number, const int *which)
Deletes rows.
COINLIBAPI int COINLINKAGE Clp_initialBarrierSolve(Clp_Simplex *model)
Barrier initial solve.
COINLIBAPI int COINLINKAGE ClpSolve_presolveActions(Clp_Solve *)
COINLIBAPI int COINLINKAGE Clp_dualFeasible(Clp_Simplex *model)
If problem is dual feasible.
COINLIBAPI void COINLINKAGE Clp_setRowStatus(Clp_Simplex *model, int sequence, int value)
COINLIBAPI void COINLINKAGE ClpSolve_setDoTighten(Clp_Solve *, int doTighten)
COINLIBAPI int COINLINKAGE ClpSolve_getExtraInfo(Clp_Solve *, int which)
COINLIBAPI double COINLINKAGE Clp_primalTolerance(Clp_Simplex *model)
Primal tolerance to use.
COINLIBAPI int COINLINKAGE ClpSolve_doForcing(Clp_Solve *)
COINLIBAPI void COINLINKAGE Clp_setObjectiveOffset(Clp_Simplex *model, double value)
COINLIBAPI int COINLINKAGE ClpSolve_getSpecialOption(Clp_Solve *, int which)
COINLIBAPI double COINLINKAGE Clp_optimizationDirection(Clp_Simplex *model)
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
COINLIBAPI void COINLINKAGE Clp_setPerturbation(Clp_Simplex *model, int value)
COINLIBAPI void COINLINKAGE Clp_setDualObjectiveLimit(Clp_Simplex *model, double value)
COINLIBAPI void COINLINKAGE Clp_addRows(Clp_Simplex *model, int number, const double *rowLower, const double *rowUpper, const int *rowStarts, const int *columns, const double *elements)
Add rows.
COINLIBAPI void COINLINKAGE Clp_loadProblem(Clp_Simplex *model, const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub)
Loads a problem (the constraints on the rows are given by lower and upper bounds).
COINLIBAPI int COINLINKAGE Clp_isIterationLimitReached(Clp_Simplex *model)
Iteration limit reached?
COINLIBAPI double COINLINKAGE Clp_infeasibilityCost(Clp_Simplex *model)
Infeasibility cost.