by cahlen

Kronecker Coefficients: Largest Known Computation

The Finding

We computed the complete Kronecker coefficient table g(λ,μ,ν)g(\lambda, \mu, \nu) for all triples of partitions of n=20n = 20 and n=30n = 30:

nnPartitions p(n)p(n)Unique triplesNonzeroMax ggGPU time
2062741,081,98032,672,202 (79.5%)6,408,3613.7 sec
305,60429,332,098,14426,368,860,547 (89.9%)24,233,221,539,8537.4 min

The S30_{30} computation is to our knowledge, the largest Kronecker coefficient table published. The previous systematic frontier was n20n \approx 20 (browser-based tools handle this in seconds). We extended it by 50% in nn and by a factor of 700×\sim 700\times in the number of triples.

Why This Matters

Geometric Complexity Theory

Kronecker coefficients are central to the Mulmuley-Sohoni program for proving PNP\mathsf{P} \neq \mathsf{NP} via algebraic geometry. The program requires understanding which Kronecker coefficients are zero vs. positive for specific partition families (near-rectangular shapes). Our complete S30_{30} 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 n=30n = 30, 90% of Kronecker triples are nonzero. This increases from 79.5% at n=20n = 20. The growth of the nonzero fraction with nn is itself an interesting phenomenon — it relates to the asymptotic density of the Kronecker cone.

Method

Phase 1: Character Table (CPU)

The character values χλ(ρ)\chi^\lambda(\rho) are computed via the Murnaghan-Nakayama rule using a rim-path border strip enumeration:

  1. Compute the rim path of the Young diagram (SE boundary from SW to NE)
  2. A border strip of size kk is a contiguous subpath of length kk on the rim
  3. For each strip: remove cells, compute height (number of rows spanned 1- 1), recurse

Validation: Row and column orthogonality pass for S5S_5 through S12S_{12}. Dimension sum λdim(λ)2=n!\sum_\lambda \dim(\lambda)^2 = n! confirmed.

  • S20_{20}: 627 ×\times 627 = 393K entries, 1.7 seconds
  • S30_{30}: 5,604 ×\times 5,604 = 31M entries, 220 seconds

Phase 2: Kronecker Triple-Sum (GPU)

Pure CUDA kernel on NVIDIA B200. For each fixed jj:

g(i,j,k)=ρn1zρχiλ(ρ)χjλ(ρ)χkλ(ρ)g(i, j, k) = \sum_{\rho \vdash n} \frac{1}{z_\rho} \chi^\lambda_i(\rho) \, \chi^\lambda_j(\rho) \, \chi^\lambda_k(\rho)

Each slab is a GPU kernel launch with P×PP \times P threads. Statistics (nonzero count, max value) computed via atomic operations on GPU — no data copied back to CPU.

  • S20_{20}: 627 slabs ×\times 393K threads = 3.7 seconds
  • S30_{30}: 5,604 slabs ×\times 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

References

  1. 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.
  2. Bürgisser, P. and Ikenmeyer, C. (2008). “The complexity of computing Kronecker coefficients.” DMTCS Proceedings, FPSAC 2008.
  3. Ikenmeyer, C., Mulmuley, K., and Walter, M. (2017). “On vanishing of Kronecker coefficients.” Computational Complexity, 26(4), pp. 949–992.
  4. 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.

Recent Updates

updateAuto-generated changelog from git log — updates on every build