00001 // (C) Copyright International Business Machines Corporation and Carnegie Mellon University 2006 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // Authors : 00006 // John J. Forrest, International Business Machines Corporation 00007 // Pierre Bonami, Carnegie Mellon University, 00008 // 00009 // Date : 03/15/2006 00010 00011 #ifndef BonminCbcNode_H 00012 #define BonminCbcNode_H 00013 00014 #include "CbcNode.hpp" 00015 00016 00017 00026 class BonminCbcFullNodeInfo : public CbcFullNodeInfo 00027 { 00028 00029 public: 00030 friend class BonminCbcPartialNodeInfo; 00031 // Default Constructor 00032 BonminCbcFullNodeInfo (); 00033 00034 // Constructor from current state 00035 BonminCbcFullNodeInfo (CbcModel * model, int numberRowsAtContinuous); 00036 00037 // Copy constructor 00038 BonminCbcFullNodeInfo ( const BonminCbcFullNodeInfo &); 00039 00040 // Destructor 00041 ~BonminCbcFullNodeInfo (); 00042 00044 virtual CbcNodeInfo * clone() const; 00045 00048 virtual void allBranchesGone(); 00049 00051 inline int getSequenceOfInfeasiblesSize() 00052 { 00053 return sequenceOfInfeasiblesSize_; 00054 } 00056 inline int getSequenceOfUnsolvedSize() 00057 { 00058 return sequenceOfUnsolvedSize_; 00059 } 00060 private: 00061 /* Data values */ 00063 int sequenceOfInfeasiblesSize_; 00065 int sequenceOfUnsolvedSize_; 00066 private: 00067 00069 BonminCbcFullNodeInfo & operator=(const BonminCbcFullNodeInfo& rhs); 00070 }; 00071 00080 class BonminCbcPartialNodeInfo : public CbcPartialNodeInfo 00081 { 00082 00083 public: 00084 // Default Constructor 00085 BonminCbcPartialNodeInfo (); 00086 00087 // Constructor from current state 00088 BonminCbcPartialNodeInfo (CbcModel * model, CbcNodeInfo * parent, CbcNode * owner, 00089 int numberChangedBounds,const int * variables, 00090 const double * boundChanges, 00091 const CoinWarmStartDiff *basisDiff) ; 00092 00093 // Copy constructor 00094 BonminCbcPartialNodeInfo ( const BonminCbcPartialNodeInfo &); 00095 00096 // Destructor 00097 ~BonminCbcPartialNodeInfo (); 00098 00100 virtual CbcNodeInfo * clone() const; 00101 00104 virtual void allBranchesGone(); 00105 00107 inline int getSequenceOfInfeasiblesSize() 00108 { 00109 return sequenceOfInfeasiblesSize_; 00110 } 00112 inline int getSequenceOfUnsolvedSize() 00113 { 00114 return sequenceOfUnsolvedSize_; 00115 } 00116 private: 00117 /* Data values */ 00119 int sequenceOfInfeasiblesSize_; 00121 int sequenceOfUnsolvedSize_; 00122 private: 00123 00125 BonminCbcPartialNodeInfo & operator=(const BonminCbcPartialNodeInfo& rhs); 00126 }; 00127 #endif