This report benchmark the performance of colCumsums() and rowCumsums() against alternative methods.
> rmatrix <- function(nrow, ncol, mode = c("logical", "double", "integer", "index"), range = c(-100,
+ +100), na_prob = 0) {
+ mode <- match.arg(mode)
+ n <- nrow * ncol
+ if (mode == "logical") {
+ x <- sample(c(FALSE, TRUE), size = n, replace = TRUE)
+ } else if (mode == "index") {
+ x <- seq_len(n)
+ mode <- "integer"
+ } else {
+ x <- runif(n, min = range[1], max = range[2])
+ }
+ storage.mode(x) <- mode
+ if (na_prob > 0)
+ x[sample(n, size = na_prob * n)] <- NA
+ dim(x) <- c(nrow, ncol)
+ x
+ }
> rmatrices <- function(scale = 10, seed = 1, ...) {
+ set.seed(seed)
+ data <- list()
+ data[[1]] <- rmatrix(nrow = scale * 1, ncol = scale * 1, ...)
+ data[[2]] <- rmatrix(nrow = scale * 10, ncol = scale * 10, ...)
+ data[[3]] <- rmatrix(nrow = scale * 100, ncol = scale * 1, ...)
+ data[[4]] <- t(data[[3]])
+ data[[5]] <- rmatrix(nrow = scale * 10, ncol = scale * 100, ...)
+ data[[6]] <- t(data[[5]])
+ names(data) <- sapply(data, FUN = function(x) paste(dim(x), collapse = "x"))
+ data
+ }
> data <- rmatrices(mode = mode)
> X <- data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5213650 278.5 8529671 455.6 8529671 455.6
Vcells 9925088 75.8 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204441 278.0 8529671 455.6 8529671 455.6
Vcells 9894840 75.5 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on integer+10x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.001911 | 0.0022615 | 0.0028634 | 0.0026425 | 0.0032065 | 0.011830 |
| 2 | apply+cumsum | 0.040984 | 0.0430095 | 0.0450429 | 0.0436840 | 0.0443830 | 0.134853 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cumsum | 21.44636 | 19.01813 | 15.73078 | 16.53131 | 13.84157 | 11.39924 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on integer+10x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.002019 | 0.0023745 | 0.0030955 | 0.0031475 | 0.0033615 | 0.012904 |
| 2 | apply+cumsum | 0.041296 | 0.0430055 | 0.0453320 | 0.0439765 | 0.0448645 | 0.127759 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | apply+cumsum | 20.45369 | 18.11139 | 14.64467 | 13.97188 | 13.34657 | 9.900728 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on integer+10x10 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on integer+10x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.911 | 2.2615 | 2.86336 | 2.6425 | 3.2065 | 11.830 |
| 2 | rowCumsums | 2.019 | 2.3745 | 3.09546 | 3.1475 | 3.3615 | 12.904 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | rowCumsums | 1.056515 | 1.049967 | 1.081059 | 1.191107 | 1.048339 | 1.090786 |
Figure: Benchmarking of colCumsums() and rowCumsums() on integer+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5203021 277.9 8529671 455.6 8529671 455.6
Vcells 9511362 72.6 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5202997 277.9 8529671 455.6 8529671 455.6
Vcells 9516375 72.7 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on integer+100x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.030985 | 0.0331105 | 0.0356015 | 0.0341035 | 0.0369750 | 0.07321 |
| 2 | apply+cumsum | 0.233731 | 0.2475550 | 0.2683101 | 0.2554475 | 0.2792505 | 0.42647 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 |
| 2 | apply+cumsum | 7.54336 | 7.476631 | 7.536484 | 7.49036 | 7.552414 | 5.825297 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on integer+100x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.034552 | 0.0367395 | 0.0400708 | 0.038110 | 0.0411165 | 0.075774 |
| 2 | apply+cumsum | 0.231944 | 0.2421085 | 0.2662760 | 0.255937 | 0.2775260 | 0.437345 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cumsum | 6.712897 | 6.589869 | 6.645136 | 6.715744 | 6.749748 | 5.771703 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on integer+100x100 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on integer+100x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 30.985 | 33.1105 | 35.60150 | 34.1035 | 36.9750 | 73.210 |
| 2 | rowCumsums | 34.552 | 36.7395 | 40.07081 | 38.1100 | 41.1165 | 75.774 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | rowCumsums | 1.11512 | 1.109603 | 1.125537 | 1.117481 | 1.112008 | 1.035022 |
Figure: Benchmarking of colCumsums() and rowCumsums() on integer+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5203753 278.0 8529671 455.6 8529671 455.6
Vcells 9514872 72.6 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5203729 278.0 8529671 455.6 8529671 455.6
Vcells 9519885 72.7 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on integer+1000x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.031286 | 0.0334150 | 0.0412783 | 0.0358795 | 0.0393105 | 0.383971 |
| 2 | apply+cumsum | 0.145744 | 0.1545035 | 0.1875465 | 0.1641285 | 0.1866940 | 0.641418 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cumsum | 4.658442 | 4.623777 | 4.543462 | 4.574437 | 4.749215 | 1.670486 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on integer+1000x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.039003 | 0.0403455 | 0.0440631 | 0.043102 | 0.0463195 | 0.065613 |
| 2 | apply+cumsum | 0.150331 | 0.1564150 | 0.1698952 | 0.167528 | 0.1779855 | 0.270237 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 3.854344 | 3.876888 | 3.855721 | 3.88678 | 3.842561 | 4.11865 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on integer+1000x10 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on integer+1000x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 31.286 | 33.4150 | 41.27832 | 35.8795 | 39.3105 | 383.971 |
| 2 | rowCumsums | 39.003 | 40.3455 | 44.06314 | 43.1020 | 46.3195 | 65.613 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 2 | rowCumsums | 1.24666 | 1.207407 | 1.067465 | 1.201299 | 1.178298 | 0.1708801 |
Figure: Benchmarking of colCumsums() and rowCumsums() on integer+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5203941 278.0 8529671 455.6 8529671 455.6
Vcells 9515562 72.6 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5203917 278.0 8529671 455.6 8529671 455.6
Vcells 9520575 72.7 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on integer+10x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.026868 | 0.0285480 | 0.0320503 | 0.0299965 | 0.0349415 | 0.052815 |
| 2 | apply+cumsum | 0.900702 | 0.9357485 | 1.0189601 | 0.9755480 | 1.0908195 | 1.451818 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cumsum | 33.52322 | 32.77808 | 31.79257 | 32.52206 | 31.21845 | 27.48874 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on integer+10x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.027042 | 0.0281790 | 0.0317528 | 0.0298610 | 0.033192 | 0.052271 |
| 2 | apply+cumsum | 0.896643 | 0.9348615 | 1.0179929 | 0.9697105 | 1.096916 | 1.433608 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.0000 | 1.00000 |
| 2 | apply+cumsum | 33.15742 | 33.17582 | 32.05995 | 32.47415 | 33.0476 | 27.42645 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on integer+10x1000 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on integer+10x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCumsums | 27.042 | 28.179 | 31.75279 | 29.8610 | 33.1920 | 52.271 |
| 1 | colCumsums | 26.868 | 28.548 | 32.05026 | 29.9965 | 34.9415 | 52.815 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCumsums | 1.0000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCumsums | 0.9935656 | 1.013095 | 1.009368 | 1.004538 | 1.052709 | 1.010407 |
Figure: Benchmarking of colCumsums() and rowCumsums() on integer+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204103 278.0 8529671 455.6 8529671 455.6
Vcells 9516010 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204097 278 8529671 455.6 8529671 455.6
Vcells 9566053 73 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on integer+100x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.242814 | 0.264977 | 0.2843808 | 0.2699675 | 0.2952235 | 0.737059 |
| 2 | apply+cumsum | 1.713847 | 1.839176 | 2.1032246 | 1.8978890 | 1.9780215 | 16.359792 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 7.058271 | 6.940889 | 7.395804 | 7.030065 | 6.700081 | 22.19604 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on integer+100x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.260093 | 0.279325 | 0.2935745 | 0.289555 | 0.298858 | 0.432349 |
| 2 | apply+cumsum | 1.699208 | 1.849131 | 2.1100754 | 1.905066 | 1.987033 | 16.991866 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 6.533079 | 6.619996 | 7.187531 | 6.579287 | 6.648755 | 39.30127 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on integer+100x1000 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on integer+100x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 242.814 | 264.977 | 284.3808 | 269.9675 | 295.2235 | 737.059 |
| 2 | rowCumsums | 260.093 | 279.325 | 293.5745 | 289.5550 | 298.8580 | 432.349 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 2 | rowCumsums | 1.071162 | 1.054148 | 1.032329 | 1.072555 | 1.012311 | 0.5865867 |
Figure: Benchmarking of colCumsums() and rowCumsums() on integer+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204320 278.0 8529671 455.6 8529671 455.6
Vcells 9516617 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204296 278 8529671 455.6 8529671 455.6
Vcells 9566630 73 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on integer+1000x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.234917 | 0.247979 | 0.2704248 | 0.259225 | 0.288763 | 0.417261 |
| 2 | apply+cumsum | 0.938419 | 1.001057 | 1.1879427 | 1.046571 | 1.183283 | 8.001552 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 3.994683 | 4.036862 | 4.392876 | 4.037305 | 4.097764 | 19.17637 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on integer+1000x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.268693 | 0.2808735 | 0.3055827 | 0.2935385 | 0.3265135 | 0.417652 |
| 2 | apply+cumsum | 0.947420 | 1.0135190 | 1.1753059 | 1.0573140 | 1.1840970 | 8.044296 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 3.526032 | 3.608454 | 3.846114 | 3.60196 | 3.626487 | 19.26076 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on integer+1000x100 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on integer+1000x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 234.917 | 247.9790 | 270.4248 | 259.2250 | 288.7630 | 417.261 |
| 2 | rowCumsums | 268.693 | 280.8735 | 305.5827 | 293.5385 | 326.5135 | 417.652 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 | 1.000000 |
| 2 | rowCumsums | 1.143778 | 1.13265 | 1.13001 | 1.13237 | 1.130732 | 1.000937 |
Figure: Benchmarking of colCumsums() and rowCumsums() on integer+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> rmatrix <- function(nrow, ncol, mode = c("logical", "double", "integer", "index"), range = c(-100,
+ +100), na_prob = 0) {
+ mode <- match.arg(mode)
+ n <- nrow * ncol
+ if (mode == "logical") {
+ x <- sample(c(FALSE, TRUE), size = n, replace = TRUE)
+ } else if (mode == "index") {
+ x <- seq_len(n)
+ mode <- "integer"
+ } else {
+ x <- runif(n, min = range[1], max = range[2])
+ }
+ storage.mode(x) <- mode
+ if (na_prob > 0)
+ x[sample(n, size = na_prob * n)] <- NA
+ dim(x) <- c(nrow, ncol)
+ x
+ }
> rmatrices <- function(scale = 10, seed = 1, ...) {
+ set.seed(seed)
+ data <- list()
+ data[[1]] <- rmatrix(nrow = scale * 1, ncol = scale * 1, ...)
+ data[[2]] <- rmatrix(nrow = scale * 10, ncol = scale * 10, ...)
+ data[[3]] <- rmatrix(nrow = scale * 100, ncol = scale * 1, ...)
+ data[[4]] <- t(data[[3]])
+ data[[5]] <- rmatrix(nrow = scale * 10, ncol = scale * 100, ...)
+ data[[6]] <- t(data[[5]])
+ names(data) <- sapply(data, FUN = function(x) paste(dim(x), collapse = "x"))
+ data
+ }
> data <- rmatrices(mode = mode)
> X <- data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204520 278.0 8529671 455.6 8529671 455.6
Vcells 9632330 73.5 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204487 278.0 8529671 455.6 8529671 455.6
Vcells 9632428 73.5 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on double+10x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.001778 | 0.0021550 | 0.0027174 | 0.0024265 | 0.0030855 | 0.012622 |
| 2 | apply+cumsum | 0.041617 | 0.0429945 | 0.0451775 | 0.0442875 | 0.0447965 | 0.121619 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.00000 | 1.00000 | 1.0000 | 1.00000 | 1.000000 |
| 2 | apply+cumsum | 23.40664 | 19.95104 | 16.62504 | 18.2516 | 14.51839 | 9.635478 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on double+10x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.001775 | 0.0021740 | 0.0031530 | 0.0029935 | 0.0032695 | 0.014764 |
| 2 | apply+cumsum | 0.040890 | 0.0426805 | 0.0476445 | 0.0440535 | 0.0451975 | 0.131418 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | apply+cumsum | 23.03662 | 19.63224 | 15.11104 | 14.71639 | 13.82398 | 8.901246 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on double+10x10 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on double+10x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.778 | 2.155 | 2.71744 | 2.4265 | 3.0855 | 12.622 |
| 2 | rowCumsums | 1.775 | 2.174 | 3.15296 | 2.9935 | 3.2695 | 14.764 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.0000000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 |
| 2 | rowCumsums | 0.9983127 | 1.008817 | 1.160268 | 1.23367 | 1.059634 | 1.169704 |
Figure: Benchmarking of colCumsums() and rowCumsums() on double+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204695 278.0 8529671 455.6 8529671 455.6
Vcells 9633150 73.5 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204671 278.0 8529671 455.6 8529671 455.6
Vcells 9643163 73.6 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on double+100x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.022690 | 0.0237980 | 0.0258113 | 0.024590 | 0.0271775 | 0.047038 |
| 2 | apply+cumsum | 0.230441 | 0.2418455 | 0.2624985 | 0.251979 | 0.2717825 | 0.423725 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | apply+cumsum | 10.15606 | 10.16243 | 10.16993 | 10.24721 | 10.00028 | 9.008142 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on double+100x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.025000 | 0.0267900 | 0.0289336 | 0.0277845 | 0.030582 | 0.043531 |
| 2 | apply+cumsum | 0.220881 | 0.2424455 | 0.2613835 | 0.2514460 | 0.272351 | 0.438277 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.00000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 8.83524 | 9.049851 | 9.03391 | 9.049866 | 8.905598 | 10.06816 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on double+100x100 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on double+100x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 22.69 | 23.798 | 25.81125 | 24.5900 | 27.1775 | 47.038 |
| 2 | rowCumsums | 25.00 | 26.790 | 28.93359 | 27.7845 | 30.5820 | 43.531 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 2 | rowCumsums | 1.101807 | 1.125725 | 1.120968 | 1.129911 | 1.125269 | 0.9254433 |
Figure: Benchmarking of colCumsums() and rowCumsums() on double+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204887 278.0 8529671 455.6 8529671 455.6
Vcells 9634052 73.6 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5204863 278.0 8529671 455.6 8529671 455.6
Vcells 9644065 73.6 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on double+1000x10 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.022242 | 0.0236490 | 0.0258394 | 0.0252725 | 0.027014 | 0.045889 |
| 2 | apply+cumsum | 0.142931 | 0.1497305 | 0.1635912 | 0.1607945 | 0.173429 | 0.258434 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.00000 | 1.00000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 6.426176 | 6.331367 | 6.33109 | 6.36243 | 6.419967 | 5.63172 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on double+1000x10 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.028172 | 0.029650 | 0.0322225 | 0.0312810 | 0.0336665 | 0.050613 |
| 2 | apply+cumsum | 0.143565 | 0.149054 | 0.1639212 | 0.1617185 | 0.1730210 | 0.271444 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cumsum | 5.096017 | 5.027116 | 5.087167 | 5.169863 | 5.139263 | 5.363128 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on double+1000x10 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on double+1000x10 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 22.242 | 23.649 | 25.83935 | 25.2725 | 27.0140 | 45.889 |
| 2 | rowCumsums | 28.172 | 29.650 | 32.22250 | 31.2810 | 33.6665 | 50.613 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | rowCumsums | 1.266613 | 1.253753 | 1.247032 | 1.237748 | 1.246261 | 1.102944 |
Figure: Benchmarking of colCumsums() and rowCumsums() on double+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5205075 278.0 8529671 455.6 8529671 455.6
Vcells 9634177 73.6 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5205051 278.0 8529671 455.6 8529671 455.6
Vcells 9644190 73.6 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on double+10x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.019951 | 0.021407 | 0.0249837 | 0.02325 | 0.028980 | 0.041578 |
| 2 | apply+cumsum | 0.872224 | 0.929991 | 1.0234031 | 0.97128 | 1.098561 | 1.619498 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cumsum | 43.71831 | 43.44331 | 40.96288 | 41.77548 | 37.90754 | 38.95084 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on double+10x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.019277 | 0.0205675 | 0.0232597 | 0.0217955 | 0.024536 | 0.041653 |
| 2 | apply+cumsum | 0.899400 | 0.9333850 | 1.0144295 | 0.9709405 | 1.085459 | 1.433657 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cumsum | 46.65664 | 45.38155 | 43.61312 | 44.54775 | 44.23944 | 34.41906 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on double+10x1000 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on double+10x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCumsums | 19.277 | 20.5675 | 23.25973 | 21.7955 | 24.536 | 41.653 |
| 1 | colCumsums | 19.951 | 21.4070 | 24.98367 | 23.2500 | 28.980 | 41.578 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 1 | colCumsums | 1.034964 | 1.040817 | 1.074117 | 1.066734 | 1.181122 | 0.9981994 |
Figure: Benchmarking of colCumsums() and rowCumsums() on double+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5205237 278.0 8529671 455.6 8529671 455.6
Vcells 9635191 73.6 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5205231 278.0 8529671 455.6 8529671 455.6
Vcells 9735234 74.3 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on double+100x1000 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.169302 | 0.1869715 | 0.203835 | 0.1982765 | 0.2174725 | 0.296995 |
| 2 | apply+cumsum | 1.622244 | 1.7400535 | 2.168069 | 1.8591440 | 2.0870160 | 14.327352 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cumsum | 9.581954 | 9.306517 | 10.63639 | 9.376522 | 9.596689 | 48.24105 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on double+100x1000 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.183713 | 0.200637 | 0.3437208 | 0.2183715 | 0.239217 | 11.65280 |
| 2 | apply+cumsum | 1.644144 | 1.752021 | 2.1181943 | 1.9403660 | 2.160354 | 13.20317 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cumsum | 8.949525 | 8.732293 | 6.162543 | 8.885619 | 9.030938 | 1.133047 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on double+100x1000 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on double+100x1000 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 169.302 | 186.9715 | 203.8350 | 198.2765 | 217.4725 | 296.995 |
| 2 | rowCumsums | 183.713 | 200.6370 | 343.7208 | 218.3715 | 239.2170 | 11652.801 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.00000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | rowCumsums | 1.08512 | 1.073089 | 1.68627 | 1.101348 | 1.099987 | 39.23568 |
Figure: Benchmarking of colCumsums() and rowCumsums() on double+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

> X <- data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5205442 278.1 8529671 455.6 8529671 455.6
Vcells 9635337 73.6 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCumsums = colCumsums(X), `apply+cumsum` = apply(X, MARGIN = 2L, FUN = cumsum),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5205430 278.0 8529671 455.6 8529671 455.6
Vcells 9735370 74.3 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCumsums = rowCumsums(X), `apply+cumsum` = apply(X, MARGIN = 1L, FUN = cumsum),
+ unit = "ms")
Table: Benchmarking of colCumsums() and apply+cumsum() on double+1000x100 data. The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 0.159095 | 0.1759715 | 0.1929168 | 0.1885775 | 0.2040345 | 0.280967 |
| 2 | apply+cumsum | 0.938149 | 1.0150880 | 1.2239085 | 1.0942785 | 1.1882135 | 6.904004 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.0000 |
| 2 | apply+cumsum | 5.896785 | 5.76848 | 6.344231 | 5.802805 | 5.823591 | 24.5723 |
Table: Benchmarking of rowCumsums() and apply+cumsum() on double+1000x100 data (transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 0.193541 | 0.2109785 | 0.3366797 | 0.2288495 | 0.2427325 | 5.595377 |
| 2 | apply+cumsum | 0.952226 | 1.0191530 | 1.1220076 | 1.1013460 | 1.1857660 | 1.776875 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 2 | apply+cumsum | 4.920022 | 4.830601 | 3.332566 | 4.812534 | 4.885073 | 0.3175613 |
Figure: Benchmarking of colCumsums() and apply+cumsum() on double+1000x100 data as well as rowCumsums() and apply+cumsum() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCumsums() and rowCumsums() on double+1000x100 data (original and transposed). The top panel shows times in milliseconds and the bottom panel shows relative times.
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 159.095 | 175.9715 | 192.9168 | 188.5775 | 204.0345 | 280.967 |
| 2 | rowCumsums | 193.541 | 210.9785 | 336.6797 | 228.8495 | 242.7325 | 5595.377 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCumsums | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | rowCumsums | 1.216512 | 1.198936 | 1.745207 | 1.213557 | 1.189664 | 19.91471 |
Figure: Benchmarking of colCumsums() and rowCumsums() on double+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.

R version 4.1.1 Patched (2021-08-10 r80727)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.5 LTS
Matrix products: default
BLAS: /home/hb/software/R-devel/R-4-1-branch/lib/R/lib/libRblas.so
LAPACK: /home/hb/software/R-devel/R-4-1-branch/lib/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] microbenchmark_1.4-7 matrixStats_0.60.1 ggplot2_3.3.5
[4] knitr_1.33 R.devices_2.17.0 R.utils_2.10.1
[7] R.oo_1.24.0 R.methodsS3_1.8.1-9001 history_0.0.1-9000
loaded via a namespace (and not attached):
[1] Biobase_2.52.0 httr_1.4.2 splines_4.1.1
[4] bit64_4.0.5 network_1.17.1 assertthat_0.2.1
[7] highr_0.9 stats4_4.1.1 blob_1.2.2
[10] GenomeInfoDbData_1.2.6 robustbase_0.93-8 pillar_1.6.2
[13] RSQLite_2.2.8 lattice_0.20-44 glue_1.4.2
[16] digest_0.6.27 XVector_0.32.0 colorspace_2.0-2
[19] Matrix_1.3-4 XML_3.99-0.7 pkgconfig_2.0.3
[22] zlibbioc_1.38.0 genefilter_1.74.0 purrr_0.3.4
[25] ergm_4.1.2 xtable_1.8-4 scales_1.1.1
[28] tibble_3.1.4 annotate_1.70.0 KEGGREST_1.32.0
[31] farver_2.1.0 generics_0.1.0 IRanges_2.26.0
[34] ellipsis_0.3.2 cachem_1.0.6 withr_2.4.2
[37] BiocGenerics_0.38.0 mime_0.11 survival_3.2-13
[40] magrittr_2.0.1 crayon_1.4.1 statnet.common_4.5.0
[43] memoise_2.0.0 laeken_0.5.1 fansi_0.5.0
[46] R.cache_0.15.0 MASS_7.3-54 R.rsp_0.44.0
[49] progressr_0.8.0 tools_4.1.1 lifecycle_1.0.0
[52] S4Vectors_0.30.0 trust_0.1-8 munsell_0.5.0
[55] tabby_0.0.1-9001 AnnotationDbi_1.54.1 Biostrings_2.60.2
[58] compiler_4.1.1 GenomeInfoDb_1.28.1 rlang_0.4.11
[61] grid_4.1.1 RCurl_1.98-1.4 cwhmisc_6.6
[64] rappdirs_0.3.3 startup_0.15.0 labeling_0.4.2
[67] bitops_1.0-7 base64enc_0.1-3 boot_1.3-28
[70] gtable_0.3.0 DBI_1.1.1 markdown_1.1
[73] R6_2.5.1 lpSolveAPI_5.5.2.0-17.7 rle_0.9.2
[76] dplyr_1.0.7 fastmap_1.1.0 bit_4.0.4
[79] utf8_1.2.2 parallel_4.1.1 Rcpp_1.0.7
[82] vctrs_0.3.8 png_0.1-7 DEoptimR_1.0-9
[85] tidyselect_1.1.1 xfun_0.25 coda_0.19-4
Total processing time was 23.34 secs.
To reproduce this report, do:
html <- matrixStats:::benchmark('colCumsums')
Copyright Henrik Bengtsson. Last updated on 2021-08-25 18:54:45 (+0200 UTC). Powered by RSP.