graph LR DCPP["๐งฎ digraphx-cpp\nC++ graph algorithms"] --> D["๐ฏ Negative cycle\n+ parametric\n+ min-cost flow"] DPY["๐ digraphx\nPython package"] --> D DRS["๐ฆ digraphx-rs\nRust crate"] --> D style DCPP fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style DPY fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style DRS fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style D fill:#e8eaf6,stroke:#283593,color:#2e3440,stroke-width:3px
graph LR NCPP["๐งฎ netoptim-cpp\nC++ separation oracles"] --> N["๐ฏ Feasibility + Optimal\nmatrix scaling\ncutting-plane oracles"] NPY["๐ netoptim\nPython package"] --> N NRS["๐ฆ netoptim-rs\nRust crate"] --> N style NCPP fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style NPY fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style NRS fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style N fill:#fce4ec,stroke:#880e4f,color:#2e3440,stroke-width:3px
graph TD H["๐ Howard skeleton\nrelax โ find_cycle โ check โ yield"] --> R1["๐ถ relax_pred\nBellman-Ford fwd"] H --> R2["๐ relax_succ\nreverse"] H --> C["โ is_negative\noptional check"] style H fill:#e8eaf6,stroke:#283593,color:#2e3440,stroke-width:3px style R1 fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style R2 fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style C fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px
graph LR A["๐ฆ HashMap\nN โ Nbrs"] --> GT["๐ graph_traits\nNode / Edge / Cycle"] B["๐ฆ BTreeMap"] --> GT C["๐ฆ Vec>"] --> GT D["๐ฆ CSRDiGraph\narray-backed"] --> GT GT --> E["๐งฎ algorithms\nneg_cycle ยท parametric\nmin_cycle_ratio ยท mcf"] style A fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style B fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style C fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style D fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px style GT fill:#e8eaf6,stroke:#283593,color:#2e3440,stroke-width:3px style E fill:#fce4ec,stroke:#880e4f,color:#2e3440,stroke-width:3px
graph LR P["๐ py2cpp\nv1.6.4 โ v1.6.5"] --> X["๐ธ xnetwork-cpp\nv1.7.7 โ v1.7.8\npin Py2Cpp v1.6.5"] X --> D["๐งฎ digraphx-cpp\nv1.1.7 โ v1.1.8\npin Py2Cpp v1.6.5"] style P fill:#fff9c4,stroke:#f57f17,color:#2e3440,stroke-width:3px style X fill:#c8e6c9,stroke:#2e7d32,color:#2e3440,stroke-width:3px style D fill:#e3f2fd,stroke:#1565c0,color:#2e3440,stroke-width:3px