https://github.com/cran/fields
Raw File
Tip revision: ce722edae3c1b9e1af2985ce3500b11058facf0e authored by Doug Nychka on 24 August 2006, 01:46:17 UTC
version 3.04
Tip revision: ce722ed
Wtransform.image.cov.R
"Wtransform.image.cov" <-
function (ind1, ind2=ind1,Y, cov.obj) 
{

#
# define useful local function that does the H multiplcation
# taking advantage of the block diagonal form 
#  

    Mult.H <- function(u, cov.obj) {
        IND <- H.obj$ind0
        u[IND] <- H.obj$H0 %*% c(u[IND])
        u * H.obj$H1
    }

         IND <- cov.obj$ind0 
         CUT<- cov.obj$cut.min         

      if( missing(ind1)){ 
      # do multiplcation for full matrix. 
         if( (nrow(Y)!=cov.obj$m) | (ncol(Y)!=cov.obj$m)){ 
             stop("bad dimensions for Y")}
         hold <- Wtransform.image(Y,cut.min=CUT,inv=TRUE,transpose = TRUE)
         hold <- Mult.H(hold, cov.obj)
         hold <- Mult.H(hold, cov.obj)
         return(
              Wtransform.image(hold, cut.min = CUT, inv = TRUE))
        }

        else{
        # multiplication for subset of indices

         temp <- matrix(0, nrow = cov.obj$m, ncol = cov.obj$n)
         temp[ind2] <- Y 
#
         hold <- Wtransform.image(temp,cut.min=CUT,inv = TRUE,transpose=TRUE)
         hold <- Mult.H(hold, cov.obj)
         hold <- Mult.H(hold, cov.obj)
         return( 
              Wtransform.image(hold, cut.min = CUT,inv =TRUE)[ind1] )
         }

}

back to top