A 52-Addition, Rank-23 Scheme for Exact 3×3 Matrix MultiplicationHugo Møller NielsenarXiv 2609.06588 · tested 2 October 2026
Read paper

Does the 52-addition matrix scheme work?

Yes, it works.

729/729 exact checks pass. The method uses 23 products and 52 inner additions; the search history remains unverified.

3 confirmed1 fine print1 not confirmed1 couldn't test

The idea, in 8 seconds

Schoolbook27products
Nielsen23products
Multiplying two 3×3 grids0 / 27

The 52 counts the inner step. A single 3×3 call also needs 13 boundary additions.

MEASURED RESULT729/729 exact checks · 23 products · 52 additions

The verdicts

Tap any card

Try it yourself

Two ways to multiply the same random 3×3 matrices

Uses the published 23-product coefficients and reconstruction map. The 52-addition count comes from the paper's shared straight-line program; expanding coefficients here does not count those operations.

The addition record

Tap a bar for its source

Nielsen52Sun56Perminov58Martensson59Stapleton60

Nielsen · 52 — verified from the published program. Earlier counts are history reported by this paper, not independently reproduced.

Inner additions only. The bars begin at zero; lower is better. Download the source CSV.

Lab notebook

Expert view

Exact integer checks · five-seed Python timings are preliminary

Fig. 1 Ordered Brent equations

729 / 7299 outputs × 9 A variables × 9 B variables · exact integer coefficients
Every ordered coefficient matches AB. This also tests the noncommuting factor order. verification.csv

Fig. 2 Operation breakdown

12 + 12 + 28 = 52A pre-additions · B pre-additions · output additions
23 bilinear products; 13 additional basis operations at the boundary for one 3×3 call. operation_breakdown.csv

Fig. 3 Full scalar recursion

23kproducts for n = 3k
Inner additions = 52(23k−9k)/14. Leading arithmetic constant = 33/7 × 23k. Boundary work = 13k·9k−1. asymptotics.csv

Fig. 4 Winograd calibration

64 / 64ordered tensor coefficients · 7 products · 4 + 4 + 7 = 15 additions
Earlier complete 2×2 program checks the exact coefficient and operation-count harness. calibration.csv

Table 1 Float64 timing and maximum relative error

Median time over five seeds, one CPU thread; maximum relative Frobenius error across those seeds. Direct Python/NumPy code, shared laptop. Timing is preliminary and does not establish optimized speed.

Reproduce Exact checks and timing

python scheme/build_scheme.py
python scheme/verify.py
python calibration.py
python potential_check.py
python audit_counts.py
$env:OPENBLAS_NUM_THREADS=1
$env:OMP_NUM_THREADS=1
$env:MKL_NUM_THREADS=1
python benchmark.py
python results/summarize.py
Run these PowerShell commands from the supplied case experiment repository. Public summaries are linked below.

How we checked

Six completed checks; independent search-history review remains open

Case 002 / findings / 3 October 2026

What the measurements show

Answer: Yes. Its 23-product, 52-inner-addition identity passes all 729 ordered coefficient checks and works with noncommuting entries, so recursion is valid. This direct Python version is slower than NumPy; the historical search could not be checked.

Original authors: Hugo Møller Nielsen · Read the paper ↗

Tested 2 October 2026 · Published 2026-10-03 · Raw CSV below

The result at a glance

Inner additions. Earlier counts are historical values reported by the paper, not separately replicated; boundary basis changes are excluded from the 52.

729 / 729 ordered equations checked · 52 inner additions: 12 + 12 + 28 · 147× slower than NumPy at n=81, preliminary

What the data says.

This table contains the measured comparison behind the answer. The expert sections below explain how the numbers were produced and what they cannot establish.

TestObservedScope
Exact identity729/729 Brent coefficientsOrdered A·B factors; integer arithmetic
Operation count23 products; 52 inner additions13 extra boundary additions for one 3×3 call
Python/NumPy timing, n=8132.112 ms versus 0.218 msFive-seed medians; shared laptop

Claim-by-claim verdicts.

Confirmed means supported within the stated test; Partly confirmed keeps a tested piece separate from an untested part. Not confirmed means the tested evidence did not show the claim. Could not test marks missing evidence or an inapplicable setup.

ClaimVerdictWhat this establishes
23 products and 52 inner additionsConfirmedExact symbolic identity and operation audit.
Arbitrary associative ringsConfirmedOrdered coefficients and noncommuting-block tests.
Recursive arithmetic formulaConfirmedExact recurrence and k=1–5 count audit.
Historical best-known priorityPartly confirmedThe 52 construction works; prior records were paper-reported.
Original search history and other schemesCould not testOriginal search data and logs were unavailable locally.
Practical speed advantageNot confirmedDirect Python implementation loses to NumPy at tested sizes.

Expert detail: measurements and interpretation

The 23 bilinear products are distinct. Their expanded integer coefficients satisfy every ordered output–left-input–right-input condition, so the identity also applies when entries do not commute. The three basis transforms have integer inverses and determinant +1. This supports recursion over associative unital rings, including characteristics 2 and 3; it does not prove that 23 is the minimum tensor rank.

We counted signed binary additions in the published straight-line program: 12 on A, 12 on B, and 28 for output reconstruction. The 52 excludes the boundary basis work. For a single 3×3 call, that boundary adds 13 operations. At n=3^k, the audited recurrence gives 23^k products and 52(23^k−9^k)/14 inner additions, plus 13k·9^(k−1) boundary additions. The exact counts are in asymptotics.csv.

The recursive implementation passed 98/98 integer, floating, and edge-case checks before timing. NumPy uses tuned native kernels; this scheme was implemented in Python with many small allocations. The timing is an implementation observation, not a prediction of optimized or asymptotic speed. The earlier 56/58/59/60 counts in the chart are the paper's reported history, not independently verified records. Original search logs and candidate databases were not supplied.

How we tested

We transcribed the published straight-line program, expanded the three basis changes exactly, and checked all ordered tensor coefficients with integer arithmetic. Independent integer and noncommuting-block examples tested execution. A Winograd 2×2 scheme calibrated the operation counter. Five seeded recursive runs were timed against NumPy and Strassen after correctness checks.

Limitations and next check

The paper's search database, sweep logs, and comparison schemes were unavailable locally. The signed construction is verified, while historical priority remains a paper-reported claim. Python overhead dominates these small runs, and shared-laptop timing is preliminary.

Original sources, data and corrections

The ideas and original claims belong to the paper authors. Kael Research is responsible for these implementations, checks and interpretations. Original source: A 52-Addition, Rank-23 Scheme for Exact 3 × 3 Matrix Multiplication (2026-09-06)
By Hugo Møller Nielsen. Download each public CSV below; the full experiment repositories, including any larger uncopied raw artifacts, are available on request. For corrections, see our public log or contact us through the site.

Got a paper? We'll test it.

Paper: Hugo Møller Nielsen, “A 52-Addition, Rank-23 Scheme for Exact 3 × 3 Matrix Multiplication”, arXiv:2609.06588 (2026-09-06; PDF). All credit for the idea belongs to the author; the implementations and measurements here are ours. Tested 2 October 2026; published 3 October 2026.