Linear-time graph modular decomposition implemented with C++ and Python 3.
The code implements the algorithm described in Simpler, Linear-Time Modular Decomposition via Recursive Factorizing Permutations by Marc Tedder, Derek Corneil, Michel Habib, and Christophe Paul (appeared at ICALP 2008).
- C++
- gcc version 11 or 12 (Mac:
brew install gcc@12) - CMake (Mac:
brew install cmake)
- gcc version 11 or 12 (Mac:
- Python
- NetworkX (
pip install networkx) - NumPy (
pip install numpy)
- NetworkX (
- C++
- GoogleTest (automatically installed during the build process)
- lcov (Mac:
brew install lcov)
- Python
- pytest (
pip install pytest) - pytest-cov (
pip install pytest-cov) - MyPy (
pip install mypy)
- pytest (
TBD
| Task | Command | Note |
|---|---|---|
| Run all unit tests | make test |
Coverage info will be created as coverage/lcov.info. |
| Run C++ unit tests | make test-cpp |
|
| Run Python unit tests | make test-py |
|
| Clean build and binary files | make clean |
|
| Open Jupyter Lab | make lab |
Jupyter Notebooks are in the notebooks directory. |
- NetworkX stubs taken from eggplants/networkx-stubs