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; 00012 class CglStored : public CglCutGenerator { 00013 00014 public: 00015 00016 00027 virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs, 00028 const CglTreeInfo info = CglTreeInfo()) const; 00030 00035 00036 inline void setRequiredViolation(double value) 00037 { requiredViolation_=value;}; 00039 inline double getRequiredViolation() const 00040 { return requiredViolation_;} 00042 00045 00046 void addCut(const OsiCuts & cs); 00048 void addCut(const OsiRowCut & cut); 00050 void addCut(double lb, double ub, const CoinPackedVector & vector); 00052 void addCut(double lb, double ub, int size, const int * colIndices, const double * elements); 00053 inline int sizeRowCuts() const 00054 { return cuts_.sizeRowCuts();}; 00056 00059 00060 CglStored (); 00061 00063 CglStored (const CglStored & rhs); 00064 00066 virtual CglCutGenerator * clone() const; 00067 00069 CglStored & 00070 operator=(const CglStored& rhs); 00071 00073 virtual 00074 ~CglStored (); 00076 00077 protected: 00078 00079 // Protected member methods 00080 00081 // Protected member data 00082 00085 00086 double requiredViolation_; 00088 mutable OsiCuts cuts_; 00090 }; 00091 #endif