← back to the stabilizer board
[[90,21,10]] d ≤stabilizer
n
90
k
21
d
10
kd²/n
23.333
w
10

Share this result

Distance

a general stabilizer code has no X and Z sides: d is the minimum Pauli weight of a nontrivial logical operator (a Y factor counts one qubit), and the witness is one Pauli operator that commutes with every generator and is not a product of them
d 10 · witness Pauli weight 10 (2 Y factors; Hamming weight over 2n bits 12) (claimed upper_bound)
witness operator (Pauli string, 10 qubits)
IIIIIIIIIIIIIIIIIIIIIIIXIIIIIIIIXIIIIIIXIIIIXIIIXIIIIXIIIIZIIIIIIIIZIIIIIIIIIIIIYIIIIIIIIY X: [23, 32, 39, 44, 48, 53, 80, 89] Z: [58, 67, 80, 89]
certificate none yet · distance stands as a self-certified upper bound (d ≤); the Pauli-weight certifier is not built yet, so stabilizer entries cannot earn d= for now

Diagnostics

computed by the verifier from the parity checks, the layout, and the stored witnesses; shown as evidence, not used for ranking
girth S 4 (shortest cycle of the generator Tanner graph; longer is friendlier to belief propagation)
check weights S 9–10 (mean 9.722)
qubit degrees S 6–8 (mean 7.778)
trapping sets S (1,6)×4 (2,7)×2 (3,7)×2 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for S
(1,6): 4 (1,7): 12 (1,8): 74 (2,7): 2 (2,8): 32 (2,9): 28 (2,10): 133 (2,11): 162 (2,12): 594 (2,13): 276 (2,14): 820 (3,7): 2 (3,8): 8 (3,9): 24 (3,10): 160 (3,11): 232 (3,12): 1010 (3,13): 1222 (3,14): 3978 (3,15): 4038 (3,16): 10146 (3,17): 6726 (3,18): 15606 (3,19): 5188 (3,20): 9844 (3,21): 124 (3,22): 176

Construction & provenance

authors @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction search
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-10-13
notes Halved CPM pair-partition code of arXiv:2609.30069 (Definition 1, reversing fold of Proposition 4) at (J,L)=(4,10), lift P=18. Exponent array E (rows a=0..3, columns l=0..9): [[10, 0, 1, 2, 15, 8, 14, 10, 16, 4], [17, 13, 15, 4, 7, 11, 9, 1, 4, 3], [7, 13, 8, 13, 17, 12, 0, 13, 1, 16], [17, 0, 9, 16, 10, 14, 11, 7, 14, 12]]. Off-diagonal pair partitions M: {"0,1": [[0, 2], [1, 3], [4, 9], [5, 6], [7, 8]], "0,2": [[0, 9], [1, 5], [2, 8], [3, 7], [4, 6]], "0,3": [[0, 8], [1, 2], [3, 4], [5, 9], [6, 7]], "1,2": [[0, 3], [1, 8], [2, 5], [4, 7], [6, 9]], "1,3": [[0, 9], [1, 7], [2, 3], [4, 5], [6, 8]], "2,3": [[0, 6], [1, 9], [2, 7], [3, 5], [4, 8]]}. The paper publishes no generators for its halved instances; this code is from a random search over the template. Distance 10 is the lightest logical found in 1000000 refutation trials (upper bound). The paper's table lists [[90,21,11]] for this P, which this search did not reach.
family other (a tag, not a ranking)
locality unrestricted (computed from the layout)
weight class weight > 8 (computed)

How this code was found

the research note submitted with this code · raw markdown · all notes

[[90,21,10]] halved CPM pair-partition code, (J,L) = (4,10), P = 18

Direction & hypothesis

Issue #2992 asks for the halved CPM pair-partition codes of arXiv:2609.30069 (Definition 1 with the reversing fold of Proposition 4). The paper's (4,10) family lists [[90,21,11]], [[140,31,15]], and [[200,43,20]] with exact distances but publishes no generators, and its data repository (ultra-high-rate-qec/design-principles-data) was empty on 2026-10-11. The construction is fixed up to an exponent array E, so the family can be searched directly: n = 5P and k = P + 3 for every accepted template, and the distance is whatever the search finds. Nothing on the board sat near these (n, k) at these distances, so an instance with a verified bound close to the paper's value is a board entry even where it falls short of the paper's claim.

The construction

The parent is a pair-partition CPM code with J = 4 check blocks and L = 10 qubit blocks of size P. X checks come from E: row (j, s) has a 1 at qubit (l, s - E[j][l] mod P) for each l. Z checks come from D[j][l] = -E[j][l xor 1] mod P in the same way. E must satisfy the paper's pair-partition rule: each off-diagonal cell (i < j) carries a perfect matching M on the L block columns, edge-disjoint from the matchings already placed in its row and column, and E[i,u] + E[j,u xor 1] = E[i,v] + E[j,v xor 1] mod P for every matched pair {u, v}. The search draws M at random, solves the resulting homogeneous integer system for E with sympy, and reduces a random integer combination of the kernel basis mod P.

The reversing fold identifies qubit t of block l with qubit -t mod P of block l xor 1. Each parent X check then becomes one stabilizer generator on the 5P surviving qubits (blocks 0, 2, 4, 6, 8): an X leg on each surviving block's position and a Z leg on each partner position, with coinciding legs merging to Y. Every generator has weight at most 10. The 4P generators span a group of rank 4P - 3, hence k = P + 3.

What was searched

Two Perlmutter runs over the (4,10), P = 18 template: 390,000 templates screened with 800 to 2,000 Pauli-weight RIS trials each. The first run's 30 processes shared one seed, so its coverage was that of a single process; the second run was seeded per process. Eleven templates read 10 at the screen and all eleven held 10 at 200,000 trials. This one, index 0 of that set, held 10 at 1,000,000 unframed trials and then through 960 random per-qubit symplectic frames x 1,000,000 gf2_fast trials on the symplectic doubling (Perlmutter job 59676168, 2026-10-11). The other ten are parameter twins and are not filed.

Evidence trail

  • Witness: a Pauli logical of weight 10 with X support [23, 32, 39, 44, 48, 53, 80, 89] and Z support
  • [58, 67, 80, 89] (positions in both carry Y), stored in the JSON; it commutes with every generator and lies outside the stabilizer group, as the gate re-checks.

  • Lower bounds: none. The distance is an upper bound from search.
  • Accelerator bias: the unframed gf2_fast search on the symplectic doubling
  • minimizes |x| + |z|, so a logical with Y legs looks heavier than its Pauli weight and can be missed. The frame screen draws a random single-qubit symplectic frame per qubit, runs the doubled search, maps each find back, and scores it by Pauli weight. On a P = 40 twin of this family, 12 frames x 500,000 trials found Pauli weight 15 where 100,000,000 unframed trials read 19, so unframed non-refutations of these codes are weak evidence.

  • Gate (verify/validate_candidate.py against main bc93ef2d, 2026-10-13):
  • passed, no exact or WL duplicate, refuter found nothing lighter, board_advancing true, dominated_by: [], cell `weight-9plus x unrestricted` on the stabilizer board.

Where it sits

No board entry of any type at n <= 90 and k >= 21 reaches d >= 7; the best are [[90,24,6]], [[84,22,6]], [[84,34,6]], and [[73,37,6]]. On the stabilizer board the cell weight-9plus x unrestricted had nothing near this (n, k).

The paper's Table VII lists [[90,21,11]] at this lift, as an exact value; the search did not reach 11.

Dead ends

  • The paper's instances cannot be rebuilt from the paper: no arrays appear in
  • it or its appendices, and the data repository is empty. Whether the gap to the paper's exact value comes from the template search (the paper does not say how its E were chosen) or from our distance estimate (an upper bound) is open. The V1 result on #2992 records this; the box there is left unticked.

  • Plain Pauli-weight RIS in Python at 1,000 to 3,000 trials ranks templates
  • only loosely; the ranking that fed the frame screen came from it, so better templates may have been screened out early.

Tools

Template search halved_pp.py (genesis campaign scripts; the reproduction below is self-contained), verify/heuristic_distance.py Pauli RIS, verify/gf2_fast with the frame screen on Perlmutter (NERSC gen0030), verify/validate_candidate.py. Claude Fable 5.1 (Claude Code) working for @vprusso.

Reproduction

import numpy as np

def halved_checks(P, E):
    J, L = len(E), len(E[0])
    HX = np.zeros((J * P, L * P), dtype=np.int8)
    for j in range(J):
        for l in range(L):
            for s in range(P):
                HX[j * P + s, l * P + (s - E[j][l]) % P] = 1
    checks = []
    for h in HX:
        x, z = [], []
        for ri, l in enumerate(range(0, L, 2)):
            for t in range(P):
                if h[l * P + t]:
                    x.append(ri * P + t)
                if h[(l ^ 1) * P + (-t) % P]:
                    z.append(ri * P + t)
        checks.append({"X": x, "Z": z})
    return checks

E = [[10, 0, 1, 2, 15, 8, 14, 10, 16, 4], [17, 13, 15, 4, 7, 11, 9, 1, 4, 3], [7, 13, 8, 13, 17, 12, 0, 13, 1, 16], [17, 0, 9, 16, 10, 14, 11, 7, 14, 12]]
S = halved_checks(18, E)   # the 4P generators of codes/90-21-10.json, in order

Stabilizer generators

generators 72 (max weight 10; 72 mixed X/Z) (one binary symplectic matrix S = (A | B); generator i is X on A_i and Z on B_i, Y where both)
generators (72, Pauli strings on 90 qubits)
ZIIIIIIIXIIIIIIIIIIIZIIIIIIIIIIIIIIXIIIXIIIIZIIIIIIIIIIIIIXIIIIIZIIIIIIIIIXIZIIIIIIIIIIIII IIIIIIIIIXIIIIIIIZXZIIIIIIIIIIIIIIIIIIIIXIIZIIIIIIIIIIIIIIIXIIIZIIIIIIIIIIIYIIIIIIIIIIIIII IIIIIIIIIIXIIIIIZIZXIIIIIIIIIIIIIIIIIIIIIXZIIIIIIIIIIIIIIIIIXIZIIIIIIIIIIIZIXIIIIIIIIIIIII IIIIIIIIIIIXIIIZIIIIXIIIIIIIIIIIIIIZIIIIIZXIIIIIIIIIIIIIIIIIIYIIIIIIIIIIIZIIIXIIIIIIIIIIII IIIIIIIIIIIIXIZIIIIIIXIIIIIIIIIIIIZIIIIIZIIXIIIIIIIIIIIIIIIIZIXIIIIIIIIIZIIIIIXIIIIIIIIIII IIIIIIIIIIIIIYIIIIIIIIXIIIIIIIIIIZIIIIIZIIIIXIIIIIIIIIIIIIIZIIIXIIIIIIIIIIIIIIIXIIIIIIIIIZ IIIIIIIIIIIIZIXIIIIIIIIXIIIIIIIIZIIIIIZIIIIIIXIIIIIIIIIIIIZIIIIIXIIIIIIIIIIIIIIIXIIIIIIIZI IIIIIIIIIIIZIIIXIIIIIIIIXIIIIIIZIIIIIZIIIIIIIIXIIIIIIIIIIZIIIIIIIXIIIIIIIIIIIIIIIXIIIIIZII IIIIIIIIIIZIIIIIXIIIIIIIIXIIIIZIIIIIZIIIIIIIIIIXIIIIIIIIZIIIIIIIIIXIIIIIIIIIIIIIIIXIIIZIII IIIIIIIIIZIIIIIIIXIIIIIIIIXIIZIIIIIIIIIIIIIIIIIIXIIIIZIZIIIIIIIIIIIXIIIIIIIIIIIIIIIXIZIIII XIIIIIIIZIIIIIIIIIIIIIIIIIIXZIIIIIIIIIIIIIIIIIIIIXIIZIZIIIIIIIIIIIIIXIIIIIIIIIIIIIIIYIIIII IXIIIIIZIIIIIIIIIIIIIIIIIIIZXIIIIIIIIIIIIIIIIIIIIIXZIIIIIIIIIIIIIIIIIXIZIIIIIIIIIIIZIXIIII IIXIIIZIIIIIIIIIIIIIIIIIIIZIIXIIIIIIIIIIIIIIIIIIIIZXIIIIIIIIIIIIIIIIIIYIIIIIIIIIIIZIIIXIII IIIXIZIIIIIIIIIIIIIIIIIIIZIIIIXIIIIIIIIIIIIIIIIIIZIIXIIIIIIIIIIIIIIIIZIXIIIIIIIIIZIIIIIXII IIIIYIIIIIIIIIIIIIIIIIIIZIIIIIIXIIIIIIIIIIIIIIIIZIIIIXXIIIIIIIIIIIIIZIIIIIIIIIIIZIIIIIIIXI IIIZIXIIIIIIIIIIIIIIIIIZIIIIIIIIXIIIXIIIIIIIIIIZIIIIIIIXIIIIIIIIIIIZIIIIIIIIIIIZIIIIIIIIIX IIZIIIXIIIIIIIIIIIIIIIZIIIIIIIIIIXIIIXIIIIIIIIZIIIIIIIIIXIIIIIIIIIZIIIIIXIIIIIZIIIIIIIIIII IZIIIIIXIIIIIIIIIIIIIZIIIIIIIIIIIIXIIIXIIIIIIZIIIIIIIIIIIXIIIIIIIZIIIIIIIXIIIZIIIIIIIIIIII IXIIIIIIIIIIIZIIIIIIIXZIIIIIIIIIIIIIIIIIIIIIIIIYIIIIIIIZIIIIIIIXIIIIIIIIIIIZIIIIIIIIIIXIII IIXIIIIIIIIIZIIIIIIIIZXIIIIIIIIIIIIIIIIIIIIIIIZIXIIIIIZIIIIIIIIIXIIIIIIIIIZIIIIIIIIIIIIXII IIIXIIIIIIIZIIIIIIIIZIIXIIIIIIIIIIIIIIIIIIIIIZIIIXIIIIIIIIIIIIIIIXIIIIIZIZIIIIIIIIIIIIIIXI IIIIXIIIIIZIIIIIIIIZIIIIXIIIIIIIIIIIIIIIIIIIZIIIIIXIIIIIIIIIIIIIIIXIIIZIZIIIIIIIIIIIIIIIIX IIIIIXIIIZIIIIIIIIZIIIIIIXIIIIIIIIIIIIIIIIIZIIIIIIIXIIIIIIIIIIIIIIIXIZIIXIIIIIIIIIIIIIIIIZ IIIIIIXIZIIIIIIIIIIIIIIIIIXIIIIIIIIZIIIIIIZIIIIIIIIIXIIIIIIIIIIIIIIIYIIIIXIIIIIIIIIIIIIIZI IIIIIIIYIIIIIIIIIIIIIIIIIIIXIIIIIIZIIIIIIZIIIIIIIIIIIXIIIIIIIIIIIIIZIXIIIIXIIIIIIIIIIIIZII IIIIIIZIXIIIIIIIIIIIIIIIIIIIXIIIIZIIXIIIZIIIIIIIIIIIIIIIIIIIIIIIIIZIIIXIIIIXIIIIIIIIIIZIII IIIIIZIIIXIIIIIIIIIIIIIIIIIIIXIIZIIIIXIZIIIIIIIIIIIIIIIIIIIIIIIIIZIIIIIXIIIIXIIIIIIIIZIIII IIIIZIIIIIXIIIIIIIIIIIIIIIIIIIXZIIIIIIYIIIIIIIIIIIIIIIXIIIIIIIIIZIIIIIIIIIIIIXIIIIIIZIIIII IIIZIIIIIIIXIIIIIIIIIIIIIIIIIIZXIIIIIZIXIIIIIIIIIIIIIIIXIIIIIIIZIIIIIIIIIIIIIIXIIIIZIIIIII IIZIIIIIIIIIXIIIIIIIIIIIIIIIIZIIXIIIZIIIXIIIIIIIIIIIIIIIXIIIIIZIIIIIIIIIIIIIIIIXIIZIIIIIII IZIIIIIIIIIIIXIIIIIIIIIIIIIIZIIIIXIIIIIIIXIIIIIIIIIIIZIIIXIIIZIIIIIIIIIIIIIIIIIIXZIIIIIIII ZIIIIIIIIIIIIIXIIIIIIIIIIIIZIIIIIIXIIIIIIIXIIIIIIIIIZIIIIIXIZIIIIIIIIIIIIIIIIIIIZXIIIIIIII IIIIIIIIIIIIIIIXIZIIIIIIIIZIIIIIIIIXIIIIIIIXIIIIIIIZIIIIIIIYIIIIIIIIIIIIIIIIIIIZIIXIIIIIII IIIIIIIIIIIIIIIIYIXIIIIIIZIIIIIIIIIIIIIIIIIIXIIIIIZIIIIIIIZIXIIIIIIIIIIIIIIIIIZIIIIXIIIIII IIIIIIIIIIIIIIIZIXIXIIIIZIIIIIIIIIIIIIIIIIIIIXIIIZIIIIIIIZIIIXIIIIIIIIIIIIIIIZIIIIIIXIIIII XIIIIIIIIIIIIIZIIIIIXIIZIIIIIIIIIIIIIIIIIIIIIIXIZIIIIIIIZIIIIIXIIIIIIIIIIIIIZIIIIIIIIXIIII IIIIIIIIIIIXIZIIIIIIIIIIIIIIXIIZIIIIIXIIIIIIIIIIZIIIIIXIIIIIIIIIIIIZIIIIIIIIIIIIIIIIIIIIZX IIIIIIIIIIIIYIIIIIIIIIIIIIIIIXZIIIIIIIXIIIIIIIIZIIIIIIIXIIIIIIIIIIZIIIIIXIIIIIIIIIIIIIIZII IIIIIIIIIIIZIXIIIIIIIIIIIIIIIZXIIIIIIIIXIIIIIIZIIIIIIIIIXIIIIIIIIZIIIIIIIXIIIIIIIIIIIIZIII IIIIIIIIIIZIIIXIIIIIIIIIIIIIZIIXIIIIIIIIXIIIIZIIIIIIIIIIIXIIIIIIZIIIIIIIIIXIIIIIIIIIIZIIII IIIIIIIIIZIIIIIXIIIIIIIIIIIZIIIIXIIIIIIIIXIIZIIIIIIIIIIIIIXIIIIZIIIIIIIIIIIXIIIIIIIIZIIIII IIIIIIIIZIIIIIIIXIIIIIIIIIZIIIIIIXIIIIIIIIXZIIIIIIIIIIIIIIIXIIZIIIIIIIIIIIIIXIIIIIIZIIIIII IIIIIIIZIIIIIIIIIXIIIIIIIZIIIIIIIIXIIIIIIIZXIIIIIIIIIIIIIIIIXZIIIIIIIIIIIIIIIXIIIIZIIIIIII XIIIIIZIIIIIIIIIIIIIIIIIZIIIIIIIIIIXIIIIIZIIXIIIIIIIIIIIIIIIZXIIIIIIIIIIIIIIIIXIIZIIIIIIII IXIIIZIIIIIIIIIIIIXIIIIZIIIIIIIIIIIIIIIIZIIIIXIIIIIIIIIIIIIZIIXIIIIIIIIIIIIIIIIXZIIIIIIIII IIXIZIIIIIIIIIIIIIIXIIZIIIIIIIIIIIIIIIIZIIIIIIXIIIIIIIIIIIZIIIIXIIIIIIIIIIIIIIIZXIIIIIIIII IIIYIIIIIIIIIIIIIIIIXZIIIIIIIIIIIIIIIIZIIIIIIIIXIIIIIIIIIZIIIIIIXIIIIIIIIIIIIIZIIXIIIIIIII IIZIXIIIIIIIIIIIIIIIZXIIIIIIIIIIIIIIIZIIIIIIIIIIXIIIIIIIZIIIIIIIIXIIIIIIIIIIIZIIIIXIIIIIII IZIIIXIIIIIIIIIIIIIZIIXIIIIIIIIIIIIIZIIIIIIIIIIIIXIIIIIZIIIIIIIIIIXIIIIIIIIIZIIIIIIXIIIIII ZIIIIIXIIIIIIIIIIIZIIIIXIIIIIIIIIIIIIIIIIIIIIIIIIIXIIZZIIIIIIIIIIIIXIIIIIIIZIIIIIIIIXIIIII IIIIIIIXIIIIIIIIIZIIIIIIXIIIIIIIIIIZIIIIIIIIIIIIIIIXZIIIIIIIIIIIIIIIXIIZIIZIIIIIIIIIIXIIII IIIIIIIIXIIIIIIIZIIIIIIIIXIIIIIIIIZIIIIIIIIIIIIIIIIZXIIIIIIIIIIIIIIIIXZIIZIIIIIIIIIIIIXIII IIIIIIIIIXIIIIIZIIIIIIIIIIXIIIIIIZIIIIIIIIIIIIIIIIZIIXIIIIIIIIIIIIIIIZXIZIIIIIIIIIIIIIIXII IIIIIIIIIIXIIIZIIIIIIIIIIIIXIIIIZIIIXIIIIIIIIIIIIZIIIIIIIIIIIIIIIIIIZIIXIIIIIIIIIIIIIIIIXZ ZXIIIIIIIIIIIIIIIIIIIIIIIIIXIIIIIIZIIIIIIIIIXIIIIIZIIIIIIIIIIYIIIIIIIIIIIIIIXIIIIIIIZIIIII IIXIIIIIIIIIIIIIIZIIIIIIIIIIXIIIIZIIIIIIIIIIIXIIIZIIIIIIIIIIZIXIIIIIIIIIIIIIIXIIIIIZIIIIII IIIXIIIIIIIIIIIIZIIIIIIIIIIIIXIIZIIIIIIIIIIIIIXIZIIIIIIIIIIZIIIXIIIIIIIIIIIIIIXIIIZIIIIIII IIIIXIIIIIIIIIIZIIIIIIIIIIIIIIXZIIIIIIIIIIIIIIIYIIIIIIIIIIZIIIIIXIIIIIIIIIIIIIIXIZIIIIIIII IIIIIXIIIIIIIIZIIIIIIIIIIIIIIIZXIIIIIIIIIIIIIIZIXIIIIIIIIZIIIIIIIXIIIIIIIIIIIIIIYIIIIIIIII IIIIIIXIIIIIIZIIIIIIIIIIIIIIIZIIXIIIIIIIIIIIIZIIIXIIIIIIZIIIIIIIIIXIIIIIIIIIIIIZIXIIIIIIII IIIIIIIXIIIIZIIIIIIIIIIIIIIIZIIIIXIIIIIIIIIIZIIIIIXIIIIZIIIIIIIIIIIXIIIIIIIIIIZIIIXIIIIIII IIIIIIIIXIIZIIIIIIIIIIIIIIIZIIIIIIXIIIIIIIIZIIIIIIIXIIZIIIIIIIIIIIIIXIIIIIIIIZIIIIIXIIIIII IIIIIIIIIXZIIIIIIIIIIIIIIIZIIIIIIIIXIIIIIIZIIIIIIIIIXIIIIIIIIIIIIIIIIXIZIIIIZIIIIIIIXIIIII IIIIIIIIIZXIIIIIIIXIIIIIIZIIIIIIIIIIIIIIIZIIIIIIIIIIIXIIIIIIIIIIIIIIIIYIIIIZIIIIIIIIIXIIII IIIIIIIIZIIXIIIIIIIXIIIIZIIIIIIIIIIIXIIIZIIIIIIIIIIIIIIIIIIIIIIIIIIIIZIXIIZIIIIIIIIIIIXIII IIIIIIIZIIIIXIIIIIIIXIIZIIIIIIIIIIIIIXIZIIIIIIIIIIIIIIXIIIIIIIIIIIIIZIIIIZIIIIIIIIIIIIIXII IIIIIIZIIIIIIXIIIIIIIXZIIIIIIIIIIIIIIIYIIIIIIIIIIIIIIIIXIIIIIIIIIIIZIIIIZIIIIIIIIIIIIIIIXI IIIIIZIIIIIIIIXIIIIIIZXIIIIIIIIIIIIIIZIXIIIIIIIIIIIIIIIIXIIIIIIIIIZIIIIIIIIIIIIIIIIIIIIIIY IIIIZIIIIIIIIIIXIIIIZIIXIIIIIIIIIIIIZIIIXIIIIIIIIIIIIIIIIXIIIIIIIZIIIIIIXIIIIIIIIIIIIIIIZI IIIZIIIIIIIIIIIIXIIZIIIIXIIIIIIIIIIIIIIIIXIIIIIIIIIIIZIIIIXIIIIIZIIIIIIIIXIIIIIIIIIIIIIZII IIZIIIIIIIIIIIIIIXZIIIIIIXIIIIIIIIIIIIIIIIXIIIIIIIIIZIIIIIIXIIIZIIIIIIIIIIXIIIIIIIIIIIZIII XZIIIIIIIIIIIIIIIIIIIIIIIIXIIIIIIIIZIIIIIIIXIIIIIIIZIIIIIIIIXIZIIIIIIIIIIIIXIIIIIIIIIZIIII
symplectic rows (A | B) (72, sparse supports)
X: [8, 35, 39, 58, 74] Z: [0, 20, 44, 64, 76] X: [9, 18, 40, 59, 75] Z: [17, 19, 43, 63, 75] X: [10, 19, 41, 60, 76] Z: [16, 18, 42, 62, 74] X: [11, 20, 42, 61, 77] Z: [15, 35, 41, 61, 73] X: [12, 21, 43, 62, 78] Z: [14, 34, 40, 60, 72] X: [13, 22, 44, 63, 79] Z: [13, 33, 39, 59, 89] X: [14, 23, 45, 64, 80] Z: [12, 32, 38, 58, 88] X: [15, 24, 46, 65, 81] Z: [11, 31, 37, 57, 87] X: [16, 25, 47, 66, 82] Z: [10, 30, 36, 56, 86] X: [17, 26, 48, 67, 83] Z: [9, 29, 53, 55, 85] X: [0, 27, 49, 68, 84] Z: [8, 28, 52, 54, 84] X: [1, 28, 50, 69, 85] Z: [7, 27, 51, 71, 83] X: [2, 29, 51, 70, 86] Z: [6, 26, 50, 70, 82] X: [3, 30, 52, 71, 87] Z: [5, 25, 49, 69, 81] X: [4, 31, 53, 54, 88] Z: [4, 24, 48, 68, 80] X: [5, 32, 36, 55, 89] Z: [3, 23, 47, 67, 79] X: [6, 33, 37, 56, 72] Z: [2, 22, 46, 66, 78] X: [7, 34, 38, 57, 73] Z: [1, 21, 45, 65, 77] X: [1, 21, 47, 63, 86] Z: [13, 22, 47, 55, 75] X: [2, 22, 48, 64, 87] Z: [12, 21, 46, 54, 74] X: [3, 23, 49, 65, 88] Z: [11, 20, 45, 71, 73] X: [4, 24, 50, 66, 89] Z: [10, 19, 44, 70, 72] X: [5, 25, 51, 67, 72] Z: [9, 18, 43, 69, 89] X: [6, 26, 52, 68, 73] Z: [8, 35, 42, 68, 88] X: [7, 27, 53, 69, 74] Z: [7, 34, 41, 67, 87] X: [8, 28, 36, 70, 75] Z: [6, 33, 40, 66, 86] X: [9, 29, 37, 71, 76] Z: [5, 32, 39, 65, 85] X: [10, 30, 38, 54, 77] Z: [4, 31, 38, 64, 84] X: [11, 31, 39, 55, 78] Z: [3, 30, 37, 63, 83] X: [12, 32, 40, 56, 79] Z: [2, 29, 36, 62, 82] X: [13, 33, 41, 57, 80] Z: [1, 28, 53, 61, 81] X: [14, 34, 42, 58, 81] Z: [0, 27, 52, 60, 80] X: [15, 35, 43, 59, 82] Z: [17, 26, 51, 59, 79] X: [16, 18, 44, 60, 83] Z: [16, 25, 50, 58, 78] X: [17, 19, 45, 61, 84] Z: [15, 24, 49, 57, 77] X: [0, 20, 46, 62, 85] Z: [14, 23, 48, 56, 76] X: [11, 28, 37, 54, 89] Z: [13, 31, 48, 67, 88] X: [12, 29, 38, 55, 72] Z: [12, 30, 47, 66, 87] X: [13, 30, 39, 56, 73] Z: [11, 29, 46, 65, 86] X: [14, 31, 40, 57, 74] Z: [10, 28, 45, 64, 85] X: [15, 32, 41, 58, 75] Z: [9, 27, 44, 63, 84] X: [16, 33, 42, 59, 76] Z: [8, 26, 43, 62, 83] X: [17, 34, 43, 60, 77] Z: [7, 25, 42, 61, 82] X: [0, 35, 44, 61, 78] Z: [6, 24, 41, 60, 81] X: [1, 18, 45, 62, 79] Z: [5, 23, 40, 59, 80] X: [2, 19, 46, 63, 80] Z: [4, 22, 39, 58, 79] X: [3, 20, 47, 64, 81] Z: [3, 21, 38, 57, 78] X: [4, 21, 48, 65, 82] Z: [2, 20, 37, 56, 77] X: [5, 22, 49, 66, 83] Z: [1, 19, 36, 55, 76] X: [6, 23, 50, 67, 84] Z: [0, 18, 53, 54, 75] X: [7, 24, 51, 68, 85] Z: [17, 35, 52, 71, 74] X: [8, 25, 52, 69, 86] Z: [16, 34, 51, 70, 73] X: [9, 26, 53, 70, 87] Z: [15, 33, 50, 69, 72] X: [10, 27, 36, 71, 88] Z: [14, 32, 49, 68, 89] X: [1, 27, 44, 61, 76] Z: [0, 34, 50, 61, 84] X: [2, 28, 45, 62, 77] Z: [17, 33, 49, 60, 83] X: [3, 29, 46, 63, 78] Z: [16, 32, 48, 59, 82] X: [4, 30, 47, 64, 79] Z: [15, 31, 47, 58, 81] X: [5, 31, 48, 65, 80] Z: [14, 30, 46, 57, 80] X: [6, 32, 49, 66, 81] Z: [13, 29, 45, 56, 79] X: [7, 33, 50, 67, 82] Z: [12, 28, 44, 55, 78] X: [8, 34, 51, 68, 83] Z: [11, 27, 43, 54, 77] X: [9, 35, 52, 69, 84] Z: [10, 26, 42, 71, 76] X: [10, 18, 53, 70, 85] Z: [9, 25, 41, 70, 75] X: [11, 19, 36, 71, 86] Z: [8, 24, 40, 69, 74] X: [12, 20, 37, 54, 87] Z: [7, 23, 39, 68, 73] X: [13, 21, 38, 55, 88] Z: [6, 22, 38, 67, 72] X: [14, 22, 39, 56, 89] Z: [5, 21, 37, 66, 89] X: [15, 23, 40, 57, 72] Z: [4, 20, 36, 65, 88] X: [16, 24, 41, 58, 73] Z: [3, 19, 53, 64, 87] X: [17, 25, 42, 59, 74] Z: [2, 18, 52, 63, 86] X: [0, 26, 43, 60, 75] Z: [1, 35, 51, 62, 85]
Code ID 90-21-10 · download JSON · raw on GitHub