Nothing
## ----eval=FALSE, echo=TRUE----------------------------------------------------
# rm(list=ls())
# library(fftw)
# library(rbenchmark)
# library(plyr)
# library(reshape2)
# library(ggplot2)
## ----eval=FALSE, echo=TRUE, label="Benchmarkfunction"-------------------------
# reps <- 10
# dftbm <- function(nd, repls=reps){
# set.seed(1234)
# x <- rnorm(nd, mean=0, sd=1)
# bmd <- benchmark(replications=repls, fftw::FFT(x), stats::fft(x))
# bmd$num_dat <- nd
# bmd$relative[is.na(bmd$relative)] <- 1 # NA happens.
# return(bmd)
# }
## ----eval=TRUE, echo=TRUE, label="Numtermstobench"----------------------------
(nterms.even <- round(2**seq.int(from=4,to=20,by=1)))
## ----eval=FALSE, echo=TRUE, label="Uselapplytodobenching"---------------------
# bench.even <- function(){
# benchdat.e <- plyr::ldply(lapply(X=nterms.even, FUN=dftbm))
# }
# bench.even()
## ----eval=FALSE, echo=TRUE, label="Setupnonhighlycompositelengths"------------
# nterms.odd <- nterms.even + 1
# nterms.odd <- nterms.odd[nterms.odd < 50e3] # painfully long otherwise!
## ----eval=FALSE, echo=TRUE, label="Dobenching"--------------------------------
# bench.odd <- function(){
# benchdat.o <- plyr::ldply(lapply(X=nterms.odd, FUN=dftbm))
# }
# bench.odd() # FAIR WARNING: this can take a while!!
## ----eval=FALSE, echo=TRUE, label="MapReduceSummarize"------------------------
# pltbench <- function(lentyp=c("even","odd")){
# benchdat <- switch(match.arg(lentyp), even=benchdat.e, odd=benchdat.o)
# stopifnot(exists("benchdat"))
# tests <- unique(benchdat$test)
# ## subset only information we care about
# allbench.df.drp <- subset(benchdat,
# select=c(test, num_dat, user.self, sys.self, elapsed, relative))
# ## reduce data.frame with melt
# allbench.df.mlt <- reshape2::melt(allbench.df.drp,
# id.vars=c("test","num_dat"))
# ## calculate the summary information to be plotted:
# tmpd <- plyr::ddply(allbench.df.mlt,
# .(variable, num_dat),
# summarise,
# summary="medians",
# value=ggplot2::mean_cl_normal(value)[1,1])
# ## create copies for each test and map to data.frame
# allmeds <<- plyr::ldply(lapply(X=tests,
# FUN=function(x,df=tmpd){
# df$test <- x; return(df)
# }))
# ## plot the benchmark data
# # 1/sqrt(n) standard errors [assumes N(0,1)]
# g <- ggplot(data=allbench.df.mlt,
# aes(x=log10(num_dat),
# y=log2(value),
# ymin=log2(value*(1-1/sqrt(reps))),
# ymax=log2(value*(1+1/sqrt(reps))),
# colour=test,
# group=test)) +
# scale_colour_discrete(guide="none") +
# theme_bw()+
# ggtitle(sprintf("DFT benchmarks of %s length series",toupper(lentyp))) +
# ylim(c(-11,11))+
# xlim(c(0.5,6.5))
#
# ## add previous summary curves if exist
# if (exists("allmeds.prev")){
# g <- g + geom_path(size=1.5, colour="dark grey", data=allmeds.prev,
# aes(group=test))
# }
# ## create a facetted version
# g2 <- g + facet_grid(variable~test) #, scales="free_y")
# ## add the summary data as a line
# g3 <- g2 + geom_path(colour="black", data=allmeds, aes(group=test))
# ## and finally the data
# print(g4 <<- g3 + geom_pointrange())
# }
## ----eval=FALSE, echo=TRUE, label="Plotnonhighlycompositeresults"------------
# pltbench("even")
# allmeds.prev <- allmeds
# pltbench("odd")
## ----eval=TRUE, echo=TRUE, label=SI-------------------------------------------
utils::sessionInfo()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.