33 #ifndef UG_PARALLEL_MATRIX_BOOST_H
34 #define UG_PARALLEL_MATRIX_BOOST_H
43 template <
class T>
struct graph_traits<
ug::BGLParallelMatrix<ug::ParallelMatrix<T>>>{
59 std::pair<typename ug::BGLParallelMatrix<T>::vertex_iterator,
66 return std::make_pair(b,e);
115 inline SM_edge_weight_map<T>
123 inline std::pair<typename ug::BGLParallelMatrix<T>::out_edge_iterator,
135 return std::make_pair(b, e);
139 inline std::pair<typename ug::BGLParallelMatrix<T>::adjacency_iterator,
149 return std::make_pair(b,e);
154 :
public put_get_helper<size_t, bglp_matrix_index_map<T> > {
183 struct property_map<
ug::BGLParallelMatrix<T>, vertex_index_t>{
189 typename property_map<ug::BGLParallelMatrix<T>, vertex_index_t>::const_type
192 typedef typename property_map<ug::BGLParallelMatrix<T>, vertex_index_t>::type type;
199 template <
class T>
struct graph_traits<
ug::ParallelMatrix<ug::SparseMatrix<T>>>{
214 std::pair<counting_iterator<size_t>, counting_iterator<size_t> >
vertices(
217 counting_iterator<size_t> b(0);
218 counting_iterator<size_t> e(M.num_rows());
220 return std::make_pair(b,e);
224 struct property_map<
ug::ParallelMatrix<T>, vertex_index_t>{
234 using boost::counting_iterator;
238 std::pair<counting_iterator<size_t>, counting_iterator<size_t> >
vertices(
241 counting_iterator<size_t> b(0);
242 counting_iterator<size_t> e(M.num_rows());
244 return std::make_pair(b,e);
253 return std::make_pair(Iter(a.first), Iter(a.second));
Definition: sparsematrix_boost.h:37
Definition: sparsematrix_boost.h:152
Definition: sparsematrix_boost.h:211
Definition: parallel_matrix_boost.h:154
readable_property_map_tag category
Definition: parallel_matrix_boost.h:158
value_type operator[](T_ x) const
Definition: parallel_matrix_boost.h:171
value_type operator[](int x) const
Definition: parallel_matrix_boost.h:174
bglp_matrix_index_map(X const &)
Definition: parallel_matrix_boost.h:168
vertex_index_type value_type
Definition: parallel_matrix_boost.h:159
size_t vertex_index_type
Definition: parallel_matrix_boost.h:156
bglp_matrix_index_map & operator=(const bglp_matrix_index_map &s)
Definition: parallel_matrix_boost.h:177
vertex_descriptor key_type
Definition: parallel_matrix_boost.h:161
vertex_index_type reference
Definition: parallel_matrix_boost.h:160
size_t vertex_descriptor
Definition: parallel_matrix_boost.h:157
bglp_matrix_index_map(bglp_matrix_index_map const &p)
Definition: parallel_matrix_boost.h:163
bglp_matrix_index_map(ug::SparseMatrix< T >const &, boost::vertex_index_t)
Definition: parallel_matrix_boost.h:165
Definition: sparsematrix_boost.h:350
Definition: parallel_matrix.h:124
Definition: parallel_matrix.h:193
vertex_descriptor target() const
Definition: parallel_matrix.h:202
vertex_descriptor source() const
Definition: parallel_matrix.h:199
Definition: parallel_matrix.h:168
Definition: parallel_matrix.h:68
adjacency_iterator begin_adjacent_vertices(int row) const
Definition: parallel_matrix.h:264
out_edge_iterator begin_out_edges(int row) const
Definition: parallel_matrix.h:274
vertex_iterator end_vertices() const
Definition: parallel_matrix.h:313
adjacency_iterator end_adjacent_vertices(int row) const
Definition: parallel_matrix.h:269
boost::filter_iterator< filter_local, vertex_iterator_ > vertex_iterator
Definition: parallel_matrix.h:122
vertex_iterator begin_vertices() const
Definition: parallel_matrix.h:304
out_edge_iterator end_out_edges(int row) const
Definition: parallel_matrix.h:279
Wrapper for sequential matrices to handle them in parallel.
Definition: parallel_matrix.h:65
Definition: parallel_matrix.h:43
int local() const
Definition: parallel_matrix.h:50
int owner() const
Definition: parallel_matrix.h:49
#define untested()
Definition: lua_table_handle.cpp:15
Definition: boost_serialization_routines.h:49
std::pair< typename ug::BGLParallelMatrix< T >::out_edge_iterator, typename ug::BGLParallelMatrix< T >::out_edge_iterator > out_edges(typename ug::BGLParallelMatrix< T >::vertex_descriptor v, ug::BGLParallelMatrix< T > const &M)
Definition: parallel_matrix_boost.h:125
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
int out_degree(int v, ug::BidirectionalMatrix< T > const &M)
Definition: bidirectional_boost.h:76
std::pair< counting_iterator< size_t >, counting_iterator< size_t > > vertices(ug::BidirectionalMatrix< T > const &M)
Definition: bidirectional_boost.h:60
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
int num_vertices(ug::BidirectionalMatrix< T > const &M)
Definition: bidirectional_boost.h:70
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
std::pair< counting_iterator< size_t >, counting_iterator< size_t > > vertices(ug::ParallelMatrix< ug::SparseMatrix< T >> const &M)
Definition: parallel_matrix_boost.h:214
int local(bglp_vertex_descriptor p)
Definition: parallel_matrix.h:57
int owner(bglp_vertex_descriptor p)
Definition: parallel_matrix.h:53
T value_type
Definition: sparsematrix_interface.h:2
Definition: sparsematrix_boost.h:309
SM_traversal_tag traversal_category
Definition: parallel_matrix_boost.h:52
directed_tag directed_category
Definition: parallel_matrix_boost.h:47
disallow_parallel_edge_tag edge_parallel_category
Definition: parallel_matrix_boost.h:51
ug::detail::bglp_vertex_descriptor vertex_descriptor
Definition: parallel_matrix_boost.h:45
type::edge edge_descriptor
Definition: parallel_matrix_boost.h:46
int degree_size_type
Definition: parallel_matrix_boost.h:53
ug::BGLParallelMatrix< ug::ParallelMatrix< T > > type
Definition: parallel_matrix_boost.h:44
type::vertex_iterator vertex_iterator
Definition: parallel_matrix_boost.h:50
int vertices_size_type
Definition: parallel_matrix_boost.h:54
type::out_edge_iterator out_edge_iterator
Definition: parallel_matrix_boost.h:48
type::adjacency_iterator adjacency_iterator
Definition: parallel_matrix_boost.h:49
directed_tag directed_category
Definition: parallel_matrix_boost.h:202
disallow_parallel_edge_tag edge_parallel_category
Definition: parallel_matrix_boost.h:206
SM_adjacency_iterator< T > adjacency_iterator
Definition: parallel_matrix_boost.h:205
int degree_size_type
Definition: parallel_matrix_boost.h:208
int vertices_size_type
Definition: parallel_matrix_boost.h:209
counting_iterator< size_t > vertex_iterator
Definition: parallel_matrix_boost.h:203
SM_traversal_tag traversal_category
Definition: parallel_matrix_boost.h:207
SM_edge< T > edge_descriptor
Definition: parallel_matrix_boost.h:201
SM_out_edge_iterator< T > out_edge_iterator
Definition: parallel_matrix_boost.h:204
int vertex_descriptor
Definition: parallel_matrix_boost.h:200
type const_type
Definition: parallel_matrix_boost.h:185
bglp_matrix_index_map< T > type
Definition: parallel_matrix_boost.h:184
T::value_type value_type
Definition: parallel_matrix_boost.h:225
sparse_matrix_index_map< value_type > type
Definition: parallel_matrix_boost.h:226
type const_type
Definition: parallel_matrix_boost.h:227
#define incomplete()
Definition: trace.h:10