# Bounds for binary constant weight codes

A(n,d,w) is the maximum size of a binary code with word length n, minimum distance d, and constant weight w. The tables below give the best known lower (and upper) bounds for this function for certain smallish parameters. In many cases a lower bound is demonstrated by giving an explicit code. Please send corrections and updates to aeb@cwi.nl.

# Sources

Unmarked lower bounds (for n ≤ 28) are taken from
BSSS: A. E. Brouwer, J. B. Shearer, N. J. A. Sloane & W. D. Smith,
A new table of constant weight codes,
IEEE Trans. Inform. Theory 36 (1990) 1334-1380. (web)
or, for d=4, from
A. E. Brouwer & T. Etzion,
Some new distance-4 constant weight codes,
Advances in Mathematics of Communications 5 (2011) 417-424. (PDF) (web)

Unmarked upper bounds (for n ≤ 28) are taken from

AVZ: Erik Agrell, Alexander Vardy & Kenneth Zeger,
Upper bounds for constant weight codes,
IEEE Trans. Inform. Theory 46 (2000) 2373-2395. (PDF) (web)
In some cases one can find sharper bounds in
S: Alexander Schrijver,
New code upper bounds from the Terwilliger algebra and semidefinite programming,
IEEE Trans. Inform. Theory 51 (2005) 2859-2866. (PDF)

For n > 28 unmarked upper bounds are from the Johnson bound. In most cases unmarked lower bounds for n > 28 are codes first constructed here. For n ≤ 28, the lower bounds first given here are shown with a light yellow background. Also the new results from the Brouwer-Etzion preprint or web page have a light yellow background.

All other sources are explicitly indicated.

Tables for 29 ≤ n ≤ 63 and (d,w) one of (6,5), (6,6), (8,5), (8,6), (8,7), (10,6), (10,7), (10,8), (12,7), (12,8), (14,8) were given in

SHP: D.H. Smith, L.A. Hughes and S. Perkins,
A New Table of Constant Weight Codes of Length Greater than 28,
Electronic J. Combin. 13 (2006) #A2. (PDF)
with improvements in
MS: R. Montemanni and D.H. Smith,
Heuristic Algorithms for Constructing Binary Constant Weight Codes,
IEEE Transactions on Information Theory 55 (2009) 4651–4656. (PDF) (web)
and
MS2: R. Montemanni and D.H. Smith,
Some constant weight codes from primitive permutation groups, Electr. J. Combin. 19 (2012) Issue 4, P4.

Various bounds derived by taking a slice from a general binary code:

CXY: Yeow Meng Chee, Chaoping Xing and Sze Ling Yeo,
New Constant-Weight Codes From Propagation Rules
IEEE Transactions on Information Theory 56 (2010) 1596-1599.

Improvements to the upper bounds were derived by

KKT: Byung Gyun Kang, Hyun Kwang Kim & Phan Thanh Toan,
Improved linear programming bounds on sizes of constant-weight codes,
arXiv:1108.5104v1, Aug 2011.
and
KT: Hyun Kwang Kim & Phan Thanh Toan,
Improved Semidefinite Programming Bound on Sizes of Codes
arXiv:1212.3467v1, Dec 2012.
and
Po: Sven Polak,
Semidefinite programming bounds for constant weight codes,
arXiv:1703.05171, Mar 2017.

### Lost codes

Of the records mentioned in the tables below, 10 can no longer be provided with an explicit construction. In [BSSS] most codes were given with construction, and those that had no easy-to-describe structure were given explicitly when they have size at most 1500. Larger codes with label y/ya/yd were not given, and today it seems that these codes are lost. Below we construct new codes with [BSSS] parameters or better, with 10 exceptions. These 10 parameter sets (9 for d=6 and one for d=8) are given in red. Here we give the lower bounds from [BSSS] and the currently best explicitly available codes.

bound [BSSS] code bound [BSSS] A(23,6,10) A(23,6,11) A(24,6,8) A(24,6,10) A(24,6,12) 2970 3585 1882 4200 5616 2969 3535 1848 4174 5558BJLÖ A(25,6,8) A(26,6,8) A(27,6,8) A(28,6,8) A(26,8,11) 2590 3532 4786 6315 1988 2541 3460 4715 6248 1970

There used to be 13 lost codes, but [BJLÖ] removed three items from the list by proving A(24,6,9) ≥ 3080, A(24,6,11) ≥ 5376, A(25,6,10) ≥ 6600. They also showed A(24,6,12) ≥ 5558.

Earlier, in

M.R. Best, A.E. Brouwer, F.J. MacWilliams, A.M. Odlyzko & N.J.A. Sloane,
Bounds for binary codes of length less than 25,
IEEE Trans. Inf. Th. 24 (1978) 81-93.
it was claimed that A(18,6,6) ≥ 144, but later we were unable to reconstruct such a code, and today we only have A(18,6,6) ≥ 132.

### Errata

In [BSSS], Table III, A(23,10,7) = 20, not 21.

There is some freedom in "Construction B" as described in [BSSS], and the partitions given in [BSSS], Table VI are not the best ones can obtain using this construction.

In [BSSS], Section XI, description for A(16,4,8) ≥ 1170, there are two typos: replace 07F and E40 by 407F and FE40.

In [BSSS], Table XV, description for A(18,6,9) ≥ 304, delete the "(17,18)" from the third generator. (Below we show A(18,6,9) ≥ 320.)

In [BSSS], Table I-E, description for A(26,12,12) ≥ 54 and A(26,12,13) ≥ 58, the label z9 refers to Table XVI, but these codes are not given there.

### Constructions

c: circulant, or code with cyclic group.

d: doubling (special case of j: A(2n,2d,2w) ≥ A(n,d,w)).

g: code with specified group of automorphisms.

j: juxtaposition.

p: using partitions.

s: shortened code (from code of length n+1 and weight w or w+1).
sb: shortened code (from code of length n+1 and weight w), using explicit inspection.
sd: shortened code (from code of length n+1 and weight w+1), using explicit inspection.

l: lengthened code (from code of length n–1 and weight w or w–1).

x: lexmin code.

H: Hadamard matrix ([BSSS], Thm 10): A(4m,2m,2m) = 8m–2 if a Hadamard matrix of order 4m exists.

OA (orthogonal array): If k ≤ q+1, where q is a prime power, then an e-OA(k,q) exists for any e with 0 ≤ e ≤ k. It has qe blocks (transversals) of size k on qk points partitioned into k groups of size q, and shows that A(qk,2(k–e+1),k) ≥ qe. Usually many blocks can be added.

### Upper bounds

L: Delsarte linear programming bound.

### Note on the Johnson bound

The first Johnson bound is often quoted as A(n,d,w) ≤ nA(n–1,d,w–1)/w. However, that is only the first part of the first Johnson bound. The second part says A(n,d,w) ≤ nA(n–1,d,w)/(n–w), and is sometimes stronger.

# Bounds on A(n,4,w)

For now, lower bounds only. Optimum values are indicated by a dot.

n\w 3 4 5 6 7 8 9 10 11 12 13 14 15
6 4.
7 7.
8 8. 14.
9 12. 18.s
10 13. 30.s 36.s
11 17. 35. 66.s
12 20. 51. 80.Ö 132.g
13 26. 65. 123 166
14 28. 91. 169g 278 325
15 35. 105. 242Ex 399g 585s
16 37. 140. 322g 624BJLÖ 836sb 1170
17 44. 157.Ji 444Mi 854p 1416s 1770s
18 48. 198. 544g 1260g 2042p 3186s 3540s
19 57. 228. 692s 1620sb 3172p 4698s 6726s
20 60. 285. 874 2304Nu 4213p 7830BJLÖ 10048p 13452g
21 70. 315. 1113g 2880BJLÖ 6161p 10767p 17177p 20654p
22 73. 385.s 1386.s 3927s 8338p 16527p 25902p 37127p 40624p
23 83. 419.BJi 1771.s 5313.s 11696p 23467p 41413p 58659p 76233p
24 88. 498. 1920BJLÖ 7084.g 15656EB 34914g 59904p 98852p 118422p 151484p
25 100. 550. 2380BJLÖ 7787p 21220p 47265p 89742p 142373p 198387p 231530p
26 104. 650. 2816s 10010p 27050p 66352p 129708p 222775p 320584p 401937p 431724p
27 117. 702. 3456BJLÖ 12012s 35874p 88604p 188561p 334859p 518014p 686164p 791461p
28 121. 819. 3718p 15288g 44915p 122685p 263008p 508952p 819041p 1167909p 1420920p 1535756p
29 134. 877.Ji 4423p 17710p 57943p 157734p 365699p 728330p 1266026p 1895939p 2499311p 2870880p
30 140. 1005. 5148s 21931p 73853p 214545p 514015p 1085000p 1977548p 3143989p 4325235p 5313399p 5697080p
n/w 3 4 5 6 7 8 9 10 11 12 13 14 15

p: using partitions, see [BSSS] and here. Most of these bounds are from the Brouwer-Etzion paper.

Nu: Kari J. Nurmela, Markku K. Kaikkonen & Patric R. J. Östergård, New constant weight codes from linear permutation groups, IEEE Trans. Info. Theory 43 (1997) 1623-1630, show A(16,4,5) ≥ 315 and A(20,4,6) ≥ 2304, with shortened codes showing A(19,4,5) ≥ 692 and A(19,4,6) ≥ 1620.

BJi: Jingjun Bao & Lijun Ji, The completion of optimal (3,4)-packings, preprint, 2014, show A(23,4,4) = 419, etc.

EB: Tuvi Etzion & Sara Bitan, On the chromatic number, colorings, and codes of the Johnson graph, Discrete Appl. Math. 70 (1996) 163-175, show A(24,4,7) ≥ 15656.

Ji: L. Ji, Asymptotic Determination of the Last Packing Number of Quadruples, Designs, Codes and Cryptography 38 (2006) 83-95, shows A(17,4,4) = 157, A(29,4,4) = 877, etc.

To: V.D. Tonchev, Maximum disjoint bases and constant weight codes, IEEE Trans. Infor. Theory 44 (1998) 333-334, shows A(17,4,5) ≥ 441.

Mi: Moshe Milshtein, email 2021-03-31, shows A(17,4,5) ≥ 444.

Ö: Patric R. J. Östergård, Classification of binary constant weight codes, IEEE Trans. Infor. Theory 56 (2010) 3779-3785, shows A(12,4,5) = 80.

Ex: Geoffrey Exoo, email 2014-08-27, shows A(15,4,5) ≥ 242.

BJLÖ: Michael Braun, Joshua Humpich, Antti Laaksonen & Patric R. J. Östergård, New lower bounds on binary constant weight error-correcting codes, preprint, 2018, shows A(16,4,6) ≥ 624, A(22,6,6) ≥ 343, etc.

### Values of A(n,4,3) and A(n,4,4)

For w=3 and w=4 all values are known ([BSSS], Theorems 4, 5; [Ji]; [BJi]). A table for n ≤ 64:

 n w=3 w=4 n w=3 w=4 n w=3 w=4 29 30 31 32 33 34 35 36 37 38 39 40 134. 140. 155. 160. 176. 181. 197. 204. 222. 228. 247. 253. 877. 1005. 1085. 1240. 1320. 1496. 1583.BJi 1773. 1887. 2109. 2223. 2470. 41 42 43 44 45 46 47 48 49 50 51 52 272. 280. 301. 308. 330. 337. 359. 368. 392. 400. 425. 433. 2593. 2856. 3010. 3311. 3465. 3795. 3959.BJi 4308. 4508. 4900. 5100. 5525. 53 54 55 56 57 58 59 60 61 62 63 64 458. 468. 495. 504. 532. 541. 569. 580. 610. 620. 651. 661. 5737. 6183. 6435. 6930. 7182. 7714. 7979.BJi 8535. 8845. 9455. 9765. 10416.

### Bounds on A(n,4,5)

Mostly taken from here. Lower bounds only.

 29 30 31 32 33 34 35 36 37 38 39 40 4423p 5148s 6138g 6758g 7656s 8976.S 10472.S 10948p 12473p 13471p 15010p 17119p 41 42 43 44 45 46 47 48 49 50 51 52 19258p 21320g 23478g 25564p 28413s 31878.S 35673.S 36809p 40560p 43372 46612p 51420p 53 54 55 56 57 58 59 60 61 62 63 64 56251p 59293p 64449 69931p 75550p 79866s 87261MS2 93206p 100527p 105472p 113553 121902p

S: The Steiner systems S(5,6,36) and S(5,6,48) yield A(36,4,6) = 62832 and A(48,4,6) = 285384 with derived designs showing A(35,4,5) = 10472, A(35,4,6) = 52360, A(47,4,5) = 35673, A(47,4,6) = 249711.

g: A(31,4,5) ≥ 6138 and A(32,4,5) ≥ 6758 use ASL(1,31) of order 465.

The group codes A(32,4,5) ≥ 6758g, A(42,4,5) ≥ 21320g, A(43,4,5) ≥ 23478g, A(50,4,5) ≥ 42924g, A(55,4,5) ≥ 62964g, A(63,4,5) ≥ 113337g were found by [MS2].

### Hamming codes

If C is any binary code of length n and minimum distance d, a lower bound for A(n,d,w) is the number of words of weight w in C. Of course one can also look at cosets C+u. For example, look at the extended Hamming codes, with parameters [2m,2m–m–1,4]. GAP tells us
```gap> LoadPackage("guava");;
gap> WeightDistribution(ExtendedCode(HammingCode(4,GF(2))));
[ 1, 0, 0, 0, 140, 0, 448, 0, 870, 0, 448, 0, 140, 0, 0, 0, 1 ]
gap> WeightDistribution(ExtendedCode(HammingCode(5,GF(2))));
[ 1, 0, 0, 0, 1240, 0, 27776, 0, 330460, 0, 2011776, 0, 7063784, 0, 14721280,
0, 18796230, 0, 14721280, 0, 7063784, 0, 2011776, 0, 330460, 0, 27776, 0,
1240, 0, 0, 0, 1 ]
gap> WeightDistribution(ExtendedCode(HammingCode(6,GF(2))));
[ 1, 0, 0, 0, 10416, 0, 1166592, 0, 69194232, 0, 2366570752, 0, 51316746768,
0, 747741998592, 0, 7633243745820, 0, 56276359749120, 0, 306558278858160,
0, 1255428754917120, 0, 3916392495228360, 0, 9399341113166592, 0,
17480786291963792, 0, 25316999607653376, 0, 28634752793916486, 0,
25316999607653376, 0, 17480786291963792, 0, 9399341113166592, 0,
3916392495228360, 0, 1255428754917120, 0, 306558278858160, 0,
56276359749120, 0, 7633243745820, 0, 747741998592, 0, 51316746768, 0,
2366570752, 0, 69194232, 0, 1166592, 0, 10416, 0, 0, 0, 1 ]
```
and we find lower bounds for A(n,4,w) for n=16, 32, 64.

These are not best possible: slightly better results follow by the Kløve bound found in

Torleiv Kløve,
A lower bound for A (n,4,w),
IEEE Trans. Inf. Th. IT-27 (1981) 257-258.
One finds for example A(64,4,4) ≥ 10416, A(64,4,6) ≥ 1171552, A(64,4,8) ≥ 69194232, A(64,4,10) ≥ 2366772128.

# Bounds on A(n,6,w)

n\w 4 5 6 7 8 9 10 11 12 13 14
82
93s
105s6s
11611s
129 12c22H
131318s 26c
1414 28s 42s 42
1515 42s 70s 69G Ö
16 20s 48s 112g 109G-122 120g-138
1720 68g 113Ch-124Ö 166G-206Po 184g-259
1822 69ACL-72 132g-186 243G-312Po 260-427KKT 320g-424KKT
1925 76c-83 172g-228 338sb-463Po 408g-693Po 504g-789
2030 90c-100 232t-276 462t-651 588t-1084Po 832t-1363 944t-1420KKT
2131 108Nu-126 273g-350 570sb-828 775-1665Po 1186-2328Po 1474-2685S
2237 132g-136 343BJLÖ-462 759G-1100 1144-2277 1818-3736S 2183-4415S 2636t-5033Mo
2340 147t-170 399s-521 969s-1518 1439-3162 2278-5819 2970-7521 3585-7953
2442s 168s-192 532s-680 1368s-1786 1882-4554 3080BJLÖ-8432 4200-12186 5376BJLÖ-14682 5616-15906
2550s 210s 700s-800 1900s-2428 2590-5581 4260sb-12620 6600BJLÖ-19037 8697-24630 9880-30587
2652 260s 910s 2600s-2971 3532-7891 5760-16122 8810g-28893 12206-42017Mo 14854gs-50169S 16117-61174
2754260-280 1170s 3510s 4786-10027 8112g-23673 12987g-43529 18260-66078KKT 23901gs-84573KKT 27600JX-91079KKT
2863 280Nu-302 1170-1306 4680g 6315-12285 10920g-31195 18345-63756 29484Nu-104230KKT 40237JX-142117 49510JX-164219KKT 53046JX-169739KKT
29 65 315g-364 1170-1459 4680-5410 7137g-... 13026g-... 24254-... 41216gs-... 61820gs-... 80837gs-... 92366gs-...
n/w 4 5 6 7 8 9 10 11 12 13 14

One has A(n–2,d–2,w–1) ≥ A(n,d,w) (Honkala et al., cf. [BSSS], Thm 21), and this yields A(22,6,7) ≥ 759.

G: from the Golay code.

t: using the Nordstrom-Robinson code (really, the Golay code), possibly with tails.

gs: using the Graham-Sloane construction and an S2 set (B2 sequence, modified modular Golomb ruler), that is, a subset of an abelian group where all sums of two (distinct) elements are different. One divides all words of weight w into M classes, each of min dist at least 6. This means that A(n,d,w) ≥ (n choose w)/M where, for d = 6, M = 624, 651, 728, 757, 840, 871 for n = 25, 26, 27, 28, 29, 30, respectively. The largest class found may be slightly larger than this average. These codes are not always maximal, and one finds A(26,6,12) ≥ 14852+2, A(29,6,10) ≥ 23870+7 by adding 2 (resp. 7) words to a gs-code.

A code showing A(23,6,5) ≥ 147 is found by taking the 759 octads on a 24-set where the last 8 positions support an octad, and selecting the 140 octads with weight 3+1 in the last 7+1 positions. Delete the last position, and replace the triple by the i-th shift of 1000000 when the triple equals or is disjoint from the i-th shift of 1101000. Now add 7 words, say in lexmin order.

A code showing A(20,6,6) ≥ 232 is found by taking the 112 octads with weight 1+1 in the last 7+1 positions, and 120 of the 140 octads with weight 3+1 there, namely those with 6 of the 7 shifts. Replace the 8-bit tail by a 4-bit one of weight 2, different for different shifts.

ACL: Hui Kheng Aw, Yeow Meng Chee & Alan C. H. Ling, Six New Constant Weight Binary Codes, Ars Comb. 67 (2003) 313-318, show A(18,6,5) ≥ 69.

Ch: Yeow Meng Chee, A new lower bound for A(17,6,6), Ars Comb. 83 (2007) 361-363, shows A(17,6,6) ≥ 113.

Nu: Kari J. Nurmela, Markku K. Kaikkonen & Patric R. J. Östergård, New constant weight codes from linear permutation groups, IEEE Trans. Info. Theory 43 (1997) 1623-1630, show A(18,6,8) ≥ 260, A(18,6,9) ≥ 304 (both also in [BSSS]), A(21,6,5) ≥ 108, A(28,6,5) ≥ 280, A(28,6,11) ≥ 29484.

Ö: Patric R. J. Östergård, Classification of binary constant weight codes, IEEE Trans. Infor. Theory 56 (2010) 3779-3785, shows A(15,6,7) = 69 and A(17,6,6) ≤ 124.

Mo: B. Mounits, T. Etzion & S. Litsyn, New upper bounds on codes via association schemes and linear programming, Advances of Math. in Communications 1 (2007) 173-195, show A(19,6,7) ≤ 519, A(22,6,11) ≤ 5033, A(26,6,11) ≤ 42017.

JX: Lingfei Jin & Chaoping Xing, New binary codes from rational function fields, preprint, 2014, show A(27,6,13) ≥ 27600, A(28,6,12) ≥ 40237, A(28,6,13) ≥ 49510, A(28,6,14) ≥ 53046.

Several of the above ugly codes were obtained by polishing a nice group code. For example, A(25,6,11) ≥ 8125g, A(25,6,12) ≥ 9375g, A(26,6,9) ≥ 5700g, A(26,6,11) ≥ 11660g, A(26,6,13) ≥ 15625g, A(28,6,10) ≥ 17738g, A(29,6,10) ≥ 23520g. The above A(22,6,10) ≥ 2183 was obtained by polishing the A(22,6,10) ≥ 2180t from [BSSS].

### Values of A(n,6,4)

All values of A(n,6,4) are known ([BSSS], Theorem 6). A table for n ≤ 64:

 29 30 31 32 33 34 35 36 37 38 39 40 65 67 76 80 82 92 96 99 111 114 117 130 41 42 43 44 45 46 47 48 49 50 51 52 133 136 149 154 157 171 176 180 196 200 204 221 53 54 55 56 57 58 59 60 61 62 63 64 225 229 246 252 256 274 280 285 305 310 315 336

### Values of A(n,6,5)

 29 30 31 32 33 34 35 36 37 315g-364 343g-390 372c-415 416c-486 462g-528 500-557 544c-644 612g-691 666g-732 38 39 40 41 42 43 44 45 46 714s-842 819g-889 872g-936 943g-1066 1020-1117 1077-1169 1131-1311 1187-1386 1265g-1444 47 48 49 50 51 52 53 54 55 1363g-1607 1452s-1689 1617g-1764 1686-1960 1782-2040 1938g-2121 2067g-2341 2148-2430 2355-2519 56 57 58 59 60 61 62 63 64 2414-2755 2565g-2872 2639sb-2969 2869-3233 3036s-3360 3306s-3477 3596s-3782 3906.s

A(63,6,5) = 3906 follows from A(64,6,6) = 41664, from Preparata.

Several of the above ugly codes were obtained by polishing a nice group code. For example, A(34,6,5) ≥ 495g, A(42,6,5) ≥ 1010g, A(43,6,5) ≥ 1050g, A(51,6,5) ≥ 1734g, A(55,6,5) ≥ 2211g, A(56,6,5) ≥ 2352g, A(59,6,5) ≥ 2842g.

The group codes A(41,6,5) ≥ 943g, A(47,6,5) ≥ 1363g, A(49,6,5) ≥ 1617g, A(53,6,5) ≥ 2067g were found by [MS2].

### Values of A(n,6,6)

 29 30 31 32 33 34 35 36 37 1170l-1459 1277-1820 1457g-2015 1643g-2213 1829g-2673 2003-2992 2187-3249 2604s-3864 3108g-4261 38 39 40 41 42 43 44 45 46 3338-4636 3822g-5473 4212g-5926 4680g-6396 5002g-7462 5719g-8005 6020g-8572 6840MS2-9832 7580-10626 47 48 49 50 51 52 53 54 55 8648g-11311 9729g-12856 10094-13793 10825-14700 11155-16660 12220s-17680 13780g-18735 14469g-21069 16112s-22275 56 57 58 59 60 61 62 63 64 18045s-23510 20167s-26172 22493s-27762 25039s-29195 27821s-32330 30856s-34160 34162s-35929 37758s-39711 41664.Pr

Pr: from extended Preparata code.

Several of the above ugly codes were obtained by polishing a nice group code. For example, A(34,6,6) ≥ 1922g, A(35,6,6) ≥ 2100g, A(36,6,6) ≥ 2387g, A(45,6,6) ≥ 6810g, A(49,6,6) ≥ 9947g, A(50,6,6) ≥ 10810g, A(51,6,6) ≥ 11010g.

The group codes A(32,6,6) ≥ 1643g, A(33,6,6) ≥ 1829g, A(37,6,6) ≥ 3108g, A(42,6,6) ≥ 5002g, A(43,6,6) ≥ 5719g, A(45,6,6) ≥ 6810g, A(53,6,6) ≥ 13780g were found by [MS2].

### Preparata codes

Lower bounds for A(n,6,w) are obtained from (translates of) extended Preparata codes. For example, the extended Preparata code of length 64 has weight enumerator
```x^64+41664*x^58*y^6+2118168*x^56*y^8+74203584*x^54*y^10+1602647424*x^52*y^12+23369897088*x^50*y^14+
238532662620*x^48*y^16+1758643689600*x^46*y^18+9579950593920*x^44*y^20+39232098538560*x^42*y^22+
122387418032040*x^40*y^24+293729091759936*x^38*y^26+546275088069376*x^36*y^28+791155554970368*x^34*y^30+
894836772921798*x^32*y^32+791155554970368*x^30*y^34+546275088069376*x^28*y^36+293729091759936*x^26*y^38+
122387418032040*x^24*y^40+39232098538560*x^22*y^42+9579950593920*x^20*y^44+1758643689600*x^18*y^46+
238532662620*x^16*y^48+23369897088*x^14*y^50+1602647424*x^12*y^52+74203584*x^10*y^54+2118168*x^8*y^56+
41664*x^6*y^58+y^64
```
so that A(64,6,8) ≥ 2118168, etc.

CXY find by averaging various subsets of the Preparata code with (n,d,M) = (63,5,252) that A(63,6,7) ≥ 270468, A(63,6,8) ≥ 1893276, A(63,6,11) ≥ 300700062, A(63,6,12) ≥ 1302990507, and A(64,6,7) ≥ 303354, A(64,6,8) ≥ 2163744, A(64,6,9) ≥ 13447707, A(64,6,11) ≥ 363105666, A(64,6,12) ≥ 1603680624, A(64,6,13) ≥ 6414487191.

# Bounds on A(n,8,w)

n\w 5 6 7 8 9 10 11 12 13 14
102
112
1234d
1334
144 7s 8s
156 10s 15s
166 16c 16c 30H
177 17c 24c 34c
189 21c 33s Ö 46s-49Ö 48sb-58Ö
1912s 28s 52s Ö 78s Ö 88s-103
2016s 40s 80s 130s Ö 160g-173 176g-206
2121s 56s 120s 210s 280s-294Po 336s-363
2221 77s 176s 330s 280-440Po 616s Po 672s Po
232377-80 253s 506s 400s-662Po 616-1012 1288s S
2424 78-92253-274 759G 640G-968Po 960G-1551S 1288-2142S 2576G
2530 100g 254-328759-850Po 829G-1366Po 1248-2333S 1662G-3422S 2576-4087S
2630 130g 257-371 760-1066 887-1901Po 1519G-3496S 1988-5208KT 3070G-6741S 3588sb-7080S
27 31ACL-32 130-135 303sd-500 769-1252 1023-2616Po 1600-4986 2404-7754KT 3335-10460KT 4094Nu-11897KKT
28 33 130-149 318-540 1057-1750 1333-3855 1867g-7016S 3773-11896KT 4927-17008KT 6848g-21148KT 6218-22710S
n/w 5 6 7 8 9 10 11 12 13 14

G: From Golay code.

ACL: Hui Kheng Aw, Yeow Meng Chee & Alan C. H. Ling, Six New Constant Weight Binary Codes, Ars Comb. 67 (2003) 313-318, show A(27,8,5) ≥ 31, A(29,8,5) ≥ 34, A(30,8,5) ≥ 36, A(33,8,5) ≥ 44, A(34,8,5) ≥ 47.

Nu: Kari J. Nurmela, Markku K. Kaikkonen & Patric R. J. Östergård, New constant weight codes from linear permutation groups, IEEE Trans. Info. Theory 43 (1997) 1623-1630, show A(26,8,13) ≥ 3588, A(27,8,13) ≥ 4094, A(28,8,10) ≥ 1820, A(28,8,12) ≥ 4916, A(28,8,14) ≥ 6090. These last two bounds are from codes that are group codes with added words. The above A(28,8,12) ≥ 4927 and A(28,8,14) ≥ 6218 were obtained from their A(28,8,12) ≥ 4914+2 and A(28,8,14) ≥ 5920+170 by polishing the group part.

Ö: Patric R. J. Östergård, Classification of binary constant weight codes, IEEE Trans. Infor. Theory 56 (2010) 3779-3785, shows A(18,8,7) = 33, A(19,8,7) = 52, A(19,8,8) = 78, A(20,8,8) = 130 and A(18,8,8) ≤ 49, A(18,8,9) ≤ 58.

Some of the above ugly codes were obtained by polishing a nice group code. For example, A(28,8,8) ≥ 1029g yielded the entries for (n,w)=(28,8), and 27 ≤ n ≤ 32, w = 7. and A(28,8,9) ≥ 1303g yielded the entries for (n,w)=(28,9), (27,9), and A(28,8,11) ≥ 2688g yielded the entries for (n,w)=(28,11), (27,11).

### Values of A(n,8,5)

Most bounds here are standard packing results.

 29 30 31 32 33 34 35 36 37 36Bl-39 41Bl-42 43SWY 44Bl 48c-51 52-54 56SWY 57s 65 38 39 40 41 42 43 44 45 46 65-68 66c-70 72s 82S 84SWY 86SWY 88s 99S 99-101 47 48 49 50 51 52 53 54 55 99-103 102-105 108s-116 120SWY 120-122 123s-124 133-136 135c-140 143SWY 56 57 58 59 60 61 62 63 64 145SWY 158SWY 158-162 158-165 168s 183S 186SWY 189SWY 192s

S: S(2,5,41), S(2,5,45), S(2,5,61), S(2,5,65).

A(37,8,5) = 65 from a PBD(37,{5,9*}) (completion of RB(4,1; 28)). A(36,8,5) = 57 by deleting one point.

A(48,8,5) ≥ 102 by replacing the six groups of GD(5,1,8; 48) by 5-lines.

A(53,8,5) ≥ 133 from a PBD(53,{5,13*}) (completion of RB(4,1; 40)). A(52,8,5) ≥ 123 by deleting one point.

Bl: Iliya Bluskov, New constant weight codes and packing numbers, preprint, 2017 (see also Electronic Notes in Discrete Mathematics 65 (2018) 31-36), shows A(29,8,5) ≥ 36, A(30,8,5) ≥ 41, A(32,8,5) = 44.

[MS] claims A(29,8,5) ≥ 39 and refers to [SWY], but there is no such statement there. Replaced this lower bound by the 36 given in [Bl].

This problem is that of packing pairs by quintuples. See

SWY: D.R. Stinson, R.Wei & J. Yin,
Packings, pp. 550-556 in: Handbook of Combinatorial Designs – 2nd ed. (C.J. Colbourn and J.H. Dinitz eds.), CRC Press, 2007.

### Values of A(n,8,6)

 29 30 31 32 33 34 35 36 37 130l-159 155-195 156s-217 192SHP-229 196s-242 238g-289 238-315 276g-336 276-351 38 39 40 41 42 43 44 45 46 302-411 321-442 336-466 384-492 441-574 454-602 468-630 489-660 512-759 47 48 49 50 51 52 53 54 55 583sb-791 663-824 683-857 704-966 726-1020 799-1057 894-1095 1001-1224 1117-1283 56 57 58 59 60 61 62 63 64 1162-1334 1199-1377 1231-1527 1264-1593 1320s-1650 1464g-1708 1550g-1891 1598-1953

A(30,8,6) ≥ 155: take a 3-OA(6,5) (six groups of size 5, every triple across covered once, 125 blocks) and add 30 blocks that meet two groups, both in 3 points, where no triple is used twice. (Some detail left out, see the explicit code given.)

A(42,8,6) > 343: take a 3-OA(6,7) (six groups of size 7, every triple across covered once, 343 blocks) and add some blocks that meet at most two groups. Optimum not determined, the code given was found by adding words greedily.

A(48,8,6) > 512: similar.

A(54,8,6) > 729: similar.

A(66,8,6) > 1331.

The codes for n=38, 39, 40 were obtained by polishing A(38,8,6) ≥ 285g.

The group codes A(55,8,6) ≥ 1045g and A(61,8,6) ≥ 1464g were found by [MS2]. The codes for 52≤n≤59 were obtained by polishing the former.

### Values of A(n,8,7)

 29 30 31 32 33 34 35 36 37 344-617 389-681 463-863 500-992 539g-1079 594g-1175 670g-1445 730-1620 851g-1776 38 39 40 41 42 43 44 45 46 932-1905 1014g-2289 1170g-2525 1287g-2729 1394g-2952 1591g-3526 1806g-3784 1867-4050 2181-4337 47 48 49 50 51 52 53 54 55 2516-5095 2872-5424 3288-5768 3445-6121 3608-7038 3795-7577 3978-8003 4168-8447 4337-9617 56 57 58 59 60 61 62 63 64 4673-10264 5027-10862 5400-11409 5779-12870 5895s-13654 6659s-14378 7506s-15128 8444s-17019 9480CXY-17856

A(49,8,7) > 2401: use a 4-OA(7,7) and add words. Adding words in lexmin order gives 3240, further polishing yields 3270.

4-OA(7,8) and 4-OA(7,9) give A(56,8,7) > 4096 and A(63,8,7) > 6561.

Let AGL(m) be the group of maps x → ax+b (mod m) for gcd(a,m)=1. Using AGL(55) one finds A(55,8,7) > 3850. Adding words in lexmin order gives A(55,8,7) ≥ 4206, polishing A(55,8,7) ≥ 4337. Shortening yields A(54,8,7) ≥ 3795, adding words and polishing gives A(54,8,7) ≥ 3828.

Using AGL(61) one finds A(61,8,7) > 5490. Adding words in lexmin order gives A(61,8,7) ≥ 6425.

The code for n=42 was obtained by polishing A(38,8,7) ≥ 912g.

The group code A(42,8,7) ≥ 1394g was found by [MS2].

### Lower bounds for A(n,8,8) and kissing numbers

Earlier bounds (including A(36,8,8) ≥ 2385, A(38,8,8) ≥ 2997, A(41,8,8) ≥ 4305, A(42,8,8) ≥ 4715, A(44,8,8) ≥ 6622, and various reverse lexicographic codes) taken from njas' web page, but now mostly superseded by larger and uglier codes.

 29 30 31 32 33 34 35 36 37 38 1057l 1145 1330 1659 1777 1934 2157 2742 2817 2997gA 39 40 41 42 43 44 45 46 47 48 3323 3683 4510g 5136 5418s 6622gL 7391 8747sb 10535s 12642Tap

gA: Group code using AGL(37) (by Yves Edel).
gL: Group code using PSL(2,43).
Tap: from János Tapolcai: A(48,8,8) ≥ 12642=16*759+498, from A(24,8,8)=759, A(8,4)=16, and A(24,4,4)=498.

The codes for 29 ≤ n ≤ 34 were obtained by lengthening and polishing A(28,8,8) ≥ 1029g. The code for n = 36 was obtained by adding 3 words to A(36,8,8) ≥ 2739g.

A(56,8,8) > 75 = 16807.

The bounds given above yield improved lower bounds for the kissing numbers τn.

 n τn 32 33 34 35 36 37 38 39 40 345408 360640 380868 409548 484568 494312 566652 755988 1064368

Cf.

Yves Edel, E. M. Rains & N. J. A. Sloane,
On kissing numbers in dimensions 32 to 128,
Electr. J. Comb. 5 (1998) R22. (PDF)

### Comparison between lexmin and reverse lexmin

For A(n,8,8) lexmin and reverse lexmin give the following bounds:

 n lexmin reverse n lexmin reverse 22 23 24 25 26 27 28 29 30 31 32 33 34 35 330 506 759 759 759 759 765 781 825 913 1068 1068 1169 1336 109 132 759 759 749 761 790 823 899 981 1117 1261 1415 1614 36 37 38 39 40 41 42 43 44 45 46 47 48 1570 1838 2157 2510 2909 3346 3825 4374 4986 5661 6420 7253 8155 1858 2124 2439 2790 3116 3591 4117 4668 5298 5986 6739 7589 8549

Thus, for n > 26 reverse lexmin is better than lexmin (for d=w=8). After polishing the opposite is true for n ≤ 37, but for n ≥ 42 plain reverse lexmin is even better than polished lexmin. Note that the lexmin bounds increase monotically with n, but the reverse lexmin bounds do not.

### Goethals codes

CXY find by averaging various subsets of the Goethals code with (n,d,M) = (63,7,247) that A(63,8,7) ≥ 8443, A(63,8,8) ≥ 59096, A(63,8,9) ≥ 361141, A(63,8,10) ≥ 1950158, A(63,8,11) ≥ 9396214, A(63,8,12) ≥ 40716926, A(63,8,13) ≥ 159735632, A(63,8,14) ≥ 570484400, and A(64,8,7) ≥ 9480, A(64,8,8) ≥ 67538, A(64,8,9) ≥ 420236, A(64,8,10) ≥ 2311298, A(64,8,11) ≥ 11346372, A(64,8,12) ≥ 50113140, A(64,8,13) ≥ 200452558, A(64,8,14) ≥ 730220032.

# Bounds on A(n,10,w)

n\w 6 7 8 9 10 11 12 13 14 15 16
122
132
1422
1533
16344
17356
18469s10s
1948 12 19s
205 10c 17 20c 38H
217 13 21c 27-35 38-42
227 16c 24c-33 35c-51 46Nu-71Po 46c-79Po
238 20Ko 33c-46 45c-78MEL 54-116Po 65Nu-135
249 24c 38-60 56c-116MEL 72c-170KKT 95Nu-222KKT 123-246KKT
2510 28c-32 48c-75 72c-157MEL 100c-262 125c-379KT 137-433KT
2613 30c-36 55g-104 91Nu-213KKT 130c-397Po 168c-565KT 208g-691KT 210s-754S
2714 36c-48 66c-121 118Nu-291Po 162Nu-555Po 243g-871KT 351s-1190KT 405s-1406KT
2816 37c-56 81g-168 140g-376 219g-785MEL 308g-1351KT 390g-1977S 756Nu-2438 790Nu-2628KKT
2920 42c-66 91c-203 168g-523Po 266g-1090 406g-2036Po 539g-3091Po 756-4282Po 1458g-4927Po
3025 48s-85 108c-247 203-657Po 322g-1569 504g-2924Po 768-5008Po 935-6724Po 1458-8146Po 1458-8948Po
3131 62c-109 124c-322Po 232c-822Po 465g-2036 651s-4141Po 930g-7259Po 1395g-10530Po 1538-13519Po 1922-15031Po
3231 64c-139 145-402Po 304c-1143 500-2630 992g-5696Po 1395g-10446Po 1984g-16755Po 2325g-22213Po 2635g-26361Po 3038-27429Po
n/w 6 7 8 9 10 11 12 13 14 15 16

Ko: A(23,10,7) ≥ 20 is from Klaus-Uwe Koschnick, Some new constant weight codes, IEEE Trans. Info. Theory 37 (1991) 370-372.

Nu: Kari J. Nurmela, Markku K. Kaikkonen & Patric R. J. Östergård, New constant weight codes from linear permutation groups, IEEE Trans. Info. Theory 43 (1997) 1623-1630, show A(22,10,10) ≥ 46, A(23,10,11) ≥ 65, A(24,10,11) ≥ 95, A(24,10,12) ≥ 122, A(25,10,12) ≥ 132, A(26,10,9) ≥ 91, A(27,10,9) ≥ 118, A(27,10,10) ≥ 162, A(27,10,11) ≥ 222, A(28,10,10) ≥ 210, A(28,10,11) ≥ 286, A(28,10,12) ≥ 365, A(28,10,13) ≥ 756, A(28,10,14) ≥ 790.

[BSSS] showed A(21,10,8) ≥ 21, but the period indicating equality may have been a mistake. However, equality follows from [AVZ] (26).

Some of the above ugly codes were obtained by polishing a nice group code. For example, A(30,10,9) ≥ 196g, A(30,10,12) ≥ 750g, A(31,10,15) ≥ 1860g, A(32,10,8) ≥ 144g, A(32,10,16) ≥ 2976g.

MEL: Beniamin Mounits, Tuvi Etzion & Simon Litsyn, New upper bounds on A(n,d), arXiv:cs/0508107, Aug 2005, show A(23,10,9) ≤ 78, A(24,10,9) ≤ 116, A(25,10,9) ≤ 157, A(27,10,9) ≤ 293, A(28,10,10) ≤ 785.

### Values of A(n,10,6)

For n ≤ 37, see here.

 29 30 31 32 33 34 35 36 37 20s 25s 31 31 31-32 33-34 35c 37c 37-43 38 39 40 41 42 43 44 45 46 39c-44 39-45 45g-46 49c-53 55-56 55-57 55-58 57g-60 57-67 47 48 49 50 51 52 53 54 55 63s-70 72g 72-73 72-75 76c-85 78g-86 80c-88 87-90 87-91 56 57 58 59 60 61 62 63 64 91c-101 95c-104 95-106 96s-108 105g-110 111g-122 114s-124 126SHP 126-128

A(31,10,6) ≥ 31 from PG(2,5).

A(42,10,6) ≥ 55 from TD(6,7) and adding six 6-lines contained in the groups. This can be shortened twice in such a way that only 13 blocks are lost, so that A(40,10,6) ≥ 42.

A(46,10,6) ≤ 67 since no S(2,6,46) exists: S.K. Houghten, L.H. Thiel, J. Janssen and C.W.H. Lam, There is no (46,6,1) Block Design, J. Comb. Designs 9 (2001) 60-71.

The code showing that A(48,10,6) = 72 is a GD(6,1,3; 48). Maybe such a design was unknown.

A(54,10,6) ≥ 87 from TD(6,9) and adding six 6-lines contained in the groups.

A(60,10,6) ≥ 104 from TD(6,10)–TD(6,2) (with 96 blocks) and adding six 6-lines in the groups and two 6-lines in the hole. There is a point in the hole contained in 8 blocks only, and shortening there yields A(59,10,6) ≥ 96.

A(61,10,6) ≥ 110 from TD(6,10)–TD(6,2) with a point ∞ added to all groups, and adding twelve 6-lines in the extended groups and two 6-lines in the hole.

A(66,10,6) = 143 from S(2,6,66). A(65,10,6) = 130.

A(76,10,6) = 190 from S(2,6,76).

### Values of A(n,10,7)

The lower bounds for n = 30, 31, 48 are from [SHP].

 29 30 31 32 33 34 35 36 37 42c-66 48s-85 62c-109 64c-139 72g-150 75-160 86sb-170 103sb-180 122-222 38 39 40 41 42 43 44 45 46 138-233 156-245 178sb-257 198sb-269 220sb-318 240sb-344 264sb-358 290sb-372 311-394 47 48 49 50 51 52 53 54 55 332-462 350-480 385-504 396-521 406-546 411-630 420-651 457-678 514-707 56 57 58 59 60 61 62 63 64 583-728 589-822 602-861 611-893 621-925 668-958 746-1079 831-1116

One has A(n–2,d–2,w–1) ≥ A(n,d,w) (Honkala et al., cf. [BSSS], Thm 21), and this yields A(48,10,7) ≥ 350. Shortening yields codes for 34 ≤ n ≤ 48.

A 3-OA(7,7) yields A(49,10,7) > 343. Polishing gives A(49,10,7) ≥ 385. Lengthening and polishing yields the above bounds for 49 ≤ n ≤ 53.

A 3-OA(7,8) yields A(56,10,7) > 512. Polishing gives A(56,10,7) ≥ 583. Shortening and polishing yields codes for n = 54, 55. Lengthening and polishing gives 57 ≤ n ≤ 60.

A 3-OA(7,9) yields A(63,10,7) > 729. Polishing gives A(63,10,7) ≥ 831. Shortening and polishing yields codes for n = 61, 62.

### Values of A(n,10,8)

The lower bound for n = 31 is from [SHP].

 29 30 31 32 33 34 35 36 37 91c-203 108c-247 124c-322Po 145-402Po 165c-573 181g-637 210c-700 216c 259c-832 38 39 40 41 42 43 44 45 46 285g-1053 312c-1135 360c-1225 380c-1317 441g-1412 456-1709 550g-1892 627s-2013 759g-2139 47 48 49 50 51 52 53 54 55 793-2314 896-2772 1029-2940 1172-3150 1358-3321 1565-3549 1808-4173 2094-4394 2421-4661 56 57 58 59 60 61 62 63 64 2793-4949 2858-5187 2926-5959 2998-6349 3078-6697 3164-7053 3272-7424 3584s-8497 4096OA-8928

A(56,10,8) > 2401 from a 4-OA(8,7) and A(64,10,8) > 4096 from a 4-OA(8,8). All codes nearby are polished versions of shortenings or lengthenings of these.

# Bounds on A(n,12,w)

n\w 7 8 9 10 11 12 13 14 15 16
142
152
1622
1722
183 3d 4j
19334
203 5d 5j 6d
2135 7j 7j
2246d 8c 11d12s
2346 10s 16 23s
244 9d 16s 24c 24s 46H
255 10c 25g 28c-36KT 36c-42 50c
26513d 26c 33Nu-37 41g-66S 54Ho-83 58Ho-91S
276 15c 39c 39c-58 54c-90 82-139KKT 86s-155KKT
288 19 39-45 56g-87 65Nu-147 119g-198KKT 112g-244KKT 172Nu-264KKT
298 22s-26 42g-59Po 66g-126Po 87c-197L 119-298L 145-441 173g-492Po
30 9 30c 42-74Po 96g-159L 120s-268L 190s-492Po 236-642Po 288sd-801Po 302sb-894Po
31 9 31.c 50c-94Po 103-229 186s-415 310s-679Po 400CXY-958Po 510CXY-1238Po 572s-1435Po
32 10 36.c 60c-110 122CXY-300 186-573Po 496BCH-952Po 434-1497Po 900CXY-2140Po 572-2641 1144-2870
n/w 7 8 9 10 11 12 13 14 15 16

Ho: Iiro Honkala, Heikki Hämäläinen & Markku Kaikkonen, Some lower bounds for constant weight codes, Dicr. Appl. Math. 18 (1987) 95-98, show A(25,12,11) ≥ 36, A(26,12,12) ≥ 54, A(26,12,13) ≥ 58, A(27,12,9) = 39. (A more direct construction: take the planes in AG(3,3).)

Nu: Kari J. Nurmela, Markku K. Kaikkonen & Patric R. J. Östergård, New constant weight codes from linear permutation groups, IEEE Trans. Info. Theory 43 (1997) 1623-1630, show A(26,12,10) ≥ 33, A(28,12,10) ≥ 49, A(28,12,11) ≥ 65, A(28,12,12) ≥ 103, A(28,12,13) ≥ 99, A(28,12,14) ≥ 172.

### BCH code

A(32,12,12) ≥ 496 is seen from the dual of the extended 2-error-correcting BCH code of length 32. This code has weight enumerator
x^32 + 496x^12 + 1054x^16 + 496x^20 + x^32.

A coset has weight enumerator

20x^8+12x^432+1144x^16+432x^20+20x^24,
and shows A(32,12,16) ≥ 1144.

Two cosets of the non-extended code have weight enumerators

x^5+x^6+35x^9+87x^10+400x^13+500x^14+500x^17+400x^18+87x^21+35x^22+x^25+x^26
2x^6+40x^9+82x^10+390x^13+510x^14+510x^17+390x^18+82x^21+40x^22+xx^25
showing that A(31,12,10) ≥ 87 and A(31,12,13) ≥ 400 and A(31,12,14) ≥ 510 and A(32,12,10) ≥ 122 and A(32,12,14) ≥ 900 ([CXY]).

### Values of A(n,12,7)

 29 30 31 32 33 34 35 36 37 38 39 40 8. 9. 9. 10. 11. 12. 15. 16. 17.MS 19. 21-22 25. 41 42 43 44 45 46 47 48 49 50 51 52 25-29 27s-34 32s-38 38s-44 45. 45-46 45-47 48s. 56. 56-57 56-58 56-59 53 54 55 56 57 58 59 60 61 62 63 64 56-60 56-61 63s-69 71-72 71-73 71-74 71-75 71-77 72Ch-86 79s-88 88-90 88-91

(The code words can be viewed as the points of a partial linear space, the n positions as the lines. The condition is that each point is in precisely 7 lines, and two lines have at most one common point.
A(28,12,7) = 8 follows by taking the complete graph K8;
A(30,12,7) = 9 follows by taking the linear space with lines {0,3,6}, {0,1}, {0,2}, {0,4} (mod 9);
A(32,12,7) = 10 follows by taking the partial linear space on 10 points with 3-lines {0,1,2}, {3,4,5}, {6,7,8}, {0',3,6}, {1,4,7}, {2,5,8} and otherwise 2-lines, except that the pair 00' is not covered;
A(33,12,7) = 11 follows by taking the linear space with lines {0,1,3}, {0,4}, {0,5} (mod 11);
A(34,12,7) = 12 follows by taking the linear space with lines {0,1,3}, {0,4,8}, {0,5}, {0,6} (mod 12);
A(35,12,7) = 15 follows by taking STS(15);
A(36,12,7) = 16 follows by taking the linear space with lines {0,4,8,12}, {0,1,7}, {0,2,5} (mod 16);
A(37,12,7) = 17 follows by taking the linear space on 17 points A,B,C0,C1,C2,0-5,0'-5' with the 5-line {A,B,C0,C1,C2}, and the six 4-lines {0,1,2',4'} (mod 6), and the thirty 3-lines {A,0,0'} (mod 6), {B,0,5'} (mod 6), {C0,0,3}, {C0,1,2}, {C0,4,5}, {C0,0',3'}, {C0,2',4'}, {C0,1',5'} (mod 6) with C3=C0;
A(38,12,7) = 19 follows by taking the linear space with lines {0,1,7,11}, {0,2,5} (mod 19);
A(39,12,7) ≥ 21 follows by taking the partial linear space on 21 points obtained from a PBD(22,{4,7*}) by replacing the 7-line by a Fano plane and removing one point and the three incident Fano lines from it;
A(45,12,7) = 45 follows by taking a GD(7,1,3;45), Baker's elliptic semiplane.
A(49,12,7) = 56 follows by taking AG(2,7), with the points as coordinate positions;
A(56,12,7) ≥ 71 and A(63,12,7) ≥ 88 follow by taking a TD(7,8) or TD(7,9) and adding seven 7-lines contained in the groups.)

A(61,12,7) ≥ 72 follows by adding a line to A(56,12,7) ≥ 71. (Bo Chen)

Note on the upper bounds: A(41,12,7) < 30 and A(42,12,7) < 36 and A(43,12,7) < 43 since equality would give two MOLS(6), resp. AG(2,6), resp. PG(2,6) and these do not exist. In fact A(41,12,7) ≤ 29 implies A(42,12,7) ≤ 34 and A(43,12,7) ≤ 40. János Tapolcai observed that A(36,10,6) ≤ 37 implies A(43,12,7) ≤ 38.

Somewhat related is the result in

J.I. Hall, A.J.E.M. Jansen, A.W.J. Kolen & J.H. van Lint,
Equidistant codes with distance 12,
Discr. Math. 17 (1977) 71-83.
who show that a nontrivial equidistant code of distance 12 has size at most 32. See also
D. McCarthy & S.A. Vanstone,
Embedding (r,1)-designs in finite projective planes,
Discr. Math. 19 (1977) 67-76.
According to
K. Metsch,
Linear spaces with few lines,
Springer LNM 1490, 1991.
a nontrivial linear space with at most 43 blocks has at most 31 points, and a (7,1)-design with at most 43 lines has at most 29 points.

### Values of A(n,12,8)

 29 30 31 32 33 34 35 36 37 38 39 40 22s-29 30.c 31.c 36.c 36-41 38g-46 40g-52 45g-66 48c-74 57g-80 68s-92 85g-110 41 42 43 44 45 46 47 48 49 50 51 52 85-128 105g-157 111sb-192 124sb-234 144sb-247 171s-258 205s-270 246s-282 294.s 350.c 350-363 350-377 53 54 55 56 57 58 59 60 61 62 63 64 350-390 350-405 350-419 362-483 367-513 384sb-529 419sb-545 450sb-562 474sb-587 495sb-666 520-693 520-720

A(31,12,8) ≤ 31 follows by [AVZ], (26).

A(50,12,8) = 350 from S(3,8,50), a Möbius plane. Now A(50+m,12,8) ≥ 350 + A(m,8,6) for m ≤ 25. Removing 8 points in a block shows A(42,12,8) ≥ 105.

A(65,14,9) = 520 from S(3,9,65), a Möbius plane. It follows that A(63,12,8) ≥ 520, and shortening yields the above bounds for 57 ≤ n ≤ 63.

Stronger results follow by using a 3-OA(8,7) or 3-OA(8,8). One finds A(56,12,8) > 343 and A(64,12,8) > 512.

### Lower bounds for A(n,12,12)

 32 33 34 35 36 496BCH 496 552 664 836

# Bounds on A(n,14,w)

n\w 8 9 10 11 12 13 14 15 16
162
172
1822
1922
20222
21333
22334 4
23334 4
24345 66
25356 78
26468 10 13s 14s
27469 13c 19c-20 27s
2847 11x 21c 28c 28c 54H
2947 15c 28c-29 29c-47Po 35c-50 58c
305 10x 21s 30c 36c-62Po 45c-78Po 58-95Po 62c-104Po
31510 31bibd 35c-46 45c-77 60c-129Po 66c-167L 72c-183L
325 12 32c 39c-68Po 55c-118Po 70c-183L 96g-233L 96g-277L 122g-295L
n/w 8 9 10 11 12 13 14 15 16

bibd: 2-(31,10,3) design.
Similarly, a 2-(37,9,2) design shows A(37,14,9) = 37, A(36,14,9) = 28.

A Steiner system S(3,9,65) shows A(65,14,9) = 520.

### Values of A(n,14,8)

The values for n < 64, n ≠ 51 are from [SHP] and [MS]. (Some explicit files with names n-w-d-size.cod from [MS]. Not necessarily isomorphic to the codes constructed in the text below.)

 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 4. 5. 5. 5. 6. 6. 7. 9. 9. 9. 10. 10. 11. 12. 12. 13. 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 15. 17. 18. 19.MS 21. 25. 26. 27SHP-28 31SHP-32 36.s 42.s 49.s 57. 57-58 57-59 57-60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 57-61 57-62 63. 72. -73 -74 -75 -76 -77 -78 80s-87 89-90 -91 -92 -93 -95

(The code words can be viewed as the points of a partial linear space, the n positions as the lines. The condition is that each point is in precisely 8 lines, and two lines have at most one common point.
A(36,14,8) = 9 follows by taking K9;
A(39,14,8) = 10 follows by taking the partial linear space with two disjoint 3-lines and otherwise 2-lines, with two noncollinear pairs AB, CD;
A(41,14,8) = 11 follows by taking the partial linear space on 11 points 0-8,0',8' with 3-lines 012,345,678,0'36,147,258' and otherwise 2-lines, where the pairs 00' and 88' are not covered;
A(42,14,8) = 12 follows by taking the linear space on 12 points with lines {0,1,3}, {0,4}, {0,5}, {0,6} (mod 12);
A(44,14,8) = 13 follows by taking the partial linear space on 13 points A,0-11 with 3-lines 013 (mod 12), A06,A17,A28,A39 and otherwise 2-lines, where the pairs {4,10} and {5,11} are not covered;
A(45,14,8) = 15 follows by taking the linear space on 15 points with lines {0,1,3}, {0,4,9}, {0,7} mod 15;
A(46,14,8) = 17 follows by taking the partial linear space obtained from a PBD(17,{3,5*}) by replacing the 5-line by two 3-lines and two 2-lines;
A(47,14,8) = 18 follows by taking the partial linear space on 18 points a-f,0-11 with lines {0,3,6,9} (mod 12), {0,4,8} (mod 12), a01,b12,a23,b34,a45,..., c05,d16,c27,d38,..., e02,e13,f24,f35,e46,e57,f68,..., ace,adf,bcf,bde, where the pairs ab, cd, ef are not covered;
A(48,14,8) = 19 is given in [MS];
A(49,14,8) = 21 follows by taking the linear space on 21 points with lines {0,2,8,11}, {0,4,5}, {0,7,14} mod 21;
A(50,14,8) = 25 follows by taking S(2,4,25);
Lower bounds A(52,14,8) ≥ 27, A(53,14,8) ≥ 31 are given in [SHP];
A(57,14,8) = 57 follows by taking PG(2,7);
A(62,14,8) ≥ 58 as claimed by [SHP] was probably a mistake;
A(64,14,8) follows by taking AG(2,8), this time with points as coordinate positions.
We have 89 ≤ A(72,14,8) ≤ 90, where the lower bound follows by deleting the points of one line from AG(2,9), and removing a point from the eight lines parallel to it.)

### Lower bounds for A(n,14,14)

 32 33 34 35 36 37 38 39 40 41 42 96g 112g 131 163 218 271 342g 457 492 615g 820g

# Bounds on A(n,16,w)

n\w 9 10 11 12 13 14 15 16
182
192
2022
2122
22222
23222
24333 4
25333 4
26334 44
27335 56
28345 778
29346x 79x10x
3046x6 10 12 15s16s
31468x 11 16-17 21CXY-24 31s
32469x 16 24-27 32c. 32. 62H
n/w 9 10 11 12 13 14 15 16

A(31,16,14) ≥ 21 follows by taking a coset of the (31,6,15) Reed-Muller code C. (Indeed, this code contains the hyperplanes and hyperplane complements in PG(4,2). Let π be a plane and L a disjoint line in PG(4,2), so that these span the space. Of the 31 hyperplanes, 3 contain π and 7 contain L, and none contains π+L, so that there are 21 hyperplanes that meet the 10-point set π∪L in precisely 3+1=4 points. The coset (π∪L)+C contains 21 words of weight 17, mutually at distance 16. Now take complements.)

A(32,16,14), A(32,16,15) ≤ 32 follows by [AVZ], (26).

A(33,16,11) = 12.

### Values of A(n,16,9)

 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 3. 4. 4. 4. 4. 4. 5. 5. 5. 5. 6. 6. 6. 7. 7. 8. 10. 10. 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 10. 11. 11. 12. 12. 13. 13. 14. 15. 16. 19. 19. 20. 21. 22. 24. 28. 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 49. 56. 64. 73. 78. 80. 90.

The values for n = 59, 60, 61 are due to I. Gashkov & D. Taub, New optimal constant weight codes, Electr. J. Comb. 14 (2007) #N13. (That reference also claims that A(45,14,8) = 14, but in fact A(45,14,8) = 15.)

(The code words can be viewed as the points of a partial linear space, the n positions as the lines. The condition is that each point is in precisely 9 lines, and two lines have at most one common point. For example, A(48,16,9) = 11 follows from a partial linear space with 11 points, the union of three 3-lines and two points A, B, with AB not joined, but 2-lines otherwise; A(50,16,9) = 12 follows from a linear space with 12 points and 8 triples, two on each point (and otherwise 2-lines); A(52,16,9) = 13 follows from the linear space with 13 points and lines {0,1,3}, {0,4}, {0,5}, {0,6} (mod 13); A(54,16,9) = 14 follows from a partial linear space with points 0,1,...,11,0',1' and lines {0,1,3}, {0,4}, {0,5}, {0,6,0'}, {0,1'} (mod 12), where 2' = 0'; A(55,16,9) = 15 follows from the linear space with 15 points and 25 3-lines formed by a TD(3,5); A(57,16,9) = 19 follows from the existence of STS(19); A(63,16,9) = 63 from S(2,4,28); A(73,16,9) = 73 from PG(2,8); A(78,16,9) = 78 from PG(2,9) minus a Baer subplane; A(81,16,9) = 90 from AG(2,9), the last two with points as coordinate positions.)

Two further exact values are A(99,16,9) = 132 and A(135,22,12) = 135, obtained from Mathon's elliptic semiplane.

A(40,16,10) = 16. A(42,16,10) = 21. A(45,16,10) < 36.

# Bounds on A(n,18,w)

n\w 10 11 12 13 14 15 16 17
202
212
2222
2322
24222
25222
26222 2
27333 3
28333 44
29333 44
3033 5 5 5 6
313355 6 6
323 45 6 7 8 8
3334 6j 7 9j 11 11
34 4x468j 10x 14 17c 18c
35 4 5 7 10 15s21s 21-28 35c
n/w 10 11 12 13 14 15 16 17

A(36,18,15) = 36 (bibd), A(36,18,18) = 70 (Had), A(40,18,13) = 40 (PG(3,3)).

### Values of A(n,18,10)

 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 3. 3. 3. 3. 3. 4. 4. 4. 4. 4. 4. 5. 5. 5. 5. 5. 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 6. 6. 6. 6. 7. 7. 7. 8. 8. 9. 11. 11. 11. 12. 12. 12. 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 13. 13. 14. 14. 15. 15. 16. 17. 18. 21. 21. 22. 23. 24. 25.

A(82,18,10) = 41, A(90,18,10) = 81, A(91,18,10) = 91.

(The code words can be viewed as the points of a partial linear space, the n positions as the lines. The condition is that each point is in precisely 10 lines, and two lines have at most one common point. For example, A(61,18,10) = 13 follows from the linear space that is the union of a 4-line, and a 3x3 grid (6 3-lines on 9 points), where all remaining lines are 2-lines; A(63,18,10) = 14 follows from the linear space with lines {0,1,3}, {0,4}, {0,5}, {0,6}, {0,7} (mod 14); A(65,18,10) = 15 follows from the linear space with lines {0,1,3}, {0,5,10}, {0,4}, {0,6}, {0,7} (mod 15); A(67,18,10) = 16 follows from the linear space with points 0,...,11,0',...,3' and lines {0,1,3} mod 12, {0',0,5} mod 12 (with 4'=0'), {0',1',2',3'} and otherwise 2-lines; A(68,18,10) = 17 follows from the linear space with lines {0,1,3}, {0,4,9}, {0,6}, {0,7}; A(70,18,10) = 21 follows by taking an STS(21); A(72,18,10) = 22 follows from a GDD with blocksize 3 and groups 4*4+6 (with the 6-group split into 3*2); A(73,18,10) = 23 follows from a (10,1)-design PBD(23,{3,4,5*}); A(74,18,10) = 24 follows by deleting the 7-block in an PBD(31,{4,7*}). A(75,18,10) = 25 follows from the linear space with lines {0,1,4,12},{0,2,7},{0,6,15} (mod 25).)  