Hi -- I am wondering if there is a suite of R functions or an R package for the 
following types of purpose:

Suppose I had a nxpxp array (say, A) and I wanted to invert each pxp "layer" in 
the array (i.e., solve(A[i,,]) for i in 1:n).  Or, suppose I had a nxpxq array 
(A) and a nxqxr array (B) and I wanted to multiply the pxq matrix from each 
layer of the first array with the corresponding qxr layer of the second array, 
i.e., A[i,,]%*%B[i,,] for i in 1:n.

Is there a computationally efficient way to do this? I can of course use a 
for() loop.  It can also be done, I think, with the tensorA package.  But, a 
quick test on inverse ( inv.tensor() ) showed that a for() loop around solve() 
is faster than inv.tensor() from tensorA. But, i am concerned that a for() loop 
is not very efficient.

A long while back, I designed some R functions that called fortran code to do 
the looping.  Those functions are rudimentary, but I could develop them 
further.  A quick test suggested they were very much faster than a for() loop 
around solve(). 

Finally, I am not just interested in solve() and matrix multiplication, but 
other matrix operations as well.

Before going further, I am in search of existing solutions. -- pr

Paul Rathouz, PhD
Professor and Chair
Department of Biostatistics & Medical Informatics
University of Wisconsin School of Medicine and Public Health
K6/446 CSC, Box 4675
600 Highland Avenue
Madison, WI 53792-4675
608.263.1706

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to