Paley-type Hadamard matrices
Computes a Hadamard matrix of dimension (p+1)*2^k, where p is a prime,
and p+1 is a multiple of 4, using the Paley construction. Used by hadamard
.
paley(n, nmax = 2 * n, prime=NULL, check=!is.null(prime)) is.hadamard(H, style=c("0/1","+-"), full.orthogonal.balance=TRUE)
n |
Minimum size for matrix |
nmax |
Maximum size for matrix. Ignored if |
prime |
Optional. A prime at least as large as
|
check |
Check that the resulting matrix is of Hadamard type |
H |
Matrix |
style |
|
full.orthogonal.balance |
Require full orthogonal balance? |
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)*2^k 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 n^3 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.
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.
Cameron PJ (2005) Hadamard Matrices. In: The Encyclopedia of Design Theory http://www.maths.qmul.ac.uk/~lsoicher/designtheory.org/library/encyc/
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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.