\HeaderA{getarrvec}{Compute and return weaving permutation for conversion from wst objects to wd class objects.}{getarrvec}
\keyword{array}{getarrvec}
\begin{Description}\relax
Computes weaving permutation for conversion from \code{\LinkA{wst}{wst}} objects to \code{\LinkA{wd}{wd}}
\end{Description}
\begin{Usage}
\begin{verbatim}
getarrvec(nlevels, sort=TRUE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{nlevels}] The \code{number of levels} in the non-decimated transform for which the permutation is to be computed.
\item[\code{sort}] If \code{TRUE} then compute permutation for indexing a \code{\LinkA{wst}{wst}} object. If \code{FALSE} then compute permutation for indexing a \code{wd} object.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Conversion of \code{\LinkA{wst}{wst}} objects into \code{\LinkA{wd}{wd}} objects and vice versa can be carried out using the \code{\LinkA{convert.wst}{convert.wst}} and \code{\LinkA{convert.wd}{convert.wd}} functions. These latter functions depend on this getarrvec function to compute the permutation which maps coefficients from one ordering to the other. 

This function returns a matrix which gives the necessary permutations for scale levels 1 to \code{nlevels-1}. If you want to get the permutation for the level 0 coefficients of the \code{\LinkA{wst}{wst}} object you will have to call the \code{\LinkA{levarr}{levarr}} function directly. 

This permutation is described in Nason, Sapatinas and Sawczenko, 1998. 

The function that actually computes the permutations is \code{\LinkA{levarr}{levarr}}. This function just combines the results from \code{\LinkA{levarr}{levarr}}.
\end{Details}
\begin{Value}
A matrix with \code{nlevel}s-1 columns. Column 1 corresponds to scale level \code{nlevels-1} in the \code{\LinkA{wst}{wst}} object, and column \code{nlevels-1} corresponds to scale level 1 in the \code{\LinkA{wst}{wst}} object. Replace \code{\LinkA{wst}{wst}} by \code{\LinkA{wd}{wd}} if \code{sort=FALSE}.
\end{Value}
\begin{Section}{RELEASE}
Version 3.6 Copyright Guy Nason 1997
\end{Section}
\begin{SeeAlso}\relax
\code{\LinkA{convert}{convert}}, \code{\LinkA{convert.wd}{convert.wd}}, \code{\LinkA{convert.wst}{convert.wst}}, \code{\LinkA{levarr}{levarr}}, \code{\LinkA{wst}{wst}}, \code{\LinkA{wst.object}{wst.object}}, \code{\LinkA{wpst}{wpst}}.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
#
# What would the permutation be for a wst
# object with 4 levels?
#
#arrvec <- getarrvec(4)
#arrvec
#      [,1] [,2] [,3] 
# [1,]    1    1    1
# [2,]    9    9    9
# [3,]    2    5    5
# [4,]   10   13   13
# [5,]    3    2    3
# [6,]   11   10   11
# [7,]    4    6    7
# [8,]   12   14   15
# [9,]    5    3    2
#[10,]   13   11   10
#[11,]    6    7    6
#[12,]   14   15   14
#[13,]    7    4    4
#[14,]   15   12   12
#[15,]    8    8    8
#[16,]   16   16   16
#
# The permutation for level 3 is in column 1
# The permutation for level 2 is in column 2
# The permutation for level 1 is in column 3.
#
# The following shows that the above is the right permutation (for level 2
# at least.
#
# Start off with some random normal data!
#
#myrand <- rnorm(1:16)
#
# Now take both the time ordered non-decimated wavelet
# transform and the packet ordered non-decimated wavelet
# transform.
#
#myrwdS <- wd(myrand, type="station")
#myrwst <- wst(myrand)
#
# Let's look at the level 2 coefficients of myrwdS
#
#accessD(myrwdS, level=2)
# [1] -0.73280829 -0.97892279  1.33305777  1.46320165 -0.94790098
# [6] -1.39276215  0.40023757  0.82517249 -0.56317955 -0.89408713
#[11]  0.77166463  1.56204870 -0.34342230 -1.64133182  0.08235115
#[16]  1.05668106
#
# Let's look at the level 2 coefficients of myrwst
#
#accessD(myrwst, level=2)
# [1] -0.73280829 -0.94790098 -0.56317955 -0.34342230  1.33305777
# [6]  0.40023757  0.77166463  0.08235115 -0.97892279 -1.39276215
#[11] -0.89408713 -1.64133182  1.46320165  0.82517249  1.56204870
#[16]  1.05668106
#
# O.k. So the coefficients are the same, but they are not in the
# same order as in myrwdS. So let's use the permutation in the
# second column of arrvec to reorder the myrwst coefficients
# to have the same order as the myrwdS ones
#
#accessD(myrwst, level=2)[arrvec[,2]]
# [1] -0.73280829 -0.97892279  1.33305777  1.46320165 -0.94790098
# [6] -1.39276215  0.40023757  0.82517249 -0.56317955 -0.89408713
#[11]  0.77166463  1.56204870 -0.34342230 -1.64133182  0.08235115
#[16]  1.05668106
#
# These coefficients have the correct ordering.
\end{ExampleCode}
\end{Examples}

