33#ifndef UG4_GRAPH_INTERFACE_BIDIR_BOOST_H
34#define UG4_GRAPH_INTERFACE_BIDIR_BOOST_H
41 : adjacency_graph_tag, bidirectional_graph_tag, vertex_list_graph_tag {};
44struct graph_traits<
ug::BidirectionalMatrix<T>>{
44struct graph_traits<
ug::BidirectionalMatrix<T>> {
…};
60std::pair<counting_iterator<size_t>, counting_iterator<size_t> >
vertices(
63 counting_iterator<size_t> b(0);
64 counting_iterator<size_t> e(M.
num_rows());
66 return std::make_pair(b,e);
60std::pair<counting_iterator<size_t>, counting_iterator<size_t> >
vertices( {
…}
106std::pair<typename graph_traits<T>::adjacency_iterator,
107 typename graph_traits<T>::adjacency_iterator>
110 typedef typename graph_traits<T>::adjacency_iterator a;
112 typename T::const_row_iterator b = M.
begin_row(v);
113 typename T::const_row_iterator e = M.
end_row(v);
115 return std::make_pair(a(&b, &e), a(&e, &e));
119std::pair<typename graph_traits<T>::adjacency_iterator,
120 typename graph_traits<T>::adjacency_iterator>
124 typedef typename graph_traits<ug::SparseMatrix<value_type>>::adjacency_iterator a;
126 typename T::const_row_iterator b = M.
begin_col(v);
127 typename T::const_row_iterator e = M.
end_col(v);
129 return std::make_pair(a(&b, &e), a(&e, &e));
134inline std::pair<SM_out_edge_iterator<typename T::value_type>,
135 SM_out_edge_iterator<typename T::value_type>>
141 return std::make_pair(Iter(a.first, v), Iter(a.second, v));
145inline std::pair<SM_out_edge_iterator<typename T::value_type, false>,
146 SM_out_edge_iterator<typename T::value_type, false>>
152 return std::make_pair(Iter(a.first, v), Iter(a.second, v));
156inline SM_edge_weight_map<typename T::value_type, ug::BidirectionalMatrix<T>>
163struct property_map<
ug::BidirectionalMatrix<ug::SparseMatrix<T>>, vertex_index_t>{
163struct property_map<
ug::BidirectionalMatrix<ug::SparseMatrix<T>>, vertex_index_t> {
…};
169inline typename property_map<ug::BidirectionalMatrix<ug::SparseMatrix<T>>, vertex_index_t>::const_type
Definition sparsematrix_boost.h:37
Definition sparsematrix_boost.h:424
Definition sparsematrix_boost.h:152
int target() const
Definition sparsematrix_boost.h:169
int source() const
Definition sparsematrix_boost.h:166
Definition sparsematrix_boost.h:211
Definition sparsematrix_boost.h:350
Definition bidirectional.h:47
int in_degree(int v) const
Definition bidirectional.h:106
const_row_iterator end_row(int row) const
Definition bidirectional.h:126
const_row_iterator begin_col(int col) const
Definition bidirectional.h:135
const_row_iterator begin_row(int row) const
Definition bidirectional.h:118
int out_degree(int v) const
Definition bidirectional.h:97
const_row_iterator end_col(int col) const
Definition bidirectional.h:142
int num_rows() const
Definition bidirectional.h:83
int degree(int v) const
Definition bidirectional.h:114
#define untested()
Definition lua_table_handle.cpp:15
Definition boost_serialization_routines.h:49
std::pair< typename graph_traits< T >::adjacency_iterator, typename graph_traits< T >::adjacency_iterator > adjacent_vertices(size_t v, ug::BidirectionalMatrix< T > const &M)
Definition bidirectional_boost.h:108
std::pair< SM_out_edge_iterator< typename T::value_type >, SM_out_edge_iterator< typename T::value_type > > out_edges(size_t v, ug::BidirectionalMatrix< T > const &g)
Definition bidirectional_boost.h:136
std::pair< typename graph_traits< T >::adjacency_iterator, typename graph_traits< T >::adjacency_iterator > coadjacent_vertices(size_t v, ug::BidirectionalMatrix< T > const &M)
Definition bidirectional_boost.h:121
int out_degree(int v, ug::BidirectionalMatrix< T > const &M)
Definition bidirectional_boost.h:76
int degree(int v, ug::BidirectionalMatrix< T > const &M)
Definition bidirectional_boost.h:88
std::pair< SM_out_edge_iterator< typename T::value_type, false >, SM_out_edge_iterator< typename T::value_type, false > > in_edges(size_t v, ug::BidirectionalMatrix< T > const &g)
Definition bidirectional_boost.h:147
int in_degree(int v, ug::BidirectionalMatrix< T > const &M)
Definition bidirectional_boost.h:82
std::pair< counting_iterator< size_t >, counting_iterator< size_t > > vertices(ug::BidirectionalMatrix< T > const &M)
Definition bidirectional_boost.h:60
int num_vertices(ug::BidirectionalMatrix< T > const &M)
Definition bidirectional_boost.h:70
SM_edge_weight_map< typename T::value_type, ug::BidirectionalMatrix< T > > get(edge_weight_t, ug::BidirectionalMatrix< T > const &g)
Definition bidirectional_boost.h:157
size_t target(SM_edge< typename T::value_type > const &e, ug::BidirectionalMatrix< T > const &m)
Definition bidirectional_boost.h:100
size_t source(SM_edge< typename T::value_type > const &e, ug::BidirectionalMatrix< T > const &)
Definition bidirectional_boost.h:94
T value_type
Definition sparsematrix_interface.h:2
Definition bidirectional_boost.h:41
disallow_parallel_edge_tag edge_parallel_category
Definition bidirectional_boost.h:50
SM_out_edge_iterator< value_type, false > in_edge_iterator
Definition bidirectional_boost.h:53
SM_adjacency_iterator< value_type > adjacency_iterator
Definition bidirectional_boost.h:54
int vertices_size_type
Definition bidirectional_boost.h:56
counting_iterator< size_t > vertex_iterator
Definition bidirectional_boost.h:51
bidirectional_tag directed_category
Definition bidirectional_boost.h:48
int degree_size_type
Definition bidirectional_boost.h:55
SM_edge< value_type > edge_descriptor
Definition bidirectional_boost.h:47
BS_traversal_tag traversal_category
Definition bidirectional_boost.h:49
SM_out_edge_iterator< value_type, true > out_edge_iterator
Definition bidirectional_boost.h:52
int vertex_descriptor
Definition bidirectional_boost.h:46
T::value_type value_type
Definition bidirectional_boost.h:45
type const_type
Definition bidirectional_boost.h:165
sparse_matrix_index_map< T > type
Definition bidirectional_boost.h:164