Unlimited learning, half price | 50% off

Last chance! 50% off unlimited learning

Sale ends in


survey (version 4.1-1)

paley: Paley-type Hadamard matrices

Description

Computes a Hadamard matrix of dimension (p+1)×2k, where p is a prime, and p+1 is a multiple of 4, using the Paley construction. Used by hadamard.

Usage

paley(n, nmax = 2 * n, prime=NULL, check=!is.null(prime))

is.hadamard(H, style=c("0/1","+-"), full.orthogonal.balance=TRUE)

Value

For paley, a matrix of zeros and ones, or NULL if no matrix smaller than

nmax can be found.

For is.hadamard, TRUE if H is a Hadamard matrix.

Arguments

n

Minimum size for matrix

nmax

Maximum size for matrix. Ignored if prime is specified.

prime

Optional. A prime at least as large as n, such that prime+1 is divisible by 4.

check

Check that the resulting matrix is of Hadamard type

H

Matrix

style

"0/1" for a matrix of 0s and 1s, "+-" for a matrix of ±1.

full.orthogonal.balance

Require full orthogonal balance?

Details

The Paley construction gives a Hadamard matrix of order p+1 if p is prime and p+1 is a multiple of 4. This is then expanded to order (p+1)×2k using the Sylvester construction.

paley knows primes up to 7919. The user can specify a prime with the prime argument, in which case a matrix of order p+1 is constructed.

If check=TRUE the code uses is.hadamard to check that the resulting matrix really is of Hadamard type, in the same way as in the example below. As this test takes n3 time it is preferable to just be sure that prime really is prime.

A Hadamard matrix including a row of 1s gives BRR designs where the average of the replicates for a linear statistic is exactly the full sample estimate. This property is called full orthogonal balance.

References

Cameron PJ (2005) Hadamard Matrices. In: The Encyclopedia of Design Theory http://www.maths.qmul.ac.uk/~lsoicher/designtheory.org/library/encyc/

See Also

hadamard

Examples

Run this code

M<-paley(11)

is.hadamard(M)
## internals of is.hadamard(M)
H<-2*M-1
## HH^T is diagonal for any Hadamard matrix
H%*%t(H)

Run the code above in your browser using DataLab