1 #ifndef ICbcModel_H
2 #define ICbcModel_H
3 
4 //#define NPY_NO_DEPRECATED_API
5 
6 //#include "ClpModel.hpp"
7 #include "ClpPackedMatrix.hpp"
8 #include "Python.h"
9 #include <numpy/arrayobject.h>
10 #include "CoinFinite.hpp"
11 #include "CoinPragma.hpp"
12 #include "CbcModel.hpp"
13 #include "Python.h"
14 #include <numpy/arrayobject.h>
15 #include "OsiClpSolverInterface.hpp"
16 #include "ICbcNode.hpp"
17 //#include "CbcSolver.hpp"
18 //#include "CbcCompareUser.hpp"
19 
20 class ICbcModel;
21 typedef int (*runTest_t)(void *instance, ICbcNode * x, ICbcNode * y);
22 typedef bool (*runNewSolution_t)(void *instance,ICbcModel * model,
23                        double objectiveAtContinuous,
24                        int numberInfeasibilitiesAtContinuous);
25 typedef int (*runEvery1000Nodes_t)(void *instance,
26                             ICbcModel * model,int numberNodes);
27 
28 
29 
30 class ICbcModel : public CbcModel{
31 public:
32     ICbcModel(OsiClpSolverInterface&);
33     PyObject * getPrimalVariableSolution();
34 
35     void setNodeCompare(PyObject* obj,
36                            runTest_t runTest, runNewSolution_t runNewSolution,
37                            runEvery1000Nodes_t runEvery1000Nodes);
38     int cbcMain();
39 };
40 
41 
42 #endif
43