inst/benchmarks/lmfit_fullrank.r

library(memuse)
library(linmod)
#library(RcppArmadillo)
library(RcppEigen)
library(rbenchmark)
library(microbenchmark)


burnin <- function(reps=10)
{
  x <- matrix(rnorm(30), 10)
  y <- rnorm(10)
  
  replicate(fastLm(X=x, y=y), n=reps)
  replicate(lm_fit(x=x, y=y), n=reps)
  replicate(lm.fit(x=x, y=y), n=reps)
  
  invisible()
}
burnin()


reps <- 15

m <- 12000
n <- 250
x <- matrix(rnorm(m*n), m, n)
y <- rnorm(m)



cat("------------ Assume full rank ------------\n")
cat(paste0("Data size:  ", object.size(x)+object.size(y), "\n"))
cat(paste0("L3 cache size:  ", Sys.cachesize()$L3, "\n"))


#bench <- benchmark(
##          fastLm(X=x,  y=y, method=1), 
#          lm_fit(x=x, y=y, check.rank=FALSE),
#          lm.fit(x=x, y=y),
#          replications=10,
#          columns=c("test", "replications", "elapsed", "relative")
#)



control <- list(warmup=20, order="random")

bench <- microbenchmark(
          lm.fit(x=x, y=y),
          lm_fit(x=x, y=y, check.rank=FALSE),
#          RcppEigen::fastLm(X=x,  y=y, method=0), 
          times=reps,
          unit="s",
          control=control
)

print(bench)
wrathematics/linmod documentation built on May 4, 2019, 10:52 a.m.