phasic::SCCGraph

Strongly Connected Component (SCC) decomposition of a graph.

Methods

Name Description
SCCGraph Construct from C ptd_scc_graph (takes ownership)
operator=
n_sccs Number of strongly connected components.
scc_at Get SCC vertex by index.
sccs_in_topo_order Get all SCCs in topological order.
scc_sizes Get sizes of all SCCs.
original_graph Get reference to original graph.
scc_hashes Compute content hash for each SCC.
c_ptr Access underlying C struct (for C API interop)

SCCGraph

phasic::SCCGraph::SCCGraph(struct ptd_scc_graph *scc_graph)

Construct from C ptd_scc_graph (takes ownership)

Parameters:

  • scc_graph — C struct pointer (will be freed on destruction)

SCCGraph

phasic::SCCGraph::SCCGraph(const SCCGraph &)=delete

operator=

SCCGraph & phasic::SCCGraph::operator=(const SCCGraph &)=delete

SCCGraph

phasic::SCCGraph::SCCGraph(SCCGraph &&other) noexcept

operator=

SCCGraph & phasic::SCCGraph::operator=(SCCGraph &&other) noexcept

n_sccs

size_t phasic::SCCGraph::n_sccs() const

Number of strongly connected components.

scc_at

const SCCVertex & phasic::SCCGraph::scc_at(size_t index) const

Get SCC vertex by index.

Parameters:

  • index — SCC index (0 to n_sccs()-1)

Returns: Reference to SCCVertex (valid while SCCGraph exists)

sccs_in_topo_order

std::vector< SCCVertex > phasic::SCCGraph::sccs_in_topo_order() const

Get all SCCs in topological order.

Topological ordering ensures dependencies are processed first. Essential for correct trace stitching.

Returns: Vector of SCC vertices in topological order

scc_sizes

std::vector< size_t > phasic::SCCGraph::scc_sizes() const

Get sizes of all SCCs.

Returns: Vector of vertex counts per SCC

original_graph

const Graph & phasic::SCCGraph::original_graph() const

Get reference to original graph.

The original graph that was decomposed.

Returns: Non-owning reference to original graph

scc_hashes

std::vector< std::string > phasic::SCCGraph::scc_hashes() const

Compute content hash for each SCC.

Hashes the subgraph formed by each SCC’s internal vertices. Used for cache lookups.

Returns: Vector of hex hash strings (one per SCC)

c_ptr

struct ptd_scc_graph * phasic::SCCGraph::c_ptr()

Access underlying C struct (for C API interop)

c_ptr

const struct ptd_scc_graph * phasic::SCCGraph::c_ptr() const