3 #ifndef _BCP_TM_FUNCTIONS_H
4 #define _BCP_TM_FUNCTIONS_H
15 #define BCP__DUMP_PROCINFO 0
28 class BCP_var_set_change;
29 class 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)
110 void dump_procinfo(
BCP_tm_prob& p,
const char* str);
This class describes changes in the core of the problem.
BCP_problem_core * BCP_tm_create_core(BCP_tm_prob &p)
void BCP_tm_notify_about_new_phase(BCP_tm_prob &p)
BCP_message_tag
This enumerative constant describes the message tags different processes of BCP understand.
This class describes the core of the MIP problem, the variables/cuts in it as well as the matrix corr...
void BCP_tm_notify_process_type(BCP_tm_prob &p, BCP_process_t ptype, int num, const int *pids)
void BCP_tm_send_node(BCP_tm_prob &p, const BCP_tm_node *node, const BCP_message_tag msgtag)
void BCP_tm_unpack_priced_root(BCP_tm_prob &p, BCP_buffer &buf)
Abstract base class that defines members common to all types of cuts.
void BCP_tm_list_candidates(BCP_tm_prob &p)
BCP_process_t
This enumerative constant describes the various process types.
BCP_tm_node * BCP_tm_unpack_node_no_branching_info(BCP_tm_prob &p, BCP_buffer &buf)
bool BCP_tm_is_data_balanced(BCP_tm_prob &p)
This function is invoked from exactly one place, the beginning of BCP_tm_unpack_node_description().
This class is the central class of the Cut Generator process.
bool BCP_tm_balance_data(BCP_tm_prob &p)
This function is invoked after data from an LP is unpacked (and only if p.need_a_TS is true)...
void BCP_tm_stop_processes(BCP_tm_prob &p)
void BCP_tm_start_processes(BCP_tm_prob &p)
void BCP_tm_remove_vg(BCP_tm_prob &p, const int index)
void BCP_tm_parse_command_line(BCP_tm_prob &p, const int argnum, const char *const *arglist)
void BCP_tm_remove_lp(BCP_tm_prob &p, const int index)
bool BCP_tm_assign_processes(BCP_tm_prob &p, BCP_tm_node *node)
void BCP_tm_unpack_node_with_branching_info(BCP_tm_prob &p, BCP_buffer &buf)
BCP_node_start_result BCP_tm_start_new_nodes(BCP_tm_prob &p)
void BCP_tm_tasks_before_new_phase(BCP_tm_prob &p)
void fint fint fint real fint real real real real real real real real real fint real fint * lp
void BCP_tm_trim_tree_wrapper(BCP_tm_prob &p, const bool between_phases)
bool BCP_tm_do_one_phase(BCP_tm_prob &p)
BCP_node_start_result
This enumerative constant describes ...
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_sanity_checks(BCP_tm_prob &p)
void BCP_tm_wrapup(BCP_tm_prob *tm, BCP_lp_prob *lp, BCP_cg_prob *cg, BCP_vg_prob *vg, bool final_stat)
void BCP_print_memusage(BCP_tm_prob &p)
Abstract base class that defines members common to all types of variables.
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_notify_processes(BCP_tm_prob &p)
This class describes the message buffer used for all processes of BCP.
void BCP_tm_save_root_cuts(BCP_tm_prob *tm)
void BCP_tm_remove_explored(BCP_tm_prob &p, BCP_tm_node *node)
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real real fint real fint real char real * user
BCP_tm_node * BCP_tm_create_root(BCP_tm_prob &p)
This class is the central class of the Variable Generator process.
void BCP_tm_modify_pool_counters(BCP_tm_prob &p, BCP_tm_node *node)
BCP_vec< std::pair< int, int > >::iterator BCP_tm_identify_process(BCP_vec< std::pair< int, int > > &proclist, int proc)
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)
void BCP_tm_remove_cg(BCP_tm_prob &p, const int index)
bool BCP_tm_test_machine(BCP_tm_prob &p)
void BCP_check_parameters(BCP_tm_prob &p)