Central Wishart and inverse Wishart moments — the recursion, live (real · complex · quaternion)

Two families, one recursion. Forward: {𝔼[Wrpκ(W)]}. Inverse: {𝔼[W−rpκ(W−1)]}. The same Stein/Haff identity generates both, in all three division algebras at once — real (β = 1), complex (β = 2), quaternion (β = 4) — deformed through the single constant cβ = 2/β − 1 ∈ {1, 0, −½}. But it generates them in opposite directions, and that one asymmetry is what separates the two halves of this page: forward, each level is a linear rewrite of the level below, with coefficients polynomial in n; inverse, each level is a linear system to be solved, with coefficients rational in ñ = n − m + 1 − α whose poles are exactly the existence thresholds. Use the switch below to move between them.

Family 𝔼[Wrpκ(W)] — each level is a linear rewrite of the one below

Part 1The central recursion — dependency graph, levels 0–5

Every state Φr,κ = 𝔼[Wrpκ(W)] of the central family, arranged by level N = r + |κ|. Solid arrows are the three terms of the central master recursion — each state is a linear rewrite of states one level below, identically in β (only two weights change). Dashed arrows are the scalar trace reduction, which stays within a level. Press Play to watch the recursion fill in level by level, or click any state to see its instantiated recursion.

prepend  (n+cβ(r−1))Σ·Φr−1,κ trace split  Σ·Φr−2−j, κ∪{j+1} part merge  (1+cβ)κlΣ·Φr+κl−1, κ(l) scalar trace reduction matrix state (r ≥ 1) scalar state (r = 0)

Part 2Generate it yourself — run the central recursion in your browser

Part 1 shows the structure. This section computes the actual central tables — the full family {𝔼[Wr pκ(W)] : r + |κ| ≤ N} — live, in your browser, in exact arithmetic, for all three cases: real W = Z′Z (β = 1) and complex W = Z*Z (β = 2) — the two cases treated by Hillier & Kan (2024) — and quaternion W = ZDZ (β = 4, twin constant c₄ = −½; coefficients are signed dyadic rationals, exact in float64). Every table is a combination of words in Σ alone with polynomial-in-n coefficients; the stored-term counts are identical across the three cases (no exact cancellations occur centrally) — only the coefficients differ. The computation runs in a background Web Worker, is capped at N ≤ 14 (the float64-exact domain), and is gated: the Self-test button recomputes all three cases to N = 6 and checks them, term by term via SHA-256 of a canonical serialization, against digests generated from an independent exact-rational implementation of the same recursion.

N = 10: 11,173 stored terms — instantaneous.
Idle. Pick a case and a level, then Run. (Self-test: not yet run.)

Timing note: central tables are small — level 14 stores 157,354 terms across all states, and a typical laptop computes the whole family in well under a second. The largest coefficient at level N occurs in the real case and is exactly 2N−1(N−1)! — 5.1×1013 at N = 14, against the float64-exact ceiling 253 = 9.0×1015. The cap therefore keeps a full level of margin; beyond it, exact bignum engines take over.