00001 // $Id: CbcBranchFollow2.hpp 1574 2011-01-05 01:13:55Z lou $ 00002 // Copyright (C) 2004, 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 CbcBranchFollowOn2_H 00007 #define CbcBranchFollowOn2_H 00008 00009 #include "CbcBranchActual.hpp" 00010 #include "CoinPackedMatrix.hpp" 00011 00012 00026 class CbcFollowOn2 : public CbcObject { 00027 00028 public: 00029 00030 // Default Constructor 00031 CbcFollowOn2 (); 00032 00035 CbcFollowOn2 (CbcModel * model); 00036 00037 // Copy constructor 00038 CbcFollowOn2 ( const CbcFollowOn2 &); 00039 00041 virtual CbcObject * clone() const; 00042 00043 // Assignment operator 00044 CbcFollowOn2 & operator=( const CbcFollowOn2& rhs); 00045 00046 // Destructor 00047 ~CbcFollowOn2 (); 00048 00050 virtual double infeasibility(int & preferredWay) const; 00051 00053 virtual void feasibleRegion(); 00055 virtual CbcBranchingObject * createBranch(int way) ; 00059 virtual int gutsOfFollowOn2(int & otherRow, int & preferredWay, 00060 int & effectiveRhs) const; 00061 00063 inline int maximumRhs() const 00064 { return maximumRhs_;} 00065 inline void setMaximumRhs(int value) 00066 { maximumRhs_=value;} 00067 protected: 00070 CoinPackedMatrix matrix_; 00072 CoinPackedMatrix matrixByRow_; 00074 int * rhs_; 00076 int maximumRhs_; 00077 }; 00078 00079 #endif