Clebsch-Gordan Coefficients¶
Real-valued SU(2) Clebsch-Gordan coefficients in the Condon-Shortley convention.
Description¶
Clebsch-Gordan (CG) coefficients describe the decomposition of the tensor product of two SU(2) representations into irreducible components:
Yuzuha computes CG coefficients using the Condon-Shortley convention, in which all
coefficients are real-valued. They are accessed internally by canonical_basis and
are cached in-memory for repeated evaluations.
Condon-Shortley Convention¶
The Condon-Shortley convention fixes the relative phases of CG coefficients so that:
- All coefficients are real numbers
- The coefficients form an orthonormal basis:
- Selection rules are enforced automatically:
- Magnetic number conservation: \(m_1 + m_2 = m_3\)
- Triangle inequality: \(|j_1 - j_2| \leq j_3 \leq j_1 + j_2\)
- Integer total spin: \(j_1 + j_2 + j_3 \in \mathbb{Z}\)
Internal Access¶
CG coefficients are not directly exposed as a Python function but are used internally
by canonical_basis. The Rust layer provides clebsch_gordan(j1, m1, j2, m2, j3, m3)
and caches results in a thread-local in-memory store.
Caching¶
CG coefficients are cached at two levels:
- In-memory (Rust,
once_cell): Per-process cache keyed by \((j_1, m_1, j_2, m_2, j_3, m_3)\) - SQLite (Rust): Canonical basis tensors built from CG coefficients are persisted to disk; individual CG values are not stored separately
Selection Rules¶
| Rule | Condition |
|---|---|
| Magnetic conservation | \(m_1 + m_2 = m_3\) |
| Triangle inequality | \(\lvert j_1 - j_2 \rvert \leq j_3 \leq j_1 + j_2\) |
| Integer sum | \(j_1 + j_2 + j_3 \in \mathbb{Z}\) |
| Range | \(-j_i \leq m_i \leq j_i\) for each \(i\) |
Any coefficient with indices violating these rules is identically zero.
Orthonormality Relations¶
Column orthonormality (sum over coupled states):
Row orthonormality (sum over output states):
See Also¶
- Canonical Basis: Uses CG coefficients to build the
full CG tensor for a
CGSpec - Metric Tensor: Arrow-reversal transformation built on CG phases
- Triangle Rules: Triangle-inequality utilities
- Yuzuha Protocol — Basis Conventions: Phase convention requirements
Notes¶
The Rust implementation uses the standard Racah formula to compute CG coefficients from scratch, then caches the results. For large spins (e.g. \(j > 10\)), the computation is still fast because the cache is populated once and reused.