Cbc  2.8.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Cbc_C_Interface.h
Go to the documentation of this file.
1 /* $Id: Cbc_C_Interface.h 1902 2013-04-10 16:58:16Z stefan $ */
2 /*
3  Copyright (C) 2004 International Business Machines Corporation and others.
4  All Rights Reserved.
5 
6  This code is licensed under the terms of the Eclipse Public License (EPL).
7 */
8 #ifndef CbcModelC_H
9 #define CbcModelC_H
10 
11 /* include all defines and ugly stuff */
12 #include "Coin_C_defines.h"
13 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
32 
34  COINLIBAPI double COINLINKAGE Cbc_getVersion()
35  ;
37  COINLIBAPI Cbc_Model * COINLINKAGE
38  Cbc_newModel()
39  ;
41  COINLIBAPI void COINLINKAGE
42  Cbc_deleteModel(Cbc_Model * model)
43  ;
48  /* Loads a problem (the constraints on the
49  rows are given by lower and upper bounds). If a pointer is NULL then the
50  following values are the default:
51  <ul>
52  <li> <code>colub</code>: all columns have upper bound infinity
53  <li> <code>collb</code>: all columns have lower bound 0
54  <li> <code>rowub</code>: all rows have upper bound infinity
55  <li> <code>rowlb</code>: all rows have lower bound -infinity
56  <li> <code>obj</code>: all variables have 0 objective coefficient
57  </ul>
58 
59  Just like the other loadProblem() method except that the matrix is
60  given in a standard column major ordered format (without gaps).
61  */
62  COINLIBAPI void COINLINKAGE
63  Cbc_loadProblem (Cbc_Model * model, const int numcols, const int numrows,
64  const CoinBigIndex * start, const int* index,
65  const double* value,
66  const double* collb, const double* colub,
67  const double* obj,
68  const double* rowlb, const double* rowub)
69  ;
71  COINLIBAPI int COINLINKAGE
72  Cbc_readMps(Cbc_Model * model, const char *filename)
73  ;
75  COINLIBAPI void COINLINKAGE
76  Cbc_writeMps(Cbc_Model * model, const char *filename)
77  ;
79  COINLIBAPI char * COINLINKAGE
80  Cbc_integerInformation(Cbc_Model * model)
81  ;
83  COINLIBAPI void COINLINKAGE
84  Cbc_copyInIntegerInformation(Cbc_Model * model, const char * information)
85  ;
87  COINLIBAPI void COINLINKAGE
88  Cbc_deleteIntegerInformation(Cbc_Model * model)
89  ;
91  COINLIBAPI void COINLINKAGE
92  Cbc_resize (Cbc_Model * model, int newNumberRows, int newNumberColumns)
93  ;
95  COINLIBAPI void COINLINKAGE
96  Cbc_deleteRows(Cbc_Model * model, int number, const int * which)
97  ;
99  COINLIBAPI void COINLINKAGE
100  Cbc_addRows(Cbc_Model * model, const int number, const double * rowLower,
101  const double * rowUpper,
102  const int * rowStarts, const int * columns,
103  const double * elements)
104  ;
105 
107  COINLIBAPI void COINLINKAGE
108  Cbc_deleteColumns(Cbc_Model * model, int number, const int * which)
109  ;
111  COINLIBAPI void COINLINKAGE
112  Cbc_addColumns(Cbc_Model * model, int number, const double * columnLower,
113  const double * columnUpper,
114  const double * objective,
115  const int * columnStarts, const int * rows,
116  const double * elements);
118  COINLIBAPI void COINLINKAGE
119  Cbc_dropNames(Cbc_Model * model)
120  ;
122  COINLIBAPI void COINLINKAGE
123  Cbc_copyNames(Cbc_Model * model, const char * const * rowNamesIn,
124  const char * const * columnNamesIn)
125  ;
126 
131  COINLIBAPI int COINLINKAGE
132  Cbc_numberRows(Cbc_Model * model)
133  ;
135  COINLIBAPI int COINLINKAGE
136  Cbc_numberColumns(Cbc_Model * model)
137  ;
139  COINLIBAPI double COINLINKAGE
140  Cbc_primalTolerance(Cbc_Model * model)
141  ;
142  COINLIBAPI void COINLINKAGE
143  Cbc_setPrimalTolerance(Cbc_Model * model, double value)
144  ;
146  COINLIBAPI double COINLINKAGE
147  Cbc_dualTolerance(Cbc_Model * model)
148  ;
149  COINLIBAPI void COINLINKAGE
150  Cbc_setDualTolerance(Cbc_Model * model, double value)
151  ;
152  /* Integer tolerance to use */
153  COINLIBAPI double COINLINKAGE
154  Cbc_integerTolerance(Cbc_Model * model)
155  ;
156  COINLIBAPI void COINLINKAGE
157  Cbc_setIntegerTolerance(Cbc_Model * model, double value)
158  ;
160  COINLIBAPI double COINLINKAGE
161  Cbc_dualObjectiveLimit(Cbc_Model * model)
162  ;
163  COINLIBAPI void COINLINKAGE
164  Cbc_setDualObjectiveLimit(Cbc_Model * model, double value)
165  ;
167  COINLIBAPI double COINLINKAGE
168  Cbc_objectiveOffset(Cbc_Model * model)
169  ;
170  COINLIBAPI void COINLINKAGE
171  Cbc_setObjectiveOffset(Cbc_Model * model, double value)
172  ;
174  COINLIBAPI void COINLINKAGE
175  Cbc_problemName(Cbc_Model * model, int maxNumberCharacters, char * array)
176  ;
181  COINLIBAPI int COINLINKAGE
182  Cbc_setProblemName(Cbc_Model * model, int maxNumberCharacters, char * array)
183  ;
185  COINLIBAPI int COINLINKAGE
186  Cbc_numberIterations(Cbc_Model * model)
187  ;
188  COINLIBAPI void COINLINKAGE
189  Cbc_setNumberIterations(Cbc_Model * model, int numberIterations)
190  ;
192  COINLIBAPI int COINLINKAGE
193  Cbc_maximumIterations(Cbc_Model * model)
194  ;
195  COINLIBAPI void COINLINKAGE
196  Cbc_setMaximumIterations(Cbc_Model * model, int value)
197  ;
199  COINLIBAPI int COINLINKAGE
200  Cbc_maxNumNode(Cbc_Model * model)
201  ;
202  COINLIBAPI void COINLINKAGE
203  Cbc_setMaxNumNode(Cbc_Model * model, int value)
204  ;
205  /* Maximum number of solutions */
206  COINLIBAPI int COINLINKAGE
207  Cbc_maxNumSol(Cbc_Model * model)
208  ;
209  COINLIBAPI void COINLINKAGE
210  Cbc_setMaxNumSol(Cbc_Model * model, int value)
211  ;
213  COINLIBAPI double COINLINKAGE
214  Cbc_maximumSeconds(Cbc_Model * model)
215  ;
216  COINLIBAPI void COINLINKAGE
217  Cbc_setMaximumSeconds(Cbc_Model * model, double value)
218  ;
220  COINLIBAPI int COINLINKAGE
221  Cbc_hitMaximumIterations(Cbc_Model * model)
222  ;
230  COINLIBAPI int COINLINKAGE
231  Cbc_status(Cbc_Model * model)
232  ;
234  COINLIBAPI void COINLINKAGE
235  Cbc_setProblemStatus(Cbc_Model * model, int problemStatus)
236  ;
244  COINLIBAPI int COINLINKAGE
245  Cbc_secondaryStatus(Cbc_Model * model)
246  ;
247  COINLIBAPI void COINLINKAGE
248  Cbc_setSecondaryStatus(Cbc_Model * model, int status)
249  ;
251  COINLIBAPI double COINLINKAGE
252  Cbc_optimizationDirection(Cbc_Model * model)
253  ;
254  COINLIBAPI void COINLINKAGE
255  Cbc_setOptimizationDirection(Cbc_Model * model, double value)
256  ;
258  COINLIBAPI double * COINLINKAGE
259  Cbc_primalRowSolution(Cbc_Model * model)
260  ;
262  COINLIBAPI double * COINLINKAGE
263  Cbc_primalColumnSolution(Cbc_Model * model)
264  ;
266  COINLIBAPI double * COINLINKAGE
267  Cbc_dualRowSolution(Cbc_Model * model)
268  ;
270  COINLIBAPI double * COINLINKAGE
271  Cbc_dualColumnSolution(Cbc_Model * model)
272  ;
274  COINLIBAPI double* COINLINKAGE
275  Cbc_rowLower(Cbc_Model * model)
276  ;
278  COINLIBAPI double* COINLINKAGE
279  Cbc_rowUpper(Cbc_Model * model)
280  ;
282  COINLIBAPI double * COINLINKAGE
283  Cbc_objective(Cbc_Model * model)
284  ;
286  COINLIBAPI double * COINLINKAGE
287  Cbc_columnLower(Cbc_Model * model)
288  ;
290  COINLIBAPI double * COINLINKAGE
291  Cbc_columnUpper(Cbc_Model * model)
292  ;
294  COINLIBAPI int COINLINKAGE
295  Cbc_getNumElements(Cbc_Model * model)
296  ;
298  COINLIBAPI const CoinBigIndex * COINLINKAGE
299  Cbc_getVectorStarts(Cbc_Model * model)
300  ;
302  COINLIBAPI const int * COINLINKAGE
303  Cbc_getIndices(Cbc_Model * model)
304  ;
306  COINLIBAPI const int * COINLINKAGE
307  Cbc_getVectorLengths(Cbc_Model * model)
308  ;
310  COINLIBAPI const double * COINLINKAGE
311  Cbc_getElements(Cbc_Model * model)
312  ;
314  COINLIBAPI double COINLINKAGE
315  Cbc_objectiveValue(Cbc_Model * model)
316  ;
319  COINLIBAPI double * COINLINKAGE
320  Cbc_infeasibilityRay(Cbc_Model * model)
321  ;
322  COINLIBAPI double * COINLINKAGE
323  Cbc_unboundedRay(Cbc_Model * model)
324  ;
326  COINLIBAPI int COINLINKAGE
327  Cbc_statusExists(Cbc_Model * model)
328  ;
330  COINLIBAPI void COINLINKAGE
331  Cbc_getBasisStatus(Cbc_Model * model, int * cstat, int * rstat)
332  ;
334  COINLIBAPI void COINLINKAGE
335  Cbc_setBasisStatus(Cbc_Model * model, int * cstat, int * rstat)
336  ;
337 
339  COINLIBAPI void COINLINKAGE
340  Cbc_setUserPointer (Cbc_Model * model, void * pointer)
341  ;
342  COINLIBAPI void * COINLINKAGE
343  Cbc_getUserPointer (Cbc_Model * model)
344  ;
350  COINLIBAPI void COINLINKAGE
351  Cbc_registerCallBack(Cbc_Model * model,
352  cbc_callback userCallBack)
353  ;
355  COINLIBAPI void COINLINKAGE
356  Cbc_clearCallBack(Cbc_Model * model)
357  ;
366  COINLIBAPI void COINLINKAGE
367  Cbc_setLogLevel(Cbc_Model * model, int value)
368  ;
369  COINLIBAPI int COINLINKAGE
370  Cbc_logLevel(Cbc_Model * model)
371  ;
373  COINLIBAPI int COINLINKAGE
374  Cbc_lengthNames(Cbc_Model * model)
375  ;
377  COINLIBAPI void COINLINKAGE
378  Cbc_rowName(Cbc_Model * model, int iRow, char * name)
379  ;
381  COINLIBAPI void COINLINKAGE
382  Cbc_columnName(Cbc_Model * model, int iColumn, char * name)
383  ;
384 
393  COINLIBAPI int COINLINKAGE
394  Cbc_initialSolve(Cbc_Model * model)
395  ;
396  /* General solve algorithm which can do presolve.
397  See CbcModel.hpp for options
398  */
399  COINLIBAPI int COINLINKAGE
400  Cbc_branchAndBound(Cbc_Model * model)
401  ;
403  COINLIBAPI void COINLINKAGE
404  Cbc_scaling(Cbc_Model * model, int mode)
405  ;
407  COINLIBAPI int COINLINKAGE
408  Cbc_scalingFlag(Cbc_Model * model)
409  ;
424  COINLIBAPI int COINLINKAGE
425  Cbc_crash(Cbc_Model * model, double gap, int pivot)
426  ;
433  COINLIBAPI int COINLINKAGE
434  Cbc_primalFeasible(Cbc_Model * model)
435  ;
437  COINLIBAPI int COINLINKAGE
438  Cbc_dualFeasible(Cbc_Model * model)
439  ;
441  COINLIBAPI double COINLINKAGE
442  Cbc_dualBound(Cbc_Model * model)
443  ;
444  COINLIBAPI void COINLINKAGE
445  Cbc_setDualBound(Cbc_Model * model, double value)
446  ;
448  COINLIBAPI double COINLINKAGE
449  Cbc_infeasibilityCost(Cbc_Model * model)
450  ;
451  COINLIBAPI void COINLINKAGE
452  Cbc_setInfeasibilityCost(Cbc_Model * model, double value)
453  ;
462  COINLIBAPI int COINLINKAGE
463  Cbc_perturbation(Cbc_Model * model)
464  ;
465  COINLIBAPI void COINLINKAGE
466  Cbc_setPerturbation(Cbc_Model * model, int value)
467  ;
469  COINLIBAPI int COINLINKAGE
470  Cbc_algorithm(Cbc_Model * model)
471  ;
473  COINLIBAPI void COINLINKAGE
474  Cbc_setAlgorithm(Cbc_Model * model, int value)
475  ;
477  COINLIBAPI double COINLINKAGE
478  Cbc_sumDualInfeasibilities(Cbc_Model * model)
479  ;
481  COINLIBAPI int COINLINKAGE
482  Cbc_numberDualInfeasibilities(Cbc_Model * model)
483  ;
485  COINLIBAPI double COINLINKAGE
486  Cbc_sumPrimalInfeasibilities(Cbc_Model * model)
487  ;
489  COINLIBAPI int COINLINKAGE
490  Cbc_numberPrimalInfeasibilities(Cbc_Model * model)
491  ;
498  COINLIBAPI int COINLINKAGE
499  Cbc_saveModel(Cbc_Model * model, const char * fileName)
500  ;
503  COINLIBAPI int COINLINKAGE
504  Cbc_restoreModel(Cbc_Model * model, const char * fileName)
505  ;
506 
509  COINLIBAPI void COINLINKAGE
510  Cbc_checkSolution(Cbc_Model * model)
511  ;
514  /******************** End of most useful part **************/
518  COINLIBAPI int COINLINKAGE
519  Cbc_getNumRows(Cbc_Model * model)
520  ;
522  COINLIBAPI int COINLINKAGE
523  Cbc_getNumCols(Cbc_Model * model)
524  ;
526  COINLIBAPI int COINLINKAGE
527  Cbc_getIterationCount(Cbc_Model * model)
528  ;
530  COINLIBAPI int COINLINKAGE
531  Cbc_isAbandoned(Cbc_Model * model)
532  ;
534  COINLIBAPI int COINLINKAGE
535  Cbc_isProvenOptimal(Cbc_Model * model)
536  ;
538  COINLIBAPI int COINLINKAGE
539  Cbc_isProvenPrimalInfeasible(Cbc_Model * model)
540  ;
542  COINLIBAPI int COINLINKAGE
543  Cbc_isProvenDualInfeasible(Cbc_Model * model)
544  ;
546  COINLIBAPI int COINLINKAGE
547  Cbc_isPrimalObjectiveLimitReached(Cbc_Model * model)
548  ;
550  COINLIBAPI int COINLINKAGE
551  Cbc_isDualObjectiveLimitReached(Cbc_Model * model)
552  ;
554  COINLIBAPI int COINLINKAGE
555  Cbc_isIterationLimitReached(Cbc_Model * model)
556  ;
558  COINLIBAPI double COINLINKAGE
559  Cbc_getObjSense(Cbc_Model * model)
560  ;
562  COINLIBAPI const double * COINLINKAGE
563  Cbc_getRowActivity(Cbc_Model * model)
564  ;
566  COINLIBAPI const double * COINLINKAGE
567  Cbc_getColSolution(Cbc_Model * model)
568  ;
569  COINLIBAPI void COINLINKAGE
570  Cbc_setColSolution(Cbc_Model * model, const double * input)
571  ;
573  COINLIBAPI const double * COINLINKAGE
574  Cbc_getRowPrice(Cbc_Model * model)
575  ;
577  COINLIBAPI const double * COINLINKAGE
578  Cbc_getReducedCost(Cbc_Model * model)
579  ;
581  COINLIBAPI const double* COINLINKAGE
582  Cbc_getRowLower(Cbc_Model * model)
583  ;
585  COINLIBAPI const double* COINLINKAGE
586  Cbc_getRowUpper(Cbc_Model * model)
587  ;
589  COINLIBAPI const double * COINLINKAGE
590  Cbc_getObjCoefficients(Cbc_Model * model)
591  ;
593  COINLIBAPI const double * COINLINKAGE
594  Cbc_getColLower(Cbc_Model * model)
595  ;
597  COINLIBAPI const double * COINLINKAGE
598  Cbc_getColUpper(Cbc_Model * model)
599  ;
601  COINLIBAPI double COINLINKAGE
602  Cbc_getObjValue(Cbc_Model * model)
603  ;
605  COINLIBAPI void COINLINKAGE
606  Cbc_printModel(Cbc_Model * model, const char * argPrefix)
607  ;
609  COINLIBAPI int COINLINKAGE
610  Cbc_isInteger(Cbc_Model * model, int i)
611  ;
613  COINLIBAPI double COINLINKAGE
614  Cbc_cpuTime(Cbc_Model * model)
615  ;
617  COINLIBAPI int COINLINKAGE
618  Cbc_getNodeCount(Cbc_Model * model)
619  ;
621  COINLIBAPI Cbc_Model * COINLINKAGE
622  Cbc_clone(Cbc_Model * model)
623  ;
625  COINLIBAPI Cbc_Model * COINLINKAGE
626  Cbc_setContinuous(Cbc_Model * model, int iColumn)
627  ;
629  COINLIBAPI void COINLINKAGE
630  Cbc_addSOS_Dense(Cbc_Model * model, int numObjects, const int * len,
631  const int * const * which, const double * weights, const int type)
632  ;
634  COINLIBAPI void COINLINKAGE
635  Cbc_addSOS_Sparse(Cbc_Model * model, const int * rowStarts,
636  const int * rowIndices, const double * weights, const int type)
637  ;
639  COINLIBAPI void COINLINKAGE
640  Cbc_deleteObjects(Cbc_Model * model)
641  ;
643  COINLIBAPI void COINLINKAGE
644  Cbc_printSolution(Cbc_Model * model)
645  ;
647  COINLIBAPI int COINLINKAGE
648  Cbc_initialDualSolve(Cbc_Model * model)
649  ;
651  COINLIBAPI int COINLINKAGE
652  Cbc_initialPrimalSolve(Cbc_Model * model)
653  ;
655  COINLIBAPI int COINLINKAGE
656  Cbc_dual(Cbc_Model * model, int ifValuesPass)
657  ;
659  COINLIBAPI int COINLINKAGE
660  Cbc_primal(Cbc_Model * model, int ifValuesPass)
661  ;
663 #ifdef __cplusplus
664 }
665 #endif
666 #endif
COINLIBAPI void COINLINKAGE Cbc_addSOS_Sparse(Cbc_Model *model, const int *rowStarts, const int *rowIndices, const double *weights, const int type)
Add SOS constraints to the model using row-order matrix.
COINLIBAPI void COINLINKAGE Cbc_addColumns(Cbc_Model *model, int number, const double *columnLower, const double *columnUpper, const double *objective, const int *columnStarts, const int *rows, const double *elements)
Add columns.
COINLIBAPI void COINLINKAGE Cbc_addSOS_Dense(Cbc_Model *model, int numObjects, const int *len, const int *const *which, const double *weights, const int type)
Add SOS constraints to the model using dense matrix.
COINLIBAPI void COINLINKAGE Cbc_loadProblem(Cbc_Model *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)
COINLIBAPI void COINLINKAGE Cbc_copyNames(Cbc_Model *model, const char *const *rowNamesIn, const char *const *columnNamesIn)
Copies in names.
COINLIBAPI Cbc_Model * COINLINKAGE
Default Cbc_Model constructor.
COINLIBAPI void COINLINKAGE Cbc_registerCallBack(Cbc_Model *model, cbc_callback userCallBack)
Pass in Callback function.
COINLIBAPI void COINLINKAGE Cbc_addRows(Cbc_Model *model, const int number, const double *rowLower, const double *rowUpper, const int *rowStarts, const int *columns, const double *elements)
Add rows.
COINLIBAPI double COINLINKAGE Cbc_getVersion()
Version.