- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Alps-1.2.1/Cgl/src/CglDuplicateRow/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