@@ -1615,6 +1615,37 @@ def is_skew_hadamard_matrix(M, normalized=False, verbose=False):
1615
1615
return is_hadamard_matrix (M , skew = True , normalized = normalized , verbose = verbose )
1616
1616
1617
1617
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
+
1618
1649
@matrix_method
1619
1650
def hadamard_matrix (n , existence = False , check = True ):
1620
1651
r"""
0 commit comments