> set.seed(1) > n <- 500 > A <- array(rnorm(n^2), dim=c(n,n)) > B <- array(rnorm(n^2), dim=c(n,n)) > C. <- array(rnorm(n^2), dim=c(n,n)) > D <- array(rnorm(n^2), dim=c(n,n)) > > BA <- B%*%A > > start.time <- proc.time() > A1 <- A%*%solve(t(BA)%*%BA+C.)%*%BA%*%D > proc.time()-start.time [1] 4.75 0.03 5.13 NA NA > > start.time <- proc.time() > A2 <- A%*%solve(crossprod(BA)+C., crossprod(t(BA), D)) > proc.time()-start.time [1] 4.19 0.01 4.49 NA NA > all.equal(A1, A2) [1] TRUE
This was in R 1.8.1 under Windows 2000 on an IBM Thinkpad T30 with a Mobile Intel Pentium 4-M, 1.8Ghz, 1Gbyte RAM. The same script under S-Plus 6.2 produced the following elapsed times:
[1] 3.325 0.121 3.815 0.000 0.000
[1] 2.934 0.070 3.355 0.000 0.000
Thus, roughly, using "crossprod" plus "solving with solve" gave a 10% speed improvement and S-Plus 6.2 gave a 25% speed improvement in this one small benchmark. Using smaller matrices did not show as big a difference just because the time was too short to measure accurately, I think.
Enough trivia for now. Best Wishes,
spencer graves
(Ted Harding) wrote:
On 16-Feb-04 Peter Dalgaard wrote:
(Ted Harding) <[EMAIL PROTECTED]> writes:
Sorry! Missed a trick here:Well, you might consider getting rid of the first two transposes since
At <- t(A) Bt <- t(B) E <- B%*%A Et <- t(E) A%*%solve(Et%*%E + C)%*%Et%*%D
(saves 2 multiplications at the relatively cheap cost of 1 transpose)
you're not actually using them for anything....
Touch� ... ! Ted.
-------------------------------------------------------------------- E-Mail: (Ted Harding) <[EMAIL PROTECTED]> Fax-to-email: +44 (0)870 167 1972 Date: 16-Feb-04 Time: 23:41:57 ------------------------------ XFMail ------------------------------
______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
