## Compare the speed of product vs exp/sum/log calculations library(microbenchmark) x <- runif(1000) + 0.5 all.equal(prod(x), exp(sum(log(x)))) ## [1] TRUE microbenchmark::microbenchmark( prod(x), exp(sum(log(x))) ) ## Unit: microseconds ## expr min lq mean median uq max neval ## prod(x) 2.075 2.107 2.52904 2.1945 2.5285 13.964 100 ## exp(sum(log(x))) 51.525 52.075 62.89344 52.6135 62.5120 400.676 100
We can see it is much faster to use the straightforward calculation of "prod".