Kronecker Coefficients: Largest Known Computation
The Finding
We computed the complete Kronecker coefficient table for all triples of partitions of and :
| Partitions | Unique triples | Nonzero | Max | GPU time | |
|---|---|---|---|---|---|
| 20 | 627 | 41,081,980 | 32,672,202 (79.5%) | 6,408,361 | 3.7 sec |
| 30 | 5,604 | 29,332,098,144 | 26,368,860,547 (89.9%) | 24,233,221,539,853 | 7.4 min |
The S computation is, to our knowledge, the largest complete Kronecker coefficient table published. The previous systematic frontier in the peer-reviewed literature appears to be around : Bürgisser and Ikenmeyer (2008) computed Kronecker coefficients for small in their complexity analysis, and the Sage/GAP symmetric functions packages provide on-demand computation but no published complete tables beyond . A zbMATH and arXiv search (April 2026) found no published complete table for ; we cannot rule out unpublished or internal computations at comparable scale. We extended from to (a 20% increase in , but a 700 increase in the number of triples).
Why This Matters
Geometric Complexity Theory
Kronecker coefficients are central to the Mulmuley-Sohoni program for proving via algebraic geometry. The program requires understanding which Kronecker coefficients are zero vs. positive for specific partition families (near-rectangular shapes). Our complete S table provides exhaustive data for all partition shapes at this scale.
No Combinatorial Formula
Despite decades of effort, no combinatorial formula for Kronecker coefficients is known — this is one of the major open problems in algebraic combinatorics. Computing them requires either character-theoretic methods (as we do) or polytope-theoretic approaches (Barvinok). Our data provides the raw material for pattern discovery.
The 90% Nonzero Rate
At , 90% of Kronecker triples are nonzero. This increases from 79.5% at . The growth of the nonzero fraction with is itself an interesting phenomenon — it relates to the asymptotic density of the Kronecker cone.
Method
Phase 1: Character Table (CPU)
The character values are computed via the Murnaghan-Nakayama rule using a rim-path border strip enumeration:
- Compute the rim path of the Young diagram (SE boundary from SW to NE)
- A border strip of size is a contiguous subpath of length on the rim
- For each strip: remove cells, compute height (number of rows spanned ), recurse
Validation:
-
Row/column orthogonality: Exact (zero error) for through — all inner products computed in Python arbitrary-precision integers, so the check is algebraically exact, not floating-point approximate.
-
Dimension sum: confirmed exactly for all . For : . For : .
-
Integer overflow safeguards: The character table computation uses Python’s arbitrary-precision
inttype throughout — no fixed-width integer arithmetic at any stage. The GPU phase receives character values asint64arrays; for , , verified before transfer. The Kronecker triple-sum accumulator usesint64on GPU, which suffices because and all dimensions fitint64for . -
Cross-check: character table and all 39 Kronecker coefficients match Sage
SymmetricFunctions(QQ).s()exactly. -
S: 627 627 = 393K entries, 1.7 seconds
-
S: 5,604 5,604 = 31M entries, 220 seconds
Phase 2: Kronecker Triple-Sum (GPU)
Pure CUDA kernel on NVIDIA B200. For each fixed :
Each slab is a GPU kernel launch with threads. Statistics (nonzero count, max value) computed via atomic operations on GPU — no data copied back to CPU.
- S: 627 slabs 393K threads = 3.7 seconds
- S: 5,604 slabs 31.4M threads = 7.4 minutes
Reproduce
git clone https://github.com/cahlen/idontknow
cd idontknow
# Step 1: Compute character table (CPU)
python3 scripts/experiments/kronecker-coefficients-gpu/char_table.py 20
# Step 2: GPU Kronecker triple-sum
nvcc -O3 -arch=sm_100a -o kronecker_gpu \
scripts/experiments/kronecker-coefficients-gpu/kronecker_gpu.cu -lm
./kronecker_gpu 20
Data
- Hugging Face: cahlen/kronecker-coefficients
- Source code: github.com/cahlen/idontknow
Verification Checksums
| Dataset | Nonzero count | Max | Total size | Parts |
|---|---|---|---|---|
| S | 32,672,202 | 6,408,361 | 462 MB (.npz) | 1 |
| S | 26,368,860,547 | 24,233,221,539,853 | 369.2 GB (12 binary parts × 14 bytes/record) | 12 |
S spot-check sample (index format: ):
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 2 | 1 |
Reviewers can verify these against the S CSV on Hugging Face or recompute directly in Sage (SymmetricFunctions(QQ).s()).
S aggregate verification: the final dump log records cumulative nonzero counts at 200-row intervals (available in logs/kronecker_n30_dump.log), enabling partial-sum cross-checks without downloading the full dataset.
References
- Murnaghan, F.D. (1938). “The Analysis of the Kronecker Product of Irreducible Representations of the Symmetric Group.” American Journal of Mathematics, 60(3), pp. 761–784.
- Bürgisser, P. and Ikenmeyer, C. (2008). “The complexity of computing Kronecker coefficients.” DMTCS Proceedings, FPSAC 2008.
- Ikenmeyer, C., Mulmuley, K., and Walter, M. (2017). “On vanishing of Kronecker coefficients.” Computational Complexity, 26(4), pp. 949–992.
- Pak, I. and Panova, G. (2017). “On the complexity of computing Kronecker coefficients.” Computational Complexity, 26(1), pp. 1–36.
Computed 2026-03-31 on NVIDIA B200 (DGX cluster). This work was produced through human–AI collaboration (Cahlen Humphreys + Claude). Not independently peer-reviewed. All code and data open for verification at github.com/cahlen/idontknow.