swh:1:snp:dfbb8ae2fb3632e8a8608d675a49ab1f110b7c6d
Raw File
Tip revision: 05460ba5e2a26af404900f60478d75d09bd31294 authored by Doug Nychka on 17 May 2005, 19:39:08 UTC
version 2.0
Tip revision: 05460ba
Wtransform.R
"Wtransform" <-
function (x, inv = FALSE, transpose = FALSE, cut.min = 8) 
{
# coerce to one column matrix if x is not already a matrix
if( !is.matrix(x)){ x<- matrix( x, ncol=1)}

# tranpose operation requires similar recursion to the inverse
    if (transpose) 
        inv <- !inv

    nn<-n <- dim(x)[1]
    
#
# check that n is the product of a dyadic and an integer less or equal 
#to than cut.min
#
    if( dyadic.check( n,cut.min)==FALSE) 
{stop("error in column dimension ")}
    if (!inv) {
        while (nn > cut.min) {
            if (!transpose) {
                x[1:nn, ] <- WQS(x[1:nn, ])
            }
            else {
                x[1:nn, ] <- WQSi.T(x[1:nn, ]) 
            }
            nn <- nn/2
        }
    }
    if (inv) {
        NN <- n
        while (NN > cut.min) {
            NN <- NN/2
        }
        nn <- NN * 2

        while (nn <= n) {
            if (!transpose) {
                x[1:nn,] <- WQSi(x[1:nn, ])
            }
            else {
                x[1:nn,] <- WQS.T(x[1:nn, ])
            }
            nn <- nn * 2
        }
    }
return(x)
}
back to top