3#ifndef _BCP_TM_FUNCTIONS_H
4#define _BCP_TM_FUNCTIONS_H
15#define BCP__DUMP_PROCINFO 0
28class BCP_var_set_change;
29class BCP_cut_set_change;
36 const int argnum,
const char*
const * arglist);
66 int num,
const int* pids);
82 BCP_var_set_change& var_ch,
86 BCP_cut_set_change& cut_ch,
108#ifdef BCP__DUMP_PROCINFO
109#if (BCP__DUMP_PROCINFO == 1)
110void dump_procinfo(
BCP_tm_prob& p,
const char* str);
BCP_process_t
This enumerative constant describes the various process types.
BCP_node_start_result
This enumerative constant describes ...
BCP_message_tag
This enumerative constant describes the message tags different processes of BCP understand.
BCP_vec< int > * BCP_tm_unpack_noncore_cuts(USER_packing &user, BCP_buffer &buf, BCP_cut_set_change &cut_ch, BCP_vec< BCP_cut * > &cutlist)
void BCP_tm_tasks_before_new_phase(BCP_tm_prob &p)
BCP_problem_core * BCP_tm_create_core(BCP_tm_prob &p)
void BCP_tm_unpack_priced_root(BCP_tm_prob &p, BCP_buffer &buf)
void BCP_tm_notify_processes(BCP_tm_prob &p)
bool BCP_tm_do_one_phase(BCP_tm_prob &p)
void BCP_tm_remove_vg(BCP_tm_prob &p, const int index)
bool BCP_tm_is_data_balanced(BCP_tm_prob &p)
void BCP_tm_stop_processes(BCP_tm_prob &p)
bool BCP_tm_test_machine(BCP_tm_prob &p)
void BCP_tm_notify_process_type(BCP_tm_prob &p, BCP_process_t ptype, int num, const int *pids)
void BCP_tm_remove_cg(BCP_tm_prob &p, const int index)
void BCP_sanity_checks(BCP_tm_prob &p)
void BCP_tm_send_node(BCP_tm_prob &p, const BCP_tm_node *node, const BCP_message_tag msgtag)
void BCP_tm_trim_tree_wrapper(BCP_tm_prob &p, const bool between_phases)
BCP_vec< int > * BCP_tm_unpack_noncore_vars(USER_packing &user, BCP_buffer &buf, BCP_var_set_change &var_ch, BCP_vec< BCP_var * > &varlist)
bool BCP_tm_balance_data(BCP_tm_prob &p)
BCP_tm_node * BCP_tm_unpack_node_no_branching_info(BCP_tm_prob &p, BCP_buffer &buf)
BCP_vec< std::pair< int, int > >::iterator BCP_tm_identify_process(BCP_vec< std::pair< int, int > > &proclist, int proc)
void BCP_tm_wrapup(BCP_tm_prob *tm, BCP_lp_prob *lp, BCP_cg_prob *cg, BCP_vg_prob *vg, bool final_stat)
BCP_tm_node * BCP_tm_create_root(BCP_tm_prob &p)
void BCP_tm_modify_pool_counters(BCP_tm_prob &p, BCP_tm_node *node)
void BCP_tm_start_processes(BCP_tm_prob &p)
void BCP_tm_remove_explored(BCP_tm_prob &p, BCP_tm_node *node)
bool BCP_tm_assign_processes(BCP_tm_prob &p, BCP_tm_node *node)
void BCP_tm_notify_about_new_phase(BCP_tm_prob &p)
void BCP_tm_remove_lp(BCP_tm_prob &p, const int index)
BCP_node_start_result BCP_tm_start_new_nodes(BCP_tm_prob &p)
void BCP_check_parameters(BCP_tm_prob &p)
void BCP_tm_unpack_node_with_branching_info(BCP_tm_prob &p, BCP_buffer &buf)
void BCP_tm_parse_command_line(BCP_tm_prob &p, const int argnum, const char *const *arglist)
void BCP_tm_free_procs_of_node(BCP_tm_prob &p, BCP_tm_node *node)
void BCP_tm_idle_processes(BCP_tm_prob &p)
void BCP_tm_save_root_cuts(BCP_tm_prob *tm)
void BCP_tm_list_candidates(BCP_tm_prob &p)
void BCP_print_memusage(BCP_tm_prob &p)
This class describes the message buffer used for all processes of BCP.
This class is the central class of the Cut Generator process.
Abstract base class that defines members common to all types of cuts.
This class describes changes in the core of the problem.
This class describes the core of the MIP problem, the variables/cuts in it as well as the matrix corr...
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.
This class is the central class of the Variable Generator process.