00001 // Copyright (C) 2005, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef CglStored_H 00004 #define CglStored_H 00005 00006 #include <string> 00007 00008 #include "CglCutGenerator.hpp" 00009 00010 class CoinWarmStartBasis; 00011 class CglTreeProbingInfo; 00013 class CglStored : public CglCutGenerator { 00014 00015 public: 00016 00017 00028 virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs, 00029 const CglTreeInfo info = CglTreeInfo()) const; 00031 00036 00037 inline void setRequiredViolation(double value) 00038 { requiredViolation_=value;} 00040 inline double getRequiredViolation() const 00041 { return requiredViolation_;} 00043 inline void setProbingInfo(CglTreeProbingInfo * info) 00044 { probingInfo_ = info;} 00046 00049 00050 void addCut(const OsiCuts & cs); 00052 void addCut(const OsiRowCut & cut); 00054 void addCut(double lb, double ub, const CoinPackedVector & vector); 00056 void addCut(double lb, double ub, int size, const int * colIndices, const double * elements); 00057 inline int sizeRowCuts() const 00058 { return cuts_.sizeRowCuts();} 00059 const OsiRowCut * rowCutPointer(int index) const 00060 { return cuts_.rowCutPtr(index);} 00062 00065 00066 CglStored (); 00067 00069 CglStored (const CglStored & rhs); 00070 00072 CglStored (const char * fileName); 00073 00075 virtual CglCutGenerator * clone() const; 00076 00078 CglStored & 00079 operator=(const CglStored& rhs); 00080 00082 virtual 00083 ~CglStored (); 00085 00086 protected: 00087 00088 // Protected member methods 00089 00090 // Protected member data 00091 00094 00095 double requiredViolation_; 00097 CglTreeProbingInfo * probingInfo_; 00099 mutable OsiCuts cuts_; 00101 }; 00102 #endif