Bonmin  1.7
BonCbcNode.hpp
Go to the documentation of this file.
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 #include "BonRegisteredOptions.hpp"
00016 
00017 
00018 namespace Bonmin
00019 {
00028   class BonCbcFullNodeInfo : public CbcFullNodeInfo
00029   {
00030 
00031   public:
00032     friend class BonCbcPartialNodeInfo;
00033     // Default Constructor
00034     BonCbcFullNodeInfo ();
00035 
00036     // Constructor from current state
00037     BonCbcFullNodeInfo (CbcModel * model, int numberRowsAtContinuous);
00038 
00039     // Copy constructor
00040     BonCbcFullNodeInfo ( const BonCbcFullNodeInfo &);
00041 
00042     // Destructor
00043     ~BonCbcFullNodeInfo ();
00044 
00046     virtual CbcNodeInfo * clone() const;
00047 
00050     virtual void allBranchesGone();
00051 
00053     inline int getSequenceOfInfeasiblesSize()
00054     {
00055       return sequenceOfInfeasiblesSize_;
00056     }
00058     inline int getSequenceOfUnsolvedSize()
00059     {
00060       return sequenceOfUnsolvedSize_;
00061     }
00063     static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
00064 
00065   private:
00066     /* Data values */
00068     int sequenceOfInfeasiblesSize_;
00070     int sequenceOfUnsolvedSize_;
00071   private:
00072 
00074     BonCbcFullNodeInfo & operator=(const BonCbcFullNodeInfo& rhs);
00075   };
00076 
00085   class BonCbcPartialNodeInfo : public CbcPartialNodeInfo
00086   {
00087 
00088   public:
00089     // Default Constructor
00090     BonCbcPartialNodeInfo ();
00091 
00092     // Constructor from current state
00093     BonCbcPartialNodeInfo (CbcModel * model, CbcNodeInfo * parent, CbcNode * owner,
00094         int numberChangedBounds,const int * variables,
00095         const double * boundChanges,
00096         const CoinWarmStartDiff *basisDiff) ;
00097 
00098     // Copy constructor
00099     BonCbcPartialNodeInfo ( const BonCbcPartialNodeInfo &);
00100 
00101     // Destructor
00102     ~BonCbcPartialNodeInfo ();
00103 
00105     virtual CbcNodeInfo * clone() const;
00106 
00109     virtual void allBranchesGone();
00110 
00112     inline int getSequenceOfInfeasiblesSize()
00113     {
00114       return sequenceOfInfeasiblesSize_;
00115     }
00117     inline int getSequenceOfUnsolvedSize()
00118     {
00119       return sequenceOfUnsolvedSize_;
00120     }
00121   private:
00122     /* Data values */
00124     int sequenceOfInfeasiblesSize_;
00126     int sequenceOfUnsolvedSize_;
00127   private:
00128 
00130     BonCbcPartialNodeInfo & operator=(const Bonmin::BonCbcPartialNodeInfo& rhs);
00131   };
00132 }
00133 #endif