diff --git a/src/doc/en/reference/references/index.rst b/src/doc/en/reference/references/index.rst index 7204d8222ff..9d691557b9a 100644 --- a/src/doc/en/reference/references/index.rst +++ b/src/doc/en/reference/references/index.rst @@ -2032,11 +2032,16 @@ REFERENCES: and some constructions of de Luca and Rauzy*, Theoret. Comput. Sci. 255 (2001) 539--553. -.. [Djo1992] \D. Đoković. +.. [Djo1992a] \D. Đoković. *Construction of some new Hadamard matrices*, Bulletin of the Australian Mathematical Society 45(2) (1992): 327-332. :doi:`10.1017/S0004972700030185` +.. [Djo1992b] \D. Đoković. + *Skew Hadamard matrices of order 4 x 37 and 4 x 43*, + Journal of Combinatorial Theory, Series A 61(2) (1992): 319-321. + :doi:`10.1016/0097-3165(92)90029-T` + .. [Djo1994] \D. Đoković. *Five New Orders for Hadamard Matrices of Skew Type*, Australasian Journal of Combinatorics 10 (1994): 259-264. diff --git a/src/sage/combinat/designs/difference_family.py b/src/sage/combinat/designs/difference_family.py index 60ee19e7401..f06b4dae7ab 100644 --- a/src/sage/combinat/designs/difference_family.py +++ b/src/sage/combinat/designs/difference_family.py @@ -1936,8 +1936,11 @@ def skew_supplementary_difference_set(n, existence=False, check=True): These sets are constructed from available data, as described in [Djo1994]_. The set `S_1 \subset G` is always skew, i.e. `S_1 \cap (-S_1) = \emptyset` and `S_1 \cup (-S_1) = G\setminus\{0\}`. - The data for `n = 103, 151` is taken from [Djo1994]_ and the data for `n = 67, 113, 127, 157, 163, 181, 241` - is taken from [Djo1992]_. + The data is taken from: + + * `n = 103, 151`: [Djo1994]_ + * `n = 67, 113, 127, 157, 163, 181, 241`: [Djo1992a]_ + * `n = 37, 43`: [Djo1992b]_ INPUT: @@ -1991,8 +1994,11 @@ def skew_supplementary_difference_set(n, existence=False, check=True): True """ - + # If -1 is present in an index set, it means that {0} should be added to that set indices = { + 37: [[0, 3, 5, 7, 9, 10], [0, 5, 6, 7, 8], + [1, 2, 6, 7, 9], [2, 6, 8, 9, 10]], + 43: [[1, 2, 4], [1, 2, 4], [0, 2, 3], [3, 4, -1]], 67: [[0,3,5,6,9,10,13,14,17,18,20], [0,2,4,9,11,12,13,16,19,21], [1,3,6,10,11,13,14,16,20,21], @@ -2032,6 +2038,8 @@ def skew_supplementary_difference_set(n, existence=False, check=True): } cosets_gens = { + 37: [1, 2, 3, 5, 6, 9], + 43: [1, 3, 7], 67: [1,2,3,4,5,6,8,10,12,15,17], 103: [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 15, 17, 19, 21, 23, 30], 113: [1, 2, 3, 5, 6, 9, 10, 13], @@ -2044,6 +2052,8 @@ def skew_supplementary_difference_set(n, existence=False, check=True): } H_db = { + 37: [1, 10, -11], + 43: [1, 4, 11, 16, 21, -2, -8], 67: [1, 29, 37], 103: [1, 46, 56], 113: [1,16,28,30,49,106,109], @@ -2058,7 +2068,10 @@ def skew_supplementary_difference_set(n, existence=False, check=True): def generate_set(index_set, cosets): S = [] for idx in index_set: - S += cosets[idx] + if idx == -1: + S.append(0) + else: + S += cosets[idx] return S diff --git a/src/sage/combinat/matrices/hadamard_matrix.py b/src/sage/combinat/matrices/hadamard_matrix.py index 409047b136f..f73da95d18a 100644 --- a/src/sage/combinat/matrices/hadamard_matrix.py +++ b/src/sage/combinat/matrices/hadamard_matrix.py @@ -2018,7 +2018,7 @@ def GS_skew_hadamard_smallcases(n, existence=False, check=True): Additional data is obtained from skew supplementary difference sets contained in :func:`sage.combinat.designs.difference_family.skew_supplementary_difference_set`, using the - construction described in [Djo1992]_. + construction described in [Djo1992a]_. INPUT: