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