Skip to content

[FEATURE] Supporting undirected CSR graphs #458

@Becheler

Description

@Becheler

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:

Image

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions