00001 // Copyright (C) 2004, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef CbcBranchFollowOn2_H 00004 #define CbcBranchFollowOn2_H 00005 00006 #include "CbcBranchActual.hpp" 00007 #include "CoinPackedMatrix.hpp" 00008 00009 00023 class CbcFollowOn2 : public CbcObject { 00024 00025 public: 00026 00027 // Default Constructor 00028 CbcFollowOn2 (); 00029 00032 CbcFollowOn2 (CbcModel * model); 00033 00034 // Copy constructor 00035 CbcFollowOn2 ( const CbcFollowOn2 &); 00036 00038 virtual CbcObject * clone() const; 00039 00040 // Assignment operator 00041 CbcFollowOn2 & operator=( const CbcFollowOn2& rhs); 00042 00043 // Destructor 00044 ~CbcFollowOn2 (); 00045 00047 virtual double infeasibility(int & preferredWay) const; 00048 00050 virtual void feasibleRegion(); 00052 virtual CbcBranchingObject * createBranch(int way) ; 00056 virtual int gutsOfFollowOn2(int & otherRow, int & preferredWay, 00057 int & effectiveRhs) const; 00058 00060 inline int maximumRhs() const 00061 { return maximumRhs_;} 00062 inline void setMaximumRhs(int value) 00063 { maximumRhs_=value;} 00064 protected: 00067 CoinPackedMatrix matrix_; 00069 CoinPackedMatrix matrixByRow_; 00071 int * rhs_; 00073 int maximumRhs_; 00074 }; 00075 00076 #endif