3#ifndef _BCP_OBJ_CHANGE_H
4#define _BCP_OBJ_CHANGE_H
31 lb(lower),
ub(upper),
stat(status) {}
103class BCP_var_set_change {
115 BCP_var_set_change(
const BCP_var_set_change&);
116 BCP_var_set_change& operator=(
const BCP_var_set_change&);
124 BCP_var_set_change() :
126 _del_change_pos(), _change(), _new_vars() {}
132 const BCP_vec<int>& added_index,
133 const BCP_vec<BCP_obj_change>& added_desc);
135 ~BCP_var_set_change() {}
137 void swap(BCP_var_set_change& x);
141 inline int deleted_num()
const {
return _deleted_num; }
142 inline int changed_num()
const {
return _change.
size(); }
143 inline int added_num()
const {
return _new_vars.
size(); }
145 int pack_size()
const;
147 void update(
const BCP_var_set_change& vars_change);
152class BCP_cut_set_change {
164 BCP_cut_set_change(
const BCP_cut_set_change&);
165 BCP_cut_set_change& operator=(
const BCP_cut_set_change&);
169 BCP_vec<int> _del_change_pos;
170 BCP_vec<BCP_obj_change> _change;
171 BCP_vec<int> _new_cuts;
173 BCP_cut_set_change() :
175 _del_change_pos(), _change(), _new_cuts() {}
181 const BCP_vec<int>& added_index,
182 const BCP_vec<BCP_obj_change>& added_desc);
184 ~BCP_cut_set_change() {}
186 void swap(BCP_cut_set_change& x);
190 inline int deleted_num()
const {
return _deleted_num; }
191 inline int changed_num()
const {
return _change.
size(); }
192 inline int added_num()
const {
return _new_cuts.
size(); }
194 int pack_size()
const;
196 void update(
const BCP_cut_set_change& cuts_change);
BCP_storage_t
This enumerative constant describes how to store certain data for a search tree node.
@ BCP_Storage_Explicit
The data stored is an explicit listing of values.
BCP_obj_status
This enumerative constant gives the status of an object (variable or cut).
@ BCP_ObjNoInfo
No special information is given about the object.
bool operator==(const BCP_obj_change &ch0, const BCP_obj_change &ch1)
bool operator!=(const BCP_obj_change &ch0, const BCP_obj_change &ch1)
This class describes the message buffer used for all processes of BCP.
This class is just a collection of pointers to cuts with a number of methods to manipulate these cuts...
Abstract base class that defines members common to all types of cuts.
BCP_obj_change(const double lower, const double upper, const BCP_obj_status status)
BCP_vec< BCP_obj_change > _change
void unpack(BCP_buffer &buf)
void swap(BCP_obj_set_change &x)
BCP_storage_t storage() const
void update(const BCP_obj_set_change &objs_change)
void pack(BCP_buffer &buf) const
BCP_vec< int > _del_change_pos
This class is just a collection of pointers to variables with a number of methods to manipulate these...
Abstract base class that defines members common to all types of variables.
The class BCP_vec serves the same purpose as the vector class in the standard template library.
const BCP_var ** const_iterator
size_t size() const
Return the current number of entries.