Learn R Programming

CARrampsOcl (version 0.1.4)

oclCombo1col: Function to call OpenCL to calculate posterior means and standard deviations of random effects in models with 2 structure matrices.

Description

Function to call OpenCL program to calculate posterior means and standard deviations of random effects in models with 2 structure matrices.

Usage

oclCombo1col(a, b, D, tausqy, tausqphi, By)

Arguments

a
Eigenvector matrix of 1st Q matrix.
b
Eigenvector matrix of 2nd Q matrix.
D
Matrix of eigenvalues from the 2 structure matrices.
tausqy
Vector of samples of measurement error precision.
tausqphi
Matrix sampled values of spatial precisions.
By
Vector resulting from premultiplication of data vector y b transpose of kronecker sum of eigenvector matrices.

Value

  • phimeanVector of means of posterior densities of random effects
  • phisdVector of standard deviations of marginal posterior

Examples

Run this code
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function(a,b,D, tausqy, tausqphi, By)
{
   if(!is.numeric(a) | !is.numeric(b)  )
          stop("a and b must be numeric matrices")

   na1 <- nrow(a)
   nb1 <- nrow(b)
   nc1 <- length(tausqy)
   F1 <- ncol(tausqphi) + 1
   nab <- na1 * nb1
   mmean <- rep(0, nab)
   ssd <- rep(0,nab)

   out <- .C("doCombo1colD", a=as.double(as.vector(t(a))), 
              b = as.double(as.vector(t(b))),
              D = as.double(as.vector(t(D))),
              tausqy = as.double(tausqy) ,
              tausqphi = as.double( as.vector( t(tausqphi) )) ,
    By = as.double(By), mean = as.double(mmean), sd = as.double(ssd),
               na1 = as.integer(na1),
               nb1 = as.integer(nb1), nc1 = as.integer(nc1), F1 = 
               as.integer(F1), PACKAGE="CARramps" )
   return(list( phimean = out$mean, phisd = sqrt(out$sd/(nc1-1) )))
  }

Run the code above in your browser using DataLab