STK: a Small (Matlab/Octave) Toolbox for Kriging
 STK_SAMPLING_OLHS generates a random Orthogonal Latin Hypercube (OLH) sample

 CALL: X = stk_sampling_olhs (N)

    generates a random Orthogonal Latin Hypercube (OLH) sample X, using the
    construction of Ye (1998). The algorithm only works for sample sizes N
    of the form 2^(R+1)+1, with R >= 1. Trying to generate an OLHS with a
    value of N that is not of this form generates an error. The number of
    factors is D = 2*R, and the OLHS is defined on [-1; 1]^D.

 CALL: X = stk_sampling_olhs (N, D)

    does exactly the same thing, provided that there exists an integer R
    such that N = 2^(R+1)+1 and D = 2*R (or D is empty).

 CALL: X = stk_sampling_olhs (N, D, BOX)

    generates an OLHS on BOX. Again, D can be empty since the number of
    factors can be deduced from N.

 CALL: X = stk_sampling_olhs (N, D, BOX, PERMUT)

    uses a given permutation PERMUT, instead of a random permutation, to
    initialize the construction of Ye (1998). As a result, the generated
    OLHS is not random anymore. PERMUT must be a permutation of 1:2^R. If
    BOX is empty, then the default domain [-1, 1]^D is used.

 NOTE: orthogonality

    The samples generated by this functions are only orthogonal, stricty-
    speaking, if BOX is a symmetric domain (e.g., [-1, 1] ^ D). Otherwise,
    the generated samples should be called "uncorrelated".

 REFERENCE

    Kenny Q. Ye, "Orthogonal Column Latin Hypercubes and Their
    Application in Computer Experiments", Journal of the American
    Statistical Association, 93(444), 1430-1439, 1998.
    http://dx.doi.org/10.1080/01621459.1998.10473803

 See also: stk_sampling_randomlhs, stk_sampling_maximinlhs