#include <cstdlib>
#include <algorithm>
#include "CoinTime.hpp"
#include "BCP_os.hpp"
#include "BCP_USER.hpp"
#include "BCP_node_change.hpp"
#include "BCP_warmstart.hpp"
#include "BCP_branch.hpp"
#include "BCP_enum_branch.hpp"
#include "BCP_message.hpp"
#include "BCP_vector.hpp"
#include "BCP_tm.hpp"
#include "BCP_tm_user.hpp"
#include "BCP_tm_functions.hpp"
Include dependency graph for BCP_tm_msg_node_rec.cpp:
Go to the source code of this file.
#define BCP_DEBUG_PRINT 0 |
Definition at line 21 of file BCP_tm_msg_node_rec.cpp.
static int BCP_tm_unpack_node_description | ( | BCP_tm_prob & | p, | |
BCP_buffer & | buf | |||
) | [static] |
Definition at line 111 of file BCP_tm_msg_node_rec.cpp.
References BCP_tm_node::_core_storage, BCP_tm_node::_cut_storage, BCP_tm_node::_data, BCP_tm_node::_data_location, BCP_tm_node_data::_desc, BCP_tm_node::_locally_stored, BCP_tm_node_data::_user, BCP_tm_node::_var_storage, BCP_tm_node::_ws_storage, BCP_tm_prob::active_nodes, BCP_Msg_NodeListDelete, BCP_Storage_NoData, BCP_WarmstartNone, BCP_WarmstartParent, BCP_WarmstartRoot, BCP_tm_prob::core, BCP_node_change::core_change, BCP_node_change::cut_change, BCP_problem_core::cutnum(), BCP_tree::increase_processed(), BCP_tm_prob::lb_multiplier, BCP_tm_prob::lower_bounds, BCP_tm_node::lp, BCP_tm_prob::msg_env, BCP_tm_node::num_local_nodes, BCP_tm_node::num_remote_nodes, BCP_buffer::pack(), BCP_tm_prob::packer, BCP_tm_prob::param(), BCP_tm_par::ReportWhenDefaultIsExecuted, BCP_tm_prob::search_tree, BCP_message_environment::send(), BCP_warmstart::storage(), BCP_obj_set_change::storage(), BCP_problem_core_change::storage(), TMDBG, BCP_obj_set_change::unpack(), BCP_problem_core_change::unpack(), BCP_buffer::unpack(), BCP_tm_prob::unpack_cut(), BCP_user_pack::unpack_user_data(), BCP_tm_prob::unpack_var(), BCP_user_pack::unpack_warmstart(), BCP_node_change::var_change, BCP_problem_core::varnum(), BCP_node_change::warmstart, and BCP_tm_par::WarmstartInfo.
Referenced by BCP_tm_unpack_node_no_branching_info(), and BCP_tm_unpack_node_with_branching_info().
static void BCP_tm_create_core_change | ( | BCP_node_change * | desc, | |
const int | bvarnum, | |||
const int | bcutnum, | |||
const BCP_internal_brobj * | brobj, | |||
const int | childind | |||
) | [static] |
Definition at line 270 of file BCP_tm_msg_node_rec.cpp.
References BCP_problem_core_change::_storage, BCP_internal_brobj::affected_cutnum(), BCP_internal_brobj::affected_varnum(), BCP_ObjNotRemovable, BCP_Storage_NoData, BCP_Storage_WrtParent, BCP_vec< T >::begin(), BCP_node_change::core_change, BCP_internal_brobj::cut_bounds_child(), BCP_problem_core_change::cut_ch, BCP_problem_core_change::cut_pos, BCP_internal_brobj::cut_positions(), BCP_vec< T >::end(), BCP_vec< T >::reserve(), BCP_vec< T >::unchecked_push_back(), BCP_internal_brobj::var_bounds_child(), BCP_problem_core_change::var_ch, BCP_problem_core_change::var_pos, and BCP_internal_brobj::var_positions().
Referenced by BCP_tm_create_child().
static void BCP_tm_create_var_change | ( | BCP_node_change * | desc, | |
const BCP_node_change * | parentdesc, | |||
const int | bvarnum, | |||
const BCP_internal_brobj * | brobj, | |||
const int | childind | |||
) | [static] |
Definition at line 350 of file BCP_tm_msg_node_rec.cpp.
References BCP_obj_set_change::_change, BCP_obj_set_change::_del_change_pos, BCP_obj_set_change::_storage, BCP_obj_set_change::added_num(), BCP_ObjNotRemovable, BCP_Storage_Explicit, BCP_Storage_WrtParent, BCP_vec< T >::begin(), BCP_vec< T >::end(), BCP_vec< T >::reserve(), BCP_obj_set_change::storage(), BCP_vec< T >::unchecked_push_back(), BCP_internal_brobj::var_bounds_child(), BCP_node_change::var_change, and BCP_internal_brobj::var_positions().
Referenced by BCP_tm_create_child().
static void BCP_tm_create_cut_change | ( | BCP_node_change * | desc, | |
const BCP_node_change * | parentdesc, | |||
const int | bcutnum, | |||
const BCP_internal_brobj * | brobj, | |||
const int | childind | |||
) | [static] |
Definition at line 396 of file BCP_tm_msg_node_rec.cpp.
References BCP_obj_set_change::_change, BCP_obj_set_change::_del_change_pos, BCP_obj_set_change::_storage, BCP_obj_set_change::added_num(), BCP_ObjNotRemovable, BCP_Storage_Explicit, BCP_Storage_WrtParent, BCP_vec< T >::begin(), BCP_internal_brobj::cut_bounds_child(), BCP_node_change::cut_change, BCP_internal_brobj::cut_positions(), BCP_vec< T >::end(), BCP_vec< T >::reserve(), BCP_obj_set_change::storage(), and BCP_vec< T >::unchecked_push_back().
Referenced by BCP_tm_create_child().
static void BCP_tm_unpack_branching_info | ( | BCP_tm_prob & | p, | |
BCP_buffer & | buf, | |||
BCP_tm_node * | node | |||
) | [static] |
Definition at line 519 of file BCP_tm_msg_node_rec.cpp.
References BCP_tm_node::_index, BCP_ActiveNode, BCP_DoDive, BCP_DoNotDive, BCP_KeepChild, BCP_Msg_DivingInfo, BCP_print_memusage(), BCP_ProcessedNode, BCP_TestBeforeDive, BCP_tm_create_child(), BCP_tm_free_procs_of_node(), BCP_tm_identify_process(), BCP_tm_is_data_balanced(), BCP_tm_shall_we_dive(), BCP_vec< T >::begin(), BCP_tm_prob::candidate_list, BCP_tm_node::cg, BCP_tm_node::child(), BCP_tm_node::child_num(), BCP_internal_brobj::child_num(), BCP_buffer::clear(), BCP_tm_node::cp, BCP_tm_user::display_node_information(), BCP_vec< T >::end(), BCP_tm_node::index(), BCP_vec< T >::insert(), BCP_tm_prob::lb_multiplier, BCP_tm_prob::leaves_per_cp, BCP_tm_prob::leaves_per_vp, BCP_tm_prob::lower_bounds, BCP_tm_node::lp, BCP_tm_prob::msg_env, BCP_buffer::pack(), BCP_tm_prob::packer, BCP_tm_node::reserve_child_num(), BCP_tm_prob::search_tree, BCP_message_environment::send(), BCP_vec< T >::size(), BCP_tm_prob::start_time, BCP_tm_node::status, TMDBG, tt, BCP_internal_brobj::unpack(), BCP_buffer::unpack(), BCP_user_pack::unpack_user_data(), BCP_tm_prob::user, BCP_tm_node::vg, and BCP_tm_node::vp.
Referenced by BCP_tm_unpack_node_with_branching_info().
static BCP_diving_status BCP_tm_shall_we_dive | ( | BCP_tm_prob & | p, | |
const double | quality | |||
) | [inline, static] |
Definition at line 236 of file BCP_tm_msg_node_rec.cpp.
References BCP_DoDive, BCP_DoNotDive, BCP_TestBeforeDive, BCP_tm_prob::candidate_list, BCP_tm_prob::has_ub(), BCP_tm_prob::param(), BCP_tm_par::QualityRatioToAllowDiving_HasUB, BCP_tm_par::QualityRatioToAllowDiving_NoUB, ratio(), and BCP_tm_par::UnconditionalDiveProbability.
Referenced by BCP_tm_unpack_branching_info().
static void BCP_tm_print_info_line | ( | BCP_tm_prob & | p, | |
BCP_tm_node & | node | |||
) | [static] |
Definition at line 47 of file BCP_tm_msg_node_rec.cpp.
References BCP_tm_prob::candidate_list, BCP_tm_prob::param(), BCP_tree::processed(), BCP_tm_prob::search_tree, BCP_tree::size(), BCP_tm_par::TmVerb_SingleLineInfoFrequency, and BCP_tm_prob::ub().
Referenced by BCP_tm_unpack_node_no_branching_info(), and BCP_tm_unpack_node_with_branching_info().
void BCP_print_memusage | ( | BCP_tm_prob & | p | ) |
Definition at line 94 of file BCP_tm_msg_node_rec.cpp.
References BCP_used_heap().
Referenced by BCP_tm_start_one_node(), BCP_tm_unpack_branching_info(), and BCP_tm_unpack_node_no_branching_info().
static BCP_tm_node* BCP_tm_create_child | ( | BCP_tm_prob & | p, | |
const int | child_ind, | |||
BCP_tm_node * | node, | |||
const BCP_internal_brobj * | brobj, | |||
const BCP_vec< BCP_child_action > & | action, | |||
const BCP_vec< BCP_user_data * > & | user_data, | |||
const BCP_vec< double > & | true_lb, | |||
const BCP_vec< double > & | qualities | |||
) | [static] |
Definition at line 442 of file BCP_tm_msg_node_rec.cpp.
References BCP_tm_node::_birth_index, BCP_tm_node::_core_storage, BCP_tm_node::_cut_storage, BCP_tm_node::_data, BCP_tm_node_data::_desc, BCP_tm_node::_index, BCP_tm_node::_parent, BCP_tm_node_data::_user, BCP_tm_node::_var_storage, BCP_tm_node::_ws_storage, BCP_CandidateNode, BCP_FathomChild, BCP_KeepChild, BCP_PrunedNode_Discarded, BCP_ReturnChild, BCP_Storage_NoData, BCP_tm_create_core_change(), BCP_tm_create_cut_change(), BCP_tm_create_var_change(), BCP_tm_node::child_num(), BCP_tm_prob::core, BCP_node_change::core_change, BCP_tm_node::cp, BCP_node_change::cut_change, BCP_problem_core::cutnum(), BCP_warmstart::empty_wrt_this(), BCP_tree::insert(), BCP_tm_node::new_child(), BCP_tm_prob::search_tree, BCP_tm_node::status, BCP_warmstart::storage(), BCP_obj_set_change::storage(), BCP_problem_core_change::storage(), tt, BCP_node_change::var_change, BCP_problem_core::varnum(), BCP_tm_node::vp, and BCP_node_change::warmstart.
Referenced by BCP_tm_unpack_branching_info().
void BCP_tm_unpack_node_with_branching_info | ( | BCP_tm_prob & | p, | |
BCP_buffer & | buf | |||
) |
Definition at line 707 of file BCP_tm_msg_node_rec.cpp.
References BCP_tm_balance_data(), BCP_tm_print_info_line(), BCP_tm_unpack_branching_info(), BCP_tm_unpack_node_description(), BCP_tm_prob::need_a_TS, and BCP_tm_prob::search_tree.
Referenced by BCP_tm_prob::process_message().
BCP_tm_node* BCP_tm_unpack_node_no_branching_info | ( | BCP_tm_prob & | p, | |
BCP_buffer & | buf | |||
) |
Definition at line 721 of file BCP_tm_msg_node_rec.cpp.
References BCP_print_memusage(), BCP_tm_balance_data(), BCP_tm_free_procs_of_node(), BCP_tm_is_data_balanced(), BCP_tm_print_info_line(), BCP_tm_unpack_node_description(), BCP_tm_prob::need_a_TS, and BCP_tm_prob::search_tree.
Referenced by BCP_tm_prob::process_message().