Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
two_graphs_common_spanning_trees.hpp File Reference
#include <boost/config.hpp>
#include <boost/bimap.hpp>
#include <boost/type_traits.hpp>
#include <boost/concept/requires.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/undirected_dfs.hpp>
#include <boost/graph/connected_components.hpp>
#include <boost/graph/filtered_graph.hpp>
#include <vector>
#include <stack>
#include <map>
Include dependency graph for two_graphs_common_spanning_trees.hpp:

Classes

struct  boost::detail::bridges_visitor< TreeMap, PredMap, DistMap, LowMap, Buffer >
 
struct  boost::detail::cycle_finder< Buffer >
 
struct  boost::detail::deleted_edge_status< DeletedMap >
 
struct  boost::detail::inL_edge_status< InLMap >
 
struct  boost::tree_collector< Coll, Seq >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::detail
 

Typedefs

typedef
GraphTraits::directed_category 
boost::directed_category
 
typedef
GraphTraits::vertex_descriptor 
boost::vertex_descriptor
 
typedef
GraphTraits::edge_descriptor 
boost::edge_descriptor
 
typedef
GraphTraits::edges_size_type 
boost::edges_size_type
 
typedef GraphTraits::edge_iterator boost::edge_iterator
 
typedef Seq::value_type boost::seq_value_type
 
typedef Seq::size_type boost::seq_size_type
 
typedef Order::value_type boost::order_value_type
 
typedef Order::size_type boost::order_size_type
 
typedef bimaps::bimap
< bimaps::set_of< int >
, bimaps::set_of
< order_value_type > > 
boost::bimap_type
 
typedef bimap_type::value_type boost::bimap_value
 

Functions

template<typename Graph , typename Func , typename Seq , typename Map >
void boost::detail::rec_two_graphs_common_spanning_trees (const Graph &iG, bimap< bimaps::set_of< int >, bimaps::set_of< typename graph_traits< Graph >::edge_descriptor > > iG_bimap, Map aiG_inL, Map diG, const Graph &vG, bimap< bimaps::set_of< int >, bimaps::set_of< typename graph_traits< Graph >::edge_descriptor > > vG_bimap, Map avG_inL, Map dvG, Func func, Seq inL)
 
template<typename Graph , typename Order , typename Func , typename Seq >
 boost::BOOST_CONCEPT_REQUIRES (((RandomAccessContainer< Order >))((IncidenceGraphConcept< Graph >))((UnaryFunction< Func, void, Seq >))((Mutable_RandomAccessContainer< Seq >))((VertexAndEdgeListGraphConcept< Graph >)),(void)) two_graphs_common_spanning_trees(const Graph &iG
 
 boost::BOOST_STATIC_ASSERT ((is_same< order_value_type, edge_descriptor >::value))
 
 boost::BOOST_CONCEPT_ASSERT ((Convertible< order_size_type, edges_size_type >))
 
 boost::BOOST_CONCEPT_ASSERT ((Convertible< seq_size_type, edges_size_type >))
 
 boost::BOOST_STATIC_ASSERT ((is_same< seq_value_type, bool >::value))
 
 boost::BOOST_STATIC_ASSERT ((is_same< directed_category, undirected_tag >::value))
 
 boost::if (num_vertices(iG)!=num_vertices(vG)) return
 
 boost::if (inL.size()!=num_edges(iG)||inL.size()!=num_edges(vG)) return
 
 boost::if (iG_map.size()!=num_edges(iG)||vG_map.size()!=num_edges(vG)) return
 
 boost::for (order_size_type i=0;i< iG_map.size();++i) iG_bimap.insert(bimap_value(i
 
 boost::for (;current!=last;++current) if(iG_bimap.right.find(*current)
 
 boost::undirected_dfs (iG, iG_vis, associative_property_map< std::map< vertex_descriptor, default_color_type > >(vertex_color), associative_property_map< std::map< edge_descriptor, default_color_type > >(edge_color))
 
 boost::undirected_dfs (vG, vG_vis, associative_property_map< std::map< vertex_descriptor, default_color_type > >(vertex_color), associative_property_map< std::map< edge_descriptor, default_color_type > >(edge_color))
 
 boost::while (!iG_buf.empty())
 
 boost::while (!vG_buf.empty())
 
 boost::undirected_dfs (make_filtered_graph(iG, detail::inL_edge_status< associative_property_map< std::map< edge_descriptor, bool > > >(aiG_inL)), make_dfs_visitor(detail::cycle_finder< std::stack< edge_descriptor > >(&iG_buf)), associative_property_map< std::map< vertex_descriptor, default_color_type > >(vertex_color), associative_property_map< std::map< edge_descriptor, default_color_type > >(edge_color))
 
 boost::undirected_dfs (make_filtered_graph(vG, detail::inL_edge_status< associative_property_map< std::map< edge_descriptor, bool > > >(avG_inL)), make_dfs_visitor(detail::cycle_finder< std::stack< edge_descriptor > >(&vG_buf)), associative_property_map< std::map< vertex_descriptor, default_color_type > >(vertex_color), associative_property_map< std::map< edge_descriptor, default_color_type > >(edge_color))
 
 boost::if (iG_buf.empty()&&vG_buf.empty())
 
template<typename Graph , typename Func , typename Seq >
 boost::BOOST_CONCEPT_REQUIRES (((IncidenceGraphConcept< Graph >))((EdgeListGraphConcept< Graph >)),(void)) two_graphs_common_spanning_trees(const Graph &iG
 
 boost::for (;curr!=last;++curr) iGO.push_back(*curr)
 
 boost::two_graphs_common_spanning_trees (iG, iGO, vG, vGO, func, inL)
 

Variables

Order boost::iG_map
 
Order const Graph & boost::vG
 
Order const Graph Order boost::vG_map
 
Order const Graph Order Func boost::func
 
Order const Graph Order Func Seq boost::inL
 
bimap_type boost::iG_bimap
 
bimap_type boost::vG_bimap
 
edge_iterator boost::current
 
edge_iterator boost::last
 
std::stack< edge_descriptor > boost::iG_buf
 
std::stack< edge_descriptor > boost::vG_buf
 
std::map< vertex_descriptor,
edge_descriptor > 
boost::tree_map
 
std::map< vertex_descriptor,
vertex_descriptor > 
boost::pred_map
 
std::map< vertex_descriptor, int > boost::dist_map
 
std::map< vertex_descriptor, int > boost::low_map
 
detail::bridges_visitor
< associative_property_map
< std::map< vertex_descriptor,
edge_descriptor >
>, associative_property_map
< std::map< vertex_descriptor,
vertex_descriptor >
>, associative_property_map
< std::map< vertex_descriptor,
int >
>, associative_property_map
< std::map< vertex_descriptor,
int > >, std::stack
< edge_descriptor > > 
boost::iG_vis (associative_property_map< std::map< vertex_descriptor, edge_descriptor > >(tree_map), associative_property_map< std::map< vertex_descriptor, vertex_descriptor > >(pred_map), associative_property_map< std::map< vertex_descriptor, int > >(dist_map), associative_property_map< std::map< vertex_descriptor, int > >(low_map), iG_buf)
 
detail::bridges_visitor
< associative_property_map
< std::map< vertex_descriptor,
edge_descriptor >
>, associative_property_map
< std::map< vertex_descriptor,
vertex_descriptor >
>, associative_property_map
< std::map< vertex_descriptor,
int >
>, associative_property_map
< std::map< vertex_descriptor,
int > >, std::stack
< edge_descriptor > > 
boost::vG_vis (associative_property_map< std::map< vertex_descriptor, edge_descriptor > >(tree_map), associative_property_map< std::map< vertex_descriptor, vertex_descriptor > >(pred_map), associative_property_map< std::map< vertex_descriptor, int > >(dist_map), associative_property_map< std::map< vertex_descriptor, int > >(low_map), vG_buf)
 
std::map< edge_descriptor, bool > boost::iG_inL
 
std::map< edge_descriptor, bool > boost::vG_inL
 
associative_property_map
< std::map< edge_descriptor,
bool > > 
boost::aiG_inL (iG_inL)
 
associative_property_map
< std::map< edge_descriptor,
bool > > 
boost::avG_inL (vG_inL)
 
std::vector< edge_descriptor > boost::iGO
 
std::vector< edge_descriptor > boost::vGO
 
edge_iterator boost::curr