FHADAMARDMATRIX procedure

Forms Hadamard matrices (R.W. Payne).


Options

PRINT = string
Controls printed output (monitoring); default * i.e. none

METHOD = string
Method of construction (firstpaley, secondpaley, stored, sylvestre, tensorproduct, turyn, williamson); default * i.e. determined automatically


Parameters

NROWS = scalars
Number of rows of the matrices

HADAMARDMATRIX = matrices
Saves the Hadamard matrices

ERROR = scalars
Returns 0 if the matrix has been formed successfully and 1 if not


Description

A Hadamard matrix is a matrix containing values -1 and +1 whose rows are orthogonal: i.e. if H is a Hadamard matrix

H *+ T(H) = n * IDENTITY(n)

where n is the number of rows of H, which must be 2 or a multiple of 4.

   FHADAMARDMATRIX provides several methods for forming the matrices, described in Hedayat, Sloane & Stufken (1999, Chapter 7). These work for all sizes of matrix up to 200, and various other sizes above that. The METHOD option can be used to specify the method. If this is unset FHADAMARDMATRIX selects an appropriate method automatically (you may then want to set the PRINT option to monitoring to record what method has been used). The settings of METHOD, in the order in which they will be selected, are as follows.

    sylvestre
uses a tensor product construction building on the 2 × 2 matrix to form matrices of size n = 2m for any positive integer m.

    williamson
builds the matrix from four circulant matrices; FHADAMARDMATRIX has a repertoire covering 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 148, 156 and 172 rows.

    turyn
builds the matrix from a circulant and seven retrocirculant matrices; this method is used for the matrix with 188 rows.

    tensorproduct
uses a tensor product between the matrix with two rows, and a Hadamard matrix with n/2 rows.

    secondpaley
forms matrices with n = 2 × (s + 1), where s is a prime power, using properties of the Galois field of order s.

    firstpaley
forms matrices with n = s + 1, where s is a prime power, using properties of the Galois field of order s.

    stored
takes a matrix from a stored repertoire with rows from four to 32.

   The number of rows of the matrix is specified by the NROWS parameter, the HADAMARDMATRIX parameter saves the matrix, and the ERROR parameter can be set to a scalar which returns zero if the matrix has been formed successfully and one if not.

 

Options: PRINT, METHOD.

Parameters: NROWS, HADAMARDMATRIX, ERROR.


Method

The methods are described in Chapter 7 of Hedayat, Sloane & Stufken (1999).


Reference

Hedayat, A.S., Sloane, N.J.A., & Stufken, J. (1999). Orthogonal Arrays, Theory & Applications. Springer-Verlag, New York.