#include <hohberg_biconnected_components.hpp>
Classes | |
struct | per_edge_data |
Public Member Functions | |
hohberg_vertex_processor () | |
void | initialize_leader (Vertex alpha, const Graph &g) |
void | operator() (Edge e, path_t &path, const Graph &g) |
Handle a path message on edge e. More... | |
void | operator() (Edge e, Vertex gamma, path_t &in_same_bicomponent, const Graph &g) |
Handle a tree message on edge e. More... | |
void | operator() (Edge e, edges_size_type name, const Graph &g) |
unsigned char | get_phase () const |
void | start_naming_phase (Vertex alpha, const Graph &g, edges_size_type offset) |
edges_size_type | num_starting_bicomponents (Vertex alpha, const Graph &g) |
template<typename ComponentMap > | |
void | fill_edge_map (Vertex alpha, const Graph &g, ComponentMap &component) |
Protected Member Functions | |
void | echo_phase (Vertex alpha, const Graph &g) |
std::size_t | get_edge_index (Edge e, const Graph &g) |
std::size_t | get_incident_edge_index (Vertex u, Vertex v, const Graph &g) |
template<typename Archiver > | |
void | serialize (Archiver &, const unsigned int) |
Protected Attributes | |
unsigned char | phase |
Vertex | parent |
Vertex | eta |
degree_size_type | num_edges_not_transmitted |
std::vector< Vertex > | path_from_root |
std::vector< per_edge_data > | edge_data |
std::vector< edges_size_type > | local_to_global_partitions |
Friends | |
class | boost::serialization::access |
|
inline |
|
protected |
References boost::spirit::ascii::alpha, BGL_FORALL_OUTEDGES_T, boost::algorithm::find(), boost::multiprecision::backends::i, boost::local(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::M, boost::accumulators::extract::max, boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::msg, boost::graph::distributed::hohberg_detail::msg_tree_header, boost::graph::distributed::hohberg_detail::msg_tree_vertices, boost::detail::parallel::owner(), boost::process_group(), boost::graph::distributed::send(), boost::graph::target(), and boost::vertex_owner.
void boost::graph::distributed::hohberg_vertex_processor< Graph >::fill_edge_map | ( | Vertex | alpha, |
const Graph & | g, | ||
ComponentMap & | component | ||
) |
|
protected |
References BGL_FORALL_OUTEDGES_T, BOOST_ASSERT, boost::graph::source(), and boost::graph::target().
|
protected |
References BGL_FORALL_OUTEDGES_T, BOOST_ASSERT, and boost::graph::target().
|
inline |
void boost::graph::distributed::hohberg_vertex_processor< Graph >::initialize_leader | ( | Vertex | alpha, |
const Graph & | g | ||
) |
References BGL_FORALL_OUTEDGES_T, boost::graph::degree(), boost::graph::distributed::hohberg_detail::msg_path_header, boost::graph::distributed::hohberg_detail::msg_path_vertices, boost::detail::parallel::owner(), boost::process_group(), boost::graph::distributed::send(), boost::graph::target(), and boost::vertex_owner.
hohberg_vertex_processor< Graph >::edges_size_type boost::graph::distributed::hohberg_vertex_processor< Graph >::num_starting_bicomponents | ( | Vertex | alpha, |
const Graph & | g | ||
) |
References BGL_FORALL_OUTEDGES_T, boost::algorithm::find(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::is_tree_edge, boost::local(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::M, boost::accumulators::extract::max, boost::detail::parallel::owner(), and boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::partition.
void boost::graph::distributed::hohberg_vertex_processor< Graph >::operator() | ( | Edge | e, |
path_t & | path, | ||
const Graph & | g | ||
) |
Handle a path message on edge e.
The path will be destroyed by this operation.
References boost::spirit::ascii::alpha, BGL_FORALL_OUTEDGES_T, BOOST_ASSERT, boost::graph::distributed::hohberg_detail::branch_point(), boost::graph::degree(), boost::algorithm::find(), boost::get_edge_index(), boost::graph::distributed::hohberg_detail::infimum(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::is_tree_edge, boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::M, boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::msg, boost::graph::distributed::hohberg_detail::msg_path_header, boost::graph::distributed::hohberg_detail::msg_path_vertices, boost::detail::parallel::owner(), boost::process_group(), boost::graph::distributed::send(), boost::graph::source(), boost::graph::target(), and boost::vertex_owner.
void boost::graph::distributed::hohberg_vertex_processor< Graph >::operator() | ( | Edge | e, |
Vertex | gamma, | ||
path_t & | in_same_bicomponent, | ||
const Graph & | g | ||
) |
Handle a tree message on edge e.
in_same_bicomponent will be destroyed by this operation.
References boost::spirit::ascii::alpha, beta, BOOST_ASSERT, boost::get_edge_index(), boost::multiprecision::backends::i, boost::graph::distributed::hohberg_detail::infimum(), boost::local(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::msg, boost::detail::parallel::owner(), boost::graph::source(), and boost::graph::target().
void boost::graph::distributed::hohberg_vertex_processor< Graph >::operator() | ( | Edge | e, |
edges_size_type | name, | ||
const Graph & | g | ||
) |
References boost::spirit::ascii::alpha, BGL_FORALL_OUTEDGES_T, BOOST_ASSERT, boost::algorithm::find(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::is_tree_edge, boost::local(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::M, boost::graph::distributed::hohberg_detail::msg_name, boost::iostreams::gzip::flags::name, boost::detail::parallel::owner(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::partition, boost::process_group(), boost::graph::distributed::send(), boost::graph::source(), boost::graph::target(), and boost::vertex_owner.
|
inlineprotected |
References BOOST_ASSERT.
void boost::graph::distributed::hohberg_vertex_processor< Graph >::start_naming_phase | ( | Vertex | alpha, |
const Graph & | g, | ||
edges_size_type | offset | ||
) |
References BGL_FORALL_OUTEDGES_T, BOOST_ASSERT, boost::algorithm::find(), boost::multiprecision::backends::i, boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::is_tree_edge, boost::local(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::M, boost::accumulators::extract::max, boost::graph::distributed::hohberg_detail::msg_name, boost::asio::offset, boost::detail::parallel::owner(), boost::graph::distributed::hohberg_vertex_processor< Graph >::per_edge_data::partition, boost::process_group(), boost::graph::distributed::send(), boost::graph::source(), boost::graph::target(), and boost::vertex_owner.
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |