---
title: "Index"
---

**Version:** 1.0
**Date:** 2026-04-09
**Status:** All 27 content files complete. Converted to Quarto book with native cross-references.

## Reading Guide {.unnumbered}

This Supplementary Online Material (SOM) provides exhaustive mathematical and algorithmic documentation for every algorithm in the phasic library. Each file contains formal definitions, theorems with proofs, algorithm pseudocode with correspondence tables, complexity analysis, and correctness arguments.

**How to read:** Files are numbered 01–27. A file may only reference files with a lower number. The prerequisites listed in each file's Introduction section give the minimal reading order. For a complete sequential reading, proceed in numerical order.

**Notation:** All notation follows `docs/notation_standard.md`. The Symbol Quick Reference (Section 12 of that document) is the master symbol table.

**Relationship to other documentation:** The SOM formalizes and proves; it does not duplicate API documentation (`docs/pages/`), tutorials, or how-to guides. Implementation Notes sections bridge the SOM to the codebase.

## Document dependency DAG {.unnumbered}

```
01 Preliminaries
 ├── 02 Graph Representation
 │    ├── 03 Numerical Primitives
 │    ├── 04 SCC and Topological Sort
 │    │    ├── 05 Graph Normalization
 │    │    │    ├── 06 Graph Elimination
 │    │    │    │    ├── 07 Reward Transformation
 │    │    │    │    ├── 10 Symbolic Graph Elimination ← 09
 │    │    │    │    ├── 11 Trace System ← 09
 │    │    │    │    │    ├── 12 Graph Hashing
 │    │    │    │    │    └── 13 SCC Trace Stitching ← 04
 │    │    │    │    └── 14 Distribution Computation
 │    │    │    │         ├── 15 Moment Computation
 │    │    │    │         ├── 16 PDF Gradients
 │    │    │    │         └── 17 Sampling
 │    │    │    └── 08 State Space Construction
 │    │    └── 09 Symbolic Expressions
 │    ├── 23 State Indexing
 │    └── 24 Hex Grid
 ├── 18 SVGD ← 14, 15
 ├── 19 MCMC ← 14, 15
 ├── 20 BFFG ← 17
 ├── 21 Method of Moments ← 15
 ├── 22 Probability Matching ← 14
 ├── 25 JAX Integration ← 09, 11, 14
 ├── 26 Graph Builder ← 11, 14, 15
 └── 27 Van Loan Equivalence ← 06, 14, 15
```

## Global Algorithm Registry {.unnumbered}

| Algorithm | Title | Source function(s) |
|-----------|-------|--------------------|
| @alg-02-avl-find-or-insert | AVL Find-or-Insert | `ptd_avl_tree_find_or_insert` |
| @alg-02-graph-validation | Graph Validation | `ptd_validate_graph` |
| @alg-02-graph-clone | Graph Clone | `ptd_clone_graph` |
| @alg-03-kahan-summation | Kahan Summation | `kahan_init`, `kahan_add`, `kahan_result` |
| @alg-03-log-space-weight | Log-Space Weight Evaluation | `ptd_graph_update_weights` (log mode) |
| @alg-04-tarjan-scc | Tarjan's SCC Detection | `ptd_find_strongly_connected_components` |
| @alg-04-topological-sort | Topological Sort of Condensation DAG | `ptd_directed_graph_topological_sort` |
| @alg-05-continuous-normalization | Continuous Graph Normalization | `ptd_normalize_graph` |
| @alg-05-discrete-normalization | Discrete Graph Normalization | `ptd_dph_normalize_graph` |
| @alg-06-vertex-elimination | Vertex Elimination (Single Vertex) | `ptd_graph_ex_absorbation_time_comp_graph` |
| @alg-06-full-elimination | Full Graph Elimination | `ptd_graph_ex_absorbation_time_comp_graph` |
| @alg-06-moment-commands | Moment Computation via Elimination Commands | `ptd_expected_waiting_time` |
| @alg-07-reward-transformation | Reward Transformation | `ptd_graph_reward_transform` |
| @alg-08-generate-state-space | GenerateStateSpace | `ptd_find_or_create_vertex` |
| @alg-09-expression-evaluation | Expression Evaluation | `ptd_expr_evaluate` |
| @alg-10-symbolic-elimination | Symbolic Graph Elimination | `phasic_symbolic.c` |
| @alg-10-symbolic-instantiation | Symbolic Graph Instantiation | `phasic_symbolic.c` |
| @alg-11-trace-recording | Trace Recording | `record_elimination_trace` |
| @alg-11-trace-evaluation | Trace Evaluation | `evaluate_trace` |
| @alg-12-graph-hash | Graph Content Hash | `ptd_hash_graph` |
| @alg-13-scc-trace-stitching | SCC-Based Trace Decomposition and Stitching | `hierarchical_trace_cache.py` |
| @alg-14-dph-forward-step | DPH Forward Step | `ptd_dph_probability_distribution_step` |
| @alg-14-cph-uniformization | CPH PDF via Uniformization | `ptd_probability_distribution_context_create` |
| @alg-15-kth-moment | k-th Moment Computation | `ptd_expected_waiting_time` |
| @alg-15-sojourn-cross-moments | Expected Sojourn Times and Cross-Moments | `ptd_expected_sojourn_time_subset` |
| @alg-16-pdf-gradient | PDF + Gradient Computation | `ptd_graph_pdf_with_gradient` |
| @alg-17-unconditioned-sampling | Unconditioned Path Sampling | `ptd_random_sample_path` |
| @alg-17-backward-probability | Backward Probability Computation | `ptd_backward_probabilities` |
| @alg-17-conditioned-sampling | Conditioned Path Sampling | `ptd_random_sample_path_conditioned` |
| @alg-18-svgd | SVGD Optimization | `SVGD.optimize()` |
| @alg-19-mcmc | Metropolis-Hastings with Adaptive Proposals | `MCMC.sample()` |
| @alg-20-bffg | BFFG Log-Probability Estimation | `bffg_log_prob` |
| @alg-21-method-of-moments | Method of Moments Estimation | `method_of_moments` |
| @alg-22-probability-matching | Probability Matching Estimation | `probability_matching` |
| @alg-23-index-to-properties | IndexToProperties | `PropertySet.index_to_props` |
| @alg-23-properties-to-index | PropertiesToIndex | `PropertySet.props_to_index` |
| @alg-24-hex-grid-construction | HexGridConstruction | `HexGrid.from_shapefile` |
| @alg-24-hex-neighbor-enumeration | HexNeighborEnumeration | `HexGrid.neighbors` |
| @alg-25-jax-pmf | JAX-Compatible PMF Computation | `compute_pmf_ffi` |
| @alg-26-graph-builder-pmf | GraphBuilder PMF Computation | `GraphBuilder.compute_pmf` |

## Global Definition Registry {.unnumbered}

Definitions are numbered NN.M (file number, sequential within file). This table is populated as batches complete.

| Definition | Name | File |
|------------|------|------|
| — | *To be populated* | — |

## Coverage Matrix {.unnumbered}

Every public function in the phasic codebase must appear in at least one SOM file's Implementation Notes section. This matrix is populated during the final homogeneity pass (Batch 15, check H2).

### `src/c/phasic.c` {.unnumbered}

| Function | SOM file(s) | Status |
|----------|-------------|--------|
| — | *To be populated* | — |

### `src/c/phasic_symbolic.c` {.unnumbered}

| Function | SOM file(s) | Status |
|----------|-------------|--------|
| — | *To be populated* | — |

### `src/c/phasic_hash.c` {.unnumbered}

| Function | SOM file(s) | Status |
|----------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/trace_elimination.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/svgd.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/mcmc.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/bffg.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/method_of_moments.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/probability_matching.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/state_indexing.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/phasic/hex_grid.py` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

### `src/cpp/parameterized/graph_builder.cpp` {.unnumbered}

| Function/Class | SOM file(s) | Status |
|----------------|-------------|--------|
| — | *To be populated* | — |

## Revision History {.unnumbered}

| Version | Date | Changes |
|---------|------|---------|
| 0.1 | 2026-04-08 | Skeleton created with file listing, dependency DAG, empty registries |
| 1.0 | 2026-04-09 | All 27 content files complete. Global algorithm registry populated (40 algorithms). File listing updated with per-file summaries. |
