Cbc trunk
CbcFullNodeInfo.hpp
Go to the documentation of this file.
00001 // $Id$
00002 // Copyright (C) 2002, 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 // Edwin 11/24/09 carved from CbcNode
00007 
00008 #ifndef CbcFullNodeInfo_H
00009 #define CbcFullNodeInfo_H
00010 
00011 #include <string>
00012 #include <vector>
00013 
00014 #include "CoinWarmStartBasis.hpp"
00015 #include "CoinSearchTree.hpp"
00016 #include "CbcBranchBase.hpp"
00017 #include "CbcNodeInfo.hpp"
00018 
00019 class OsiSolverInterface;
00020 class OsiSolverBranch;
00021 
00022 class OsiCuts;
00023 class OsiRowCut;
00024 class OsiRowCutDebugger;
00025 class CoinWarmStartBasis;
00026 class CbcCountRowCut;
00027 class CbcModel;
00028 class CbcNode;
00029 class CbcSubProblem;
00030 class CbcGeneralBranchingObject;
00031 
00032 //#############################################################################
00081 class CbcFullNodeInfo : public CbcNodeInfo {
00082 
00083 public:
00084 
00094     virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis,
00095                                CbcCountRowCut **addCuts,
00096                                int &currentNumberCuts) const ;
00097 
00099     virtual int applyBounds(int iColumn, double & lower, double & upper, int force) ;
00100 
00105     virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis & basis) const ;
00106     // Default Constructor
00107     CbcFullNodeInfo ();
00108 
00111     CbcFullNodeInfo (CbcModel * model,
00112                      int numberRowsAtContinuous);
00113 
00114     // Copy constructor
00115     CbcFullNodeInfo ( const CbcFullNodeInfo &);
00116 
00117     // Destructor
00118     ~CbcFullNodeInfo ();
00119 
00121     virtual CbcNodeInfo * clone() const;
00123     inline const double * lower() const {
00124         return lower_;
00125     }
00127     inline const double * upper() const {
00128         return upper_;
00129     }
00130 protected:
00131     // Data
00137     CoinWarmStartBasis *basis_;
00138     int numberIntegers_;
00139     // Bounds stored in full
00140     double * lower_;
00141     double * upper_;
00142 private:
00144     CbcFullNodeInfo & operator=(const CbcFullNodeInfo& rhs);
00145 };
00146 #endif //CbcFullNodeInfo_H
00147 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines