1 #include "Python.h"
2 #include <iostream>
3 using namespace std;
4 
5 #include "ClpPrimalColumnPivot.hpp"
6 #include "CoinIndexedVector.hpp"
7 #include "IClpSimplex.hpp"
8 //#include "ClpSimplex.hpp"
9 #include "ClpFactorization.hpp"
10 
11 typedef int (*runPivotColumn_t)(void *instance, CoinIndexedVector*,CoinIndexedVector*
12 					  ,CoinIndexedVector*,CoinIndexedVector*,CoinIndexedVector*);
13 
14 typedef ClpPrimalColumnPivot* (*runClone_t)(void *instance, bool copyData);
15 
16 typedef void (*runSaveWeights_t)(void *instance, IClpSimplex * model,int mode);
17 
18 
19 
20 class CppClpPrimalColumnPivotBase : public ClpPrimalColumnPivot
21 {
22 public:
23   	PyObject *obj;
24   	runPivotColumn_t runPivotColumn;
25 	runClone_t runClone;
26 	runSaveWeights_t runSaveWeights;
27 
28 	//IClpSimplex model_;
29 
30   	CppClpPrimalColumnPivotBase(PyObject *obj, runPivotColumn_t ,
31 							 runClone_t , runSaveWeights_t );
32   	virtual ~CppClpPrimalColumnPivotBase();
33 
34 	virtual ClpPrimalColumnPivot * clone(bool copyData = true) const;
35 	//virtual void saveWeights(IClpSimplex * model,int mode);
36   	virtual void saveWeights(ClpSimplex * model,int mode);
37   	virtual int pivotColumn(CoinIndexedVector * updates,
38 			  CoinIndexedVector * spareRow1,
39 			  CoinIndexedVector * spareRow2,
40 			  CoinIndexedVector * spareColumn1,
41 						  CoinIndexedVector * spareColumn2);
42 	void setModel(IClpSimplex* m);
43 	IClpSimplex* model();
44 
45 };
46 
47 
48