• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/tmp/buildd/coinor-cbc-2.5.0/Cbc/src/CbcPartialNodeInfo.hpp

Go to the documentation of this file.
00001 // Edwin 11/24/09 carved from CbcNode
00002 #ifndef CbcPartialNodeInfo_H
00003 #define CbcPartialNodeInfo_H
00004 
00005 #include <string>
00006 #include <vector>
00007 
00008 #include "CoinWarmStartBasis.hpp"
00009 #include "CoinSearchTree.hpp"
00010 #include "CbcBranchBase.hpp"
00011 #include "CbcNodeInfo.hpp"
00012 
00013 class OsiSolverInterface;
00014 class OsiSolverBranch;
00015 
00016 class OsiCuts;
00017 class OsiRowCut;
00018 class OsiRowCutDebugger;
00019 class CoinWarmStartBasis;
00020 class CbcCountRowCut;
00021 class CbcModel;
00022 class CbcNode;
00023 class CbcSubProblem;
00024 class CbcGeneralBranchingObject;
00033 class CbcPartialNodeInfo : public CbcNodeInfo {
00034 
00035 public:
00036 
00042     virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis,
00043                                CbcCountRowCut **addCuts,
00044                                int &currentNumberCuts) const ;
00045 
00047     virtual int applyBounds(int iColumn, double & lower, double & upper, int force) ;
00052     virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis & basis ) const ;
00053     // Default Constructor
00054     CbcPartialNodeInfo ();
00055 
00056     // Constructor from current state
00057     CbcPartialNodeInfo (CbcNodeInfo * parent, CbcNode * owner,
00058                         int numberChangedBounds, const int * variables,
00059                         const double * boundChanges,
00060                         const CoinWarmStartDiff *basisDiff) ;
00061 
00062     // Copy constructor
00063     CbcPartialNodeInfo ( const CbcPartialNodeInfo &);
00064 
00065     // Destructor
00066     ~CbcPartialNodeInfo ();
00067 
00069     virtual CbcNodeInfo * clone() const;
00071     inline const CoinWarmStartDiff *basisDiff() const {
00072         return basisDiff_ ;
00073     }
00075     inline const int * variables() const {
00076         return variables_;
00077     }
00078     // New bound
00079     inline const double * newBounds() const {
00080         return newBounds_;
00081     }
00083     inline int numberChangedBounds() const {
00084         return numberChangedBounds_;
00085     }
00086 protected:
00087     /* Data values */
00088 
00090     CoinWarmStartDiff *basisDiff_ ;
00092     int * variables_;
00093     // New bound
00094     double * newBounds_;
00096     int numberChangedBounds_;
00097 private:
00098 
00100     CbcPartialNodeInfo & operator=(const CbcPartialNodeInfo& rhs);
00101 };
00102 
00103 #endif //CbcPartialNodeInfo_H
00104 

Generated on Tue Sep 7 2010 20:23:52 by  doxygen 1.7.1