CglDuplicateRow.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2004, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef CglDuplicateRow_H
00004 #define CglDuplicateRow_H
00005 
00006 #include <string>
00007 
00008 #include "CglCutGenerator.hpp"
00009 class CglStored;
00010 
00012 class CglDuplicateRow : public CglCutGenerator {
00013  
00014 public:
00015     
00016   
00037   virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
00038                              const CglTreeInfo info = CglTreeInfo()) const;
00039 private:
00041   void generateCuts12( const OsiSolverInterface & si, OsiCuts & cs,
00042                        const CglTreeInfo info = CglTreeInfo()) const;
00044   void generateCuts4( const OsiSolverInterface & si, OsiCuts & cs,
00045                        const CglTreeInfo info = CglTreeInfo()) const;
00047   void generateCuts8( const OsiSolverInterface & si, OsiCuts & cs,
00048                        const CglTreeInfo info = CglTreeInfo()) const;
00049 public:
00069   CglStored * outDuplicates( OsiSolverInterface * solver);
00070 
00072 
00075 
00076   inline const int * duplicate() const
00077   { return duplicate_;}
00079   inline int sizeDynamic() const
00080   { return sizeDynamic_;}
00082   inline int numberOriginalRows() const
00083   { return matrix_.getNumRows();}
00085 
00088 
00089   inline int logLevel() const
00090   { return logLevel_;}
00091   inline void setLogLevel(int value)
00092   { logLevel_ = value;}
00094 
00095 
00098 
00099   inline int maximumRhs() const
00100   { return maximumRhs_;}
00102   inline void setMaximumRhs(int value)
00103   { maximumRhs_=value;}
00105 
00108 
00109   inline int maximumDominated() const
00110   { return maximumDominated_;}
00112   inline void setMaximumDominated(int value)
00113   { maximumDominated_=value;}
00115 
00117 
00118   inline int mode() const
00119   { return mode_;}
00121   inline void setMode(int value)
00122   { mode_=value;}
00124 
00127 
00128   CglDuplicateRow ();
00129  
00131   CglDuplicateRow (OsiSolverInterface * solver);
00132  
00134   CglDuplicateRow (
00135     const CglDuplicateRow & rhs);
00136 
00138   virtual CglCutGenerator * clone() const;
00139 
00141   CglDuplicateRow &
00142     operator=(
00143     const CglDuplicateRow& rhs);
00144   
00146   virtual
00147     ~CglDuplicateRow ();
00149   virtual std::string generateCpp( FILE * fp);
00150 
00152   virtual void refreshSolver(OsiSolverInterface * solver);
00154       
00155 protected:
00156   
00157 
00158   // Protected member data
00159 
00162 
00163   CoinPackedMatrix matrix_;
00165   CoinPackedMatrix matrixByRow_; 
00167   int * rhs_;
00169   mutable int * duplicate_;
00171   int * lower_;
00173   mutable CglStored * storedCuts_;
00175   int maximumDominated_;
00177   int maximumRhs_;
00179   mutable int sizeDynamic_;
00181   int mode_;
00183   int logLevel_;
00185 };
00186 #endif

Generated on Tue Jun 14 23:14:03 2011 for Cbc by  doxygen 1.4.7