- Main Page
- Namespaces
- Classes
- Files
- Directories

- Search for |

- File List
- File Members

# CglStored.hpp

Go to the documentation of this file.

    00001 // $Id: CglStored.hpp 948 2011-01-04 23:28:13Z lou $
    00002 // Copyright (C) 2005, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
    00005
    00006 #ifndef CglStored_H
    00007 #define CglStored_H
    00008
    00009 #include <string>
    00010
    00011 #include "CglCutGenerator.hpp"
    00012
    00013 class CoinWarmStartBasis;
    00014 class CglTreeProbingInfo;
    00016 class CglStored : public CglCutGenerator {
    00017
    00018 public:
    00019
    00020
    00031   virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
    00032                              const CglTreeInfo info = CglTreeInfo()) const;
    00034
    00039
    00040   inline void setRequiredViolation(double value)
    00041   { requiredViolation_=value;}
    00043   inline double getRequiredViolation() const
    00044   { return requiredViolation_;}
    00046   inline void setProbingInfo(CglTreeProbingInfo * info)
    00047   { probingInfo_ = info;}
    00049
    00052
    00053   void addCut(const OsiCuts & cs);
    00055   void addCut(const OsiRowCut & cut);
    00057   void addCut(double lb, double ub, const CoinPackedVector & vector);
    00059   void addCut(double lb, double ub, int size, const int * colIndices, const double * elements);
    00060   inline int sizeRowCuts() const
    00061   { return cuts_.sizeRowCuts();}
    00062   const OsiRowCut * rowCutPointer(int index) const
    00063   { return cuts_.rowCutPtr(index);}
    00065   void saveStuff(double bestObjective, const double * bestSolution,
    00066                  const double * lower, const double * upper);
    00068   inline const double * bestSolution() const
    00069   { return bestSolution_;}
    00071   double bestObjective() const;
    00073   const double * tightLower() const
    00074   { return bounds_;}
    00076   const double * tightUpper() const
    00077   { return bounds_+numberColumns_;}
    00079
    00082
    00083   CglStored (int numberColumns=0);
    00084
    00086   CglStored (const CglStored & rhs);
    00087
    00089   CglStored (const char * fileName);
    00090
    00092   virtual CglCutGenerator * clone() const;
    00093
    00095   CglStored &
    00096     operator=(const CglStored& rhs);
    00097
    00099   virtual
    00100     ~CglStored ();
    00102
    00103 protected:
    00104
    00105  // Protected member methods
    00106
    00107   // Protected member data
    00108
    00111
    00112   double requiredViolation_;
    00114   CglTreeProbingInfo * probingInfo_;
    00116   mutable OsiCuts cuts_;
    00118   int numberColumns_;
    00120   double * bestSolution_;
    00122   double * bounds_;
    00124 };
    00125 #endif