/home/coin/SVN-release/CoinAll-1.1.0/Bcp/src/include/BCP_tm_functions.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef _BCP_TM_FUNCTIONS_H
00004 #define _BCP_TM_FUNCTIONS_H
00005 
00006 #include <utility> // for pair
00007 
00008 #include "BCP_string.hpp"
00009 #include "BCP_vector.hpp"
00010 #include "BCP_message_tag.hpp"
00011 #include "BCP_parameters.hpp"
00012 #include "BCP_enum_tm.hpp"
00013 
00014 #define BCP__DUMP_PROCINFO 0
00015 
00016 class BCP_proc_id;
00017 class BCP_buffer;
00018 class BCP_tm_prob;
00019 class BCP_lp_prob;
00020 class BCP_cg_prob;
00021 class BCP_vg_prob;
00022 class BCP_tm_node;
00023 class BCP_var;
00024 class BCP_cut;
00025 class BCP_problem_core;
00026 class BCP_problem_core_change;
00027 class BCP_tm_node;
00028 class BCP_var_set_change;
00029 class BCP_cut_set_change;
00030 class USER_packing;
00031 
00032 //-----------------------------------------------------------------------------
00033 // BCP_tm_commandline.cpp
00034 void
00035 BCP_tm_parse_command_line(BCP_tm_prob& p,
00036                           const int argnum, const char* const * arglist);
00037 //-----------------------------------------------------------------------------
00038 // BCP_tm_main.cpp
00039 bool BCP_tm_do_one_phase(BCP_tm_prob& p);
00040 BCP_problem_core* BCP_tm_create_core(BCP_tm_prob& p);
00041 BCP_tm_node* BCP_tm_create_root(BCP_tm_prob& p);
00042 void BCP_tm_tasks_before_new_phase(BCP_tm_prob& p);
00043 
00044 //-----------------------------------------------------------------------------
00045 // BCP_tm_trimming.cpp
00046 void BCP_tm_trim_tree_wrapper(BCP_tm_prob& p, const bool between_phases);
00047 void BCP_tm_remove_explored(BCP_tm_prob& p, BCP_tm_node* node);
00048 
00049 //-----------------------------------------------------------------------------
00050 // BCP_tm_msgproc.cpp
00051 void BCP_tm_idle_processes(BCP_tm_prob& p);
00052 void BCP_tm_stop_processes(BCP_tm_prob& p);
00053 void BCP_tm_start_processes(BCP_tm_prob& p);
00054 bool BCP_tm_test_machine(BCP_tm_prob& p);
00055 void BCP_tm_modify_pool_counters(BCP_tm_prob& p, BCP_tm_node* node);
00056 void BCP_tm_remove_lp(BCP_tm_prob& p, const int index);
00057 void BCP_tm_remove_cg(BCP_tm_prob& p, const int index);
00058 void BCP_tm_remove_vg(BCP_tm_prob& p, const int index);
00059 void BCP_tm_notify_about_new_phase(BCP_tm_prob& p);
00060 void BCP_tm_notify_processes(BCP_tm_prob& p);
00061 void BCP_tm_distribute_core(BCP_tm_prob& p);
00062 void BCP_tm_distribute_user_info(BCP_tm_prob& p);
00063 void BCP_tm_unpack_priced_root(BCP_tm_prob& p, BCP_buffer& buf);
00064 void BCP_tm_free_procs_of_node(BCP_tm_prob& p, BCP_tm_node* node);
00065 
00066 //-----------------------------------------------------------------------------
00067 // BCP_tm_msg_node_send.cpp
00068 void BCP_tm_send_node(BCP_tm_prob& p, const BCP_tm_node* node,
00069                       const BCP_message_tag msgtag);
00070 
00071 //-----------------------------------------------------------------------------
00072 // BCP_tm_msg_node_rec.cpp
00073 BCP_vec<int>* BCP_tm_unpack_noncore_vars(USER_packing& user,
00074                                          BCP_buffer& buf,
00075                                          BCP_var_set_change& var_ch,
00076                                          BCP_vec<BCP_var*>& varlist);
00077 BCP_vec<int>* BCP_tm_unpack_noncore_cuts(USER_packing& user,
00078                                          BCP_buffer& buf,
00079                                          BCP_cut_set_change& cut_ch,
00080                                          BCP_vec<BCP_cut*>& cutlist);
00081 
00082 void BCP_tm_unpack_node_with_branching_info(BCP_tm_prob& p, BCP_buffer& buf);
00083 BCP_tm_node* BCP_tm_unpack_node_no_branching_info(BCP_tm_prob& p,
00084                                                   BCP_buffer& buf);
00085 //-----------------------------------------------------------------------------
00086 // BCP_tm_functions.cpp
00087 BCP_vec< std::pair<BCP_proc_id*, int> >::iterator
00088 BCP_tm_identify_process(BCP_vec< std::pair<BCP_proc_id*, int> >& proclist,
00089                         BCP_proc_id* proc);
00090 bool BCP_tm_assign_processes(BCP_tm_prob& p, BCP_tm_node* node);
00091 BCP_node_start_result BCP_tm_start_new_nodes(BCP_tm_prob& p);
00092 void BCP_tm_list_candidates(BCP_tm_prob& p);
00093 void BCP_check_parameters(BCP_tm_prob& p);
00094 void BCP_sanity_checks(BCP_tm_prob& p);
00095 
00096 //-----------------------------------------------------------------------------
00097 // BCP_tm_statistics.cpp
00098 void BCP_tm_save_root_cuts(BCP_tm_prob* tm);
00099 void BCP_tm_wrapup(BCP_tm_prob* tm, BCP_lp_prob* lp,
00100                    BCP_cg_prob* cg, BCP_vg_prob* vg, bool final_stat);
00101 
00102 #ifdef BCP__DUMP_PROCINFO
00103 #if (BCP__DUMP_PROCINFO == 1)
00104 void dump_procinfo(BCP_tm_prob& p, const char* str);
00105 #endif
00106 #endif
00107 
00108 #endif

Generated on Sun Nov 14 14:06:29 2010 for Coin-All by  doxygen 1.4.7