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 virtual CglCutGenerator * clone() const; 00073 00075 CglStored & 00076 operator=(const CglStored& rhs); 00077 00079 virtual 00080 ~CglStored (); 00082 00083 protected: 00084 00085 // Protected member methods 00086 00087 // Protected member data 00088 00091 00092 double requiredViolation_; 00094 CglTreeProbingInfo * probingInfo_; 00096 mutable OsiCuts cuts_; 00098 }; 00099 #endif