# CbcFullNodeInfo.hpp

Go to the documentation of this file.

    00001 // $Id: CbcFullNodeInfo.hpp 1902 2013-04-10 16:58:16Z stefan $
    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 void setColLower(int sequence, double value)
    00128     { lower_[sequence]=value;}
    00130     inline double * mutableLower() const {
    00131         return lower_;
    00132     }
    00134     inline const double * upper() const {
    00135         return upper_;
    00136     }
    00138     inline void setColUpper(int sequence, double value)
    00139     { upper_[sequence]=value;}
    00141     inline double * mutableUpper() const {
    00142         return upper_;
    00143     }
    00144 protected:
    00145     // Data
    00151     CoinWarmStartBasis *basis_;
    00152     int numberIntegers_;
    00153     // Bounds stored in full
    00154     double * lower_;
    00155     double * upper_;
    00156 private:
    00158     CbcFullNodeInfo & operator=(const CbcFullNodeInfo& rhs);
    00159 };
    00160 #endif //CbcFullNodeInfo_H
    00161

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines