hadamard               package:survey               R Documentation

_H_a_d_a_m_a_r_d _m_a_t_r_i_c_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     Returns a Hadamard matrix of dimension larger than the argument.

_U_s_a_g_e:

     hadamard(n)

_A_r_g_u_m_e_n_t_s:

       n: lower bound for size 

_D_e_t_a_i_l_s:

     For most 'n' the matrix comes from 'paley'. The 36x36 matrix is
     from Plackett and Burman (1946) and the 28x28 is from Sloane's
     library of Hadamard matrices.

     Matrices of dimension every multiple of 4 are thought to exist,
     but this function doesn't know about all of them, so it will
     sometimes return matrices that are larger than necessary.  The
     excess is at most 4 for n<180 and at most 5% for n>100.

_V_a_l_u_e:

     A Hadamard matrix

_N_o_t_e:

     Strictly speaking, a Hadamard matrix has entries +1 and -1 rather
     than 1 and 0, so '2*hadamard(n)-1' is a Hadamard matrix

_R_e_f_e_r_e_n_c_e_s:

     Sloane NJA. A Library of Hadamard Matrices <URL:
     http://www.research.att.com/~njas/hadamard/>

     Plackett RL, Burman JP. (1946) The Design of Optimum
     Multifactorial Experiments Biometrika, Vol. 33, No. 4  pp. 305-325 

     Cameron PJ (2005) Hadamard Matrices <URL:
     http://designtheory.org/library/encyc/topics/had.pdf>. In: The
     Encyclopedia of Design Theory <URL:
     http://designtheory.org/library/encyc/>

_S_e_e _A_l_s_o:

     'brrweights', 'paley'

_E_x_a_m_p_l_e_s:

     par(mfrow=c(2,2))
     ## Sylvester-type
     image(hadamard(63),main=quote("Sylvester: "*64==2^6))
     ## Paley-type
     image(hadamard(59),main=quote("Paley: "*60==59+1))
     ## from NJ Sloane's library
     image(hadamard(27),main=quote("Stored: "*28))
     ## For n=90 we get 96 rather than the minimum possible size, 92.
     image(hadamard(90),main=quote("Constructed: "*96==2^3%*%(11+1)))

     par(mfrow=c(1,1))
     plot(2:150,sapply(2:150,function(i) ncol(hadamard(i))),type="S",
          ylab="Matrix size",xlab="n",xlim=c(1,150),ylim=c(1,150))
     abline(0,1,lty=3)
     lines(2:150, 2:150-(2:150 %% 4)+4,col="purple",type="S",lty=2)
     legend(c(x=10,y=140),legend=c("Actual size","Minimum possible size"),
          col=c("black","purple"),bty="n",lty=c(1,2))

