Cgl
trunk
|
00001 // $Id$ 00002 // Copyright (C) 2010, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 #ifndef CglZeroHalf_H 00006 #define CglZeroHalf_H 00007 00008 #include <string> 00009 00010 #include "CglCutGenerator.hpp" 00011 #include "CoinPackedMatrix.hpp" 00012 #include "Cgl012cut.hpp" 00013 00026 class CglZeroHalf : public CglCutGenerator { 00027 friend void CglZeroHalfUnitTest(const OsiSolverInterface * siP, 00028 const std::string mpdDir ); 00029 00030 public: 00031 00037 virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs, 00038 const CglTreeInfo info = CglTreeInfo()) const; 00040 00043 00044 inline int getFlags() const 00045 { return flags_;} 00047 inline void setFlags(int value) 00048 { flags_ = value;} 00050 00053 00054 CglZeroHalf (); 00055 00057 CglZeroHalf ( 00058 const CglZeroHalf &); 00059 00061 virtual CglCutGenerator * clone() const; 00062 00064 CglZeroHalf & 00065 operator=( 00066 const CglZeroHalf& rhs); 00067 00069 virtual 00070 ~CglZeroHalf (); 00072 virtual std::string generateCpp( FILE * fp); 00074 virtual void refreshSolver(OsiSolverInterface * solver); 00076 00077 private: 00078 00079 // Private member methods 00080 00083 00084 00085 00088 00089 int mr_; 00091 int mc_; 00093 int mnz_; 00095 int *mtbeg_; 00097 int *mtcnt_; 00099 int *mtind_; 00101 int *mtval_; 00103 int *vlb_; 00105 int *vub_; 00107 int *mrhs_; 00109 char *msense_; 00111 Cgl012Cut cutInfo_; 00115 int flags_; 00117 }; 00119 #ifndef CGL_NEW_SHORT 00120 void cglShortestPath(cgl_graph * graph, int source, int maximumLength); 00121 #else 00122 void cglShortestPath(auxiliary_graph * graph, int source, int maximumLength); 00123 #endif 00124 //############################################################################# 00130 void CglZeroHalfUnitTest(const OsiSolverInterface * siP, 00131 const std::string mpdDir ); 00132 00133 #endif