/home/coin/SVN-release/CoinAll-1.1.0/Bcp/src/include/BCP_branch.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef _BCP_BRANCH_H
00004 #define _BCP_BRANCH_H
00005 
00006 // This file is fully docified.
00007 
00008 #include "BCP_vector.hpp"
00009 
00010 class OsiSolverInterface;
00011 class BCP_buffer;
00012 class BCP_lp_branching_object;
00013 
00014 //#############################################################################
00015 
00031 class BCP_internal_brobj {
00032 private:
00036    BCP_internal_brobj(const BCP_internal_brobj&);
00038    BCP_internal_brobj& operator=(const BCP_internal_brobj&);
00041 private:
00045    int _child_num;
00049    BCP_vec<int> _var_positions;
00051    BCP_vec<int> _cut_positions;
00056    BCP_vec<double> _var_bounds; // 2*_child_num*_var_positions.size()
00058    BCP_vec<double> _cut_bounds;
00061 public:
00066    BCP_internal_brobj() : _child_num(0),
00067       _var_positions(), _cut_positions(), _var_bounds(), _cut_bounds() {}
00071    BCP_internal_brobj(BCP_lp_branching_object& candidate);
00073    ~BCP_internal_brobj() {}
00079    inline int child_num() const { return _child_num; }
00081    inline int affected_varnum() const { return _var_positions.size(); }
00083    inline int affected_cutnum() const { return _cut_positions.size(); }
00084 
00087    inline const BCP_vec<int>& var_positions() const { return _var_positions; }
00090    inline const BCP_vec<int>& cut_positions() const { return _cut_positions; }
00091 
00095    inline
00096    BCP_vec<double>::const_iterator var_bounds_child(const int index) const {
00097       return _var_bounds.entry(2 * _var_positions.size() * index);
00098    }
00102    inline
00103    BCP_vec<double>::const_iterator cut_bounds_child(const int index) const {
00104       return _cut_bounds.entry(2 * _cut_positions.size() * index);
00105    }
00112    void apply_child_bounds(OsiSolverInterface* lp, int child_ind) const;
00118    void pack(BCP_buffer& buf) const;
00120    void unpack(BCP_buffer& buf);
00122 };
00123 
00124 #endif
00125 

Generated on Sun Nov 14 14:06:29 2010 for Coin-All by  doxygen 1.4.7