Skip to content

Commit 7ac2641

Browse files
committed
Add function for checking all Hadamard matrices
1 parent df5dffa commit 7ac2641

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/sage/combinat/matrices/hadamard_matrix.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1615,6 +1615,37 @@ def is_skew_hadamard_matrix(M, normalized=False, verbose=False):
16151615
return is_hadamard_matrix(M, skew=True, normalized=normalized, verbose=verbose)
16161616

16171617

1618+
def _get_all_hadamard_matrices(skew=False):
1619+
r"""
1620+
Compute all known Hadamard matrices of order `4n`, with `1 \le n \le 250`.
1621+
1622+
The Hadamard matrices are computed using :func:`hadamard_matrix` and skew
1623+
Hadamard matrices are computed by :func:`skew_hadamard_matrix`.
1624+
1625+
Note that all skew and non-skew Hadamard matrices of order `\le 1000` for
1626+
which a construction is known are implemented in SageMath.
1627+
1628+
INPUT:
1629+
1630+
- ``skew`` -- boolean (default: ``False``); whether the matrices should be skew
1631+
1632+
OUTPUT:
1633+
1634+
The output is a list which at index `n` contain the (skew) Hadamard matrix
1635+
of order `4(n+1)`, or ``None` if a construction for such matrix is not yet
1636+
known.
1637+
"""
1638+
unknown_hadamard = [668, 716, 892]
1639+
unknown_skew_hadamard = [356, 404, 428, 476, 596, 612, 668, 708, 712, 716,
1640+
764, 772, 804, 808, 820, 836, 856, 892, 900, 916,
1641+
932, 940, 952, 980, 996]
1642+
1643+
if skew:
1644+
return [None if 4*n in unknown_skew_hadamard else skew_hadamard_matrix(4*n) for n in range(1, 251)]
1645+
else:
1646+
return [None if 4*n in unknown_hadamard else hadamard_matrix(4*n) for n in range(1, 251)]
1647+
1648+
16181649
@matrix_method
16191650
def hadamard_matrix(n, existence=False, check=True):
16201651
r"""

0 commit comments

Comments
 (0)