# Paper figures

10 files: five figures, each as PDF and PNG.

| File | Content |
|---|---|
| `fig1.{pdf,png}` | Per-tensor stacked bar of bf16 byte-marginal entropy (sign / top-7 exponent bits / low exponent bit / 7 fraction bits), grouped by tensor category — embedding / attention / mlp / lm_head / other. |
| `fig2.{pdf,png}` | Per-tensor best-method ratio vs per-tensor `R_marginal` ceiling, with `y = x` reference line. Two panels: bf16 (`bf16_split` per-file) and Q4_K (`qb_k4`). |
| `fig3.{pdf,png}` | Distribution of per-tensor H(nibble) across the Q4_K atlas, with the 4.0-bit uniform ceiling annotated. Median ≈ 3.86 bits — i.e., 96.5 % of uniform, leaving little headroom. |
| `fig4.{pdf,png}` | Distribution of Pearson correlations across the 250 (model, role, layer-pair) tuples in the cross-layer atlas, with model-level CI band. Median +0.0004 — the empirical basis for the cross-layer null reported in §8. |
| `fig5.{pdf,png}` | Decompress MB/s (log) vs byte-weighted geomean ratio for every method in `results/results.jsonl.zst` with ≥ 5 samples, colour-coded by method class. Pareto frontier highlights the trade-off between OpenZL trained / `bf16_split` (≈1.49×) and the throughput-optimised zstd-19 bytegrouped variants. |

## How these were produced

Run from the repo root with the same venv used elsewhere:

```bash
python3 -m venv .venv && . .venv/bin/activate
pip install numpy matplotlib zstandard pandas
python3 render_figures.py
```

This is the same code as `notebooks/figures.ipynb` (five rendering cells, one per figure) packaged as a single CLI. Both read directly from the source data — no external fetches at run time.

## Source data

- `../results/results.jsonl.zst` — 7,960 unique benchmark rows / 11,942 verified method-evaluations. Used by Fig 2 and Fig 5.
- `../provenance/iter3_precommit/03_atlas/results.jsonl` — 580-row bf16 byte-marginal atlas. Used by Fig 1 and Fig 2.
- `../provenance/iter5/precheck_q/atlas_train.jsonl` — 180-row Q4_K nibble atlas. Used by Fig 3.
- `../provenance/iter5/precheck_l/atlas_train.jsonl` — 250-row cross-layer correlation atlas. Used by Fig 4.

All inputs ship in the repo and on the public mirror; running `render_figures.py` reproduces the 10 files bit-deterministically modulo matplotlib version / font rendering.
