Bcp 1.4.4
Loading...
Searching...
No Matches
BCP_tm_functions.hpp
Go to the documentation of this file.
1// Copyright (C) 2000, International Business Machines
2// Corporation and others. All Rights Reserved.
3#ifndef _BCP_TM_FUNCTIONS_H
4#define _BCP_TM_FUNCTIONS_H
5
6#include <utility> // for pair
7
8#include "BCP_string.hpp"
9#include "BCP_vector.hpp"
10#include "BCP_message_tag.hpp"
11#include "BCP_parameters.hpp"
12#include "BCP_enum_tm.hpp"
14
15#define BCP__DUMP_PROCINFO 0
16
17class BCP_buffer;
18class BCP_tm_prob;
19class BCP_lp_prob;
20class BCP_cg_prob;
21class BCP_vg_prob;
22class BCP_tm_node;
23class BCP_var;
24class BCP_cut;
27class BCP_tm_node;
28class BCP_var_set_change;
29class BCP_cut_set_change;
30class USER_packing;
31
32//-----------------------------------------------------------------------------
33// BCP_tm_commandline.cpp
34void
36 const int argnum, const char* const * arglist);
37//-----------------------------------------------------------------------------
38// BCP_tm_main.cpp
43
44//-----------------------------------------------------------------------------
45// BCP_tm_trimming.cpp
46void BCP_tm_trim_tree_wrapper(BCP_tm_prob& p, const bool between_phases);
48
49//-----------------------------------------------------------------------------
50// BCP_tm_nodes_to_storage.cpp
53
54//-----------------------------------------------------------------------------
55// BCP_tm_msgproc.cpp
61void BCP_tm_remove_lp(BCP_tm_prob& p, const int index);
62void BCP_tm_remove_cg(BCP_tm_prob& p, const int index);
63void BCP_tm_remove_vg(BCP_tm_prob& p, const int index);
66 int num, const int* pids);
70
71//-----------------------------------------------------------------------------
72// BCP_tm_msg_node_send.cpp
74 const BCP_message_tag msgtag);
75
76//-----------------------------------------------------------------------------
77// BCP_tm_msg_node_rec.cpp
79
81 BCP_buffer& buf,
82 BCP_var_set_change& var_ch,
83 BCP_vec<BCP_var*>& varlist);
85 BCP_buffer& buf,
86 BCP_cut_set_change& cut_ch,
87 BCP_vec<BCP_cut*>& cutlist);
88
91 BCP_buffer& buf);
92//-----------------------------------------------------------------------------
93// BCP_tm_functions.cpp
95BCP_tm_identify_process(BCP_vec< std::pair<int, int> >& proclist, int proc);
101
102//-----------------------------------------------------------------------------
103// BCP_tm_statistics.cpp
106 BCP_cg_prob* cg, BCP_vg_prob* vg, bool final_stat);
107
108#ifdef BCP__DUMP_PROCINFO
109#if (BCP__DUMP_PROCINFO == 1)
110void dump_procinfo(BCP_tm_prob& p, const char* str);
111#endif
112#endif
113
114#endif
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.
Definition BCP_cg.hpp:32
Abstract base class that defines members common to all types of cuts.
Definition BCP_cut.hpp:29
NO OLD DOC.
Definition BCP_lp.hpp:102
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...
NO OLD DOC.
Definition BCP_tm.hpp:136
Abstract base class that defines members common to all types of variables.
Definition BCP_var.hpp:28
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.
Definition BCP_vg.hpp:32