Learn R Programming

CARrampsOcl (version 0.1.4)

oclKronVectMult1col: Function to call OpenCL program to compute product of a Kronecker product of two matrices times another matrix.

Description

Function to call OpenCL program to compute product of a Kronecker product of two matrices times another matrix.

Usage

oclKronVectMult1col(kernel, a, b, y, ...)

Arguments

kernel
OpenCL kernel to be run
a
left matrix in kronecker product
b
right matrix in kronecker product
y
vector to be premultiplied by kronecker product of a and b

Value

  • matrix; the product kronecker(a,b)

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,c)
{
   if(!is.numeric(a) | !is.numeric(b) | !is.numeric(c) )
          stop("a and b must be numeric matrices")

   na1 <- nrow(a)
   nb1 <- nrow(b)
   nc1 <- ncol(c)
   a<- as.vector(t(a))
   b<- as.vector(t(b))
   c<- as.vector(c)     # change; not transposed before sent
   retvect <- rep(0, na1 * nb1 * nc1)

   out <- .C("doKronVectMult1colD", a=as.double(a), b = as.double(b),
              c = as.double(c),
               retvect=as.double(retvect), na1 = as.integer(na1),
               nb1 = as.integer(nb1), nc1 = as.integer(nc1), PACKAGE="CARramps" )
   return(matrix(out$retvect, nrow=na1*nb1,byrow=F) ) # change byrow
  }

Run the code above in your browser using DataLab