Problem
Currently, the Boost Graph Library's compressed_sparse_row_graph only supports directed and bidirectional graphs. There are explicit comments in the codebase and documentation indicating that undirected CSR support is a planned but unimplemented feature:
compressed_sparse_row_graph.hpp:
At this time, the compressed sparse row graph can only be used to create directed and bidirectional graphs. In the future, undirected CSR graphs will also be supported.
doc/compressed_sparse_row.html:
At this time, the CSR graph type only supports directed and bidirectional graphs...
This is problematic for several reasons, e.g. for adjusting performance in my Louvain's implementation algorithm: I can't use Louvain on directed graphs, but I can't use undirected CSR. Consequently a gap exists between BGL implementations and GenLouvain (that uses CSR). Having an undirected CSR could bridge that gap:
Feature Request
Add support for undirected compressed sparse row (CSR) graphs to compressed_sparse_row_graph. This would improve memory efficiency and performance for large undirected graphs, matching the benefits provided for directed graphs.
Problem
Currently, the Boost Graph Library's
compressed_sparse_row_graphonly supports directed and bidirectional graphs. There are explicit comments in the codebase and documentation indicating that undirected CSR support is a planned but unimplemented feature:compressed_sparse_row_graph.hpp:doc/compressed_sparse_row.html:This is problematic for several reasons, e.g. for adjusting performance in my Louvain's implementation algorithm: I can't use Louvain on directed graphs, but I can't use undirected CSR. Consequently a gap exists between BGL implementations and GenLouvain (that uses CSR). Having an undirected CSR could bridge that gap:
Feature Request
Add support for undirected compressed sparse row (CSR) graphs to
compressed_sparse_row_graph. This would improve memory efficiency and performance for large undirected graphs, matching the benefits provided for directed graphs.