Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Add skew SDS of size 37 and 43
Browse files Browse the repository at this point in the history
  • Loading branch information
MatteoCati committed Dec 23, 2022
1 parent 67e9000 commit 4f7b28f
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
7 changes: 6 additions & 1 deletion src/doc/en/reference/references/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
21 changes: 17 additions & 4 deletions src/sage/combinat/designs/difference_family.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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],
Expand Down Expand Up @@ -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],
Expand All @@ -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],
Expand All @@ -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


Expand Down
2 changes: 1 addition & 1 deletion src/sage/combinat/matrices/hadamard_matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 4f7b28f

Please sign in to comment.