This report benchmark the performance of colCummins() and rowCummins() 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 5198154 277.7 8529671 455.6 8529671 455.6
Vcells 9816353 74.9 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5189148 277.2 8529671 455.6 8529671 455.6
Vcells 9786783 74.7 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.001886 | 0.0021910 | 0.0027902 | 0.0024685 | 0.0030985 | 0.012003 |
| 2 | apply+cummin | 0.044299 | 0.0450565 | 0.0465846 | 0.0455360 | 0.0459505 | 0.124705 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 23.48834 | 20.56435 | 16.69593 | 18.44683 | 14.82992 | 10.38949 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.002059 | 0.0024045 | 0.0030497 | 0.0031610 | 0.003344 | 0.011764 |
| 2 | apply+cummin | 0.044494 | 0.0454810 | 0.0470173 | 0.0459775 | 0.046496 | 0.126300 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 21.60952 | 18.91495 | 15.41704 | 14.54524 | 13.90431 | 10.73614 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+10x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | colCummins | 1.886 | 2.1910 | 2.79018 | 2.4685 | 3.0985 | 12.003 |
| 2 | rowCummins | 2.059 | 2.4045 | 3.04970 | 3.1610 | 3.3440 | 11.764 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 2 | rowCummins | 1.091729 | 1.097444 | 1.093012 | 1.280535 | 1.079232 | 0.9800883 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5187728 277.1 8529671 455.6 8529671 455.6
Vcells 9403305 71.8 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5187704 277.1 8529671 455.6 8529671 455.6
Vcells 9408318 71.8 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.024733 | 0.0256655 | 0.0287101 | 0.027601 | 0.030879 | 0.049008 |
| 2 | apply+cummin | 0.242463 | 0.2534060 | 0.2830028 | 0.270452 | 0.304802 | 0.434979 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.00000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 9.803218 | 9.87341 | 9.857254 | 9.79863 | 9.870851 | 8.875673 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.032356 | 0.0346660 | 0.0378749 | 0.0366845 | 0.0405270 | 0.053534 |
| 2 | apply+cummin | 0.236244 | 0.2457645 | 0.2763660 | 0.2697430 | 0.2988075 | 0.453301 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 7.301397 | 7.089497 | 7.296813 | 7.353051 | 7.373048 | 8.467535 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+100x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | colCummins | 24.733 | 25.6655 | 28.71010 | 27.6010 | 30.879 | 49.008 |
| 2 | rowCummins | 32.356 | 34.6660 | 37.87489 | 36.6845 | 40.527 | 53.534 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.0000 | 1.000000 | 1.000000 |
| 2 | rowCummins | 1.308212 | 1.350685 | 1.319218 | 1.3291 | 1.312445 | 1.092352 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5188460 277.1 8529671 455.6 8529671 455.6
Vcells 9406815 71.8 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5188436 277.1 8529671 455.6 8529671 455.6
Vcells 9411828 71.9 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.025385 | 0.0273175 | 0.0294291 | 0.029176 | 0.030712 | 0.051438 |
| 2 | apply+cummin | 0.151176 | 0.1623765 | 0.1747166 | 0.174761 | 0.186009 | 0.271083 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 5.955328 | 5.944047 | 5.93686 | 5.989889 | 6.056558 | 5.270092 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.036634 | 0.040133 | 0.0427804 | 0.0425475 | 0.0447395 | 0.076496 |
| 2 | apply+cummin | 0.149369 | 0.165891 | 0.1775126 | 0.1793380 | 0.1865220 | 0.287679 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 4.077332 | 4.133531 | 4.14939 | 4.215007 | 4.169068 | 3.760706 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+1000x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | colCummins | 25.385 | 27.3175 | 29.42912 | 29.1760 | 30.7120 | 51.438 |
| 2 | rowCummins | 36.634 | 40.1330 | 42.78042 | 42.5475 | 44.7395 | 76.496 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | rowCummins | 1.443136 | 1.469132 | 1.453677 | 1.458305 | 1.456743 | 1.48715 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5188648 277.2 8529671 455.6 8529671 455.6
Vcells 9407502 71.8 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5188624 277.2 8529671 455.6 8529671 455.6
Vcells 9412515 71.9 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.018638 | 0.0201440 | 0.0227576 | 0.021014 | 0.0241855 | 0.040666 |
| 2 | apply+cummin | 0.889760 | 0.9123055 | 1.0213205 | 0.972172 | 1.1060745 | 1.469159 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 47.73903 | 45.28919 | 44.87824 | 46.26306 | 45.73296 | 36.12745 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.023915 | 0.0253565 | 0.0287733 | 0.027086 | 0.029738 | 0.050699 |
| 2 | apply+cummin | 0.874432 | 0.9180855 | 1.0328556 | 0.978348 | 1.124165 | 1.477055 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 36.56416 | 36.20711 | 35.89628 | 36.12006 | 37.80231 | 29.13381 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+10x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 18.638 | 20.1440 | 22.75759 | 21.014 | 24.1855 | 40.666 |
| 2 | rowCummins | 23.915 | 25.3565 | 28.77333 | 27.086 | 29.7380 | 50.699 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | rowCummins | 1.283131 | 1.258762 | 1.26434 | 1.28895 | 1.22958 | 1.246717 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5188810 277.2 8529671 455.6 8529671 455.6
Vcells 9407948 71.8 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5188804 277.2 8529671 455.6 8529671 455.6
Vcells 9457991 72.2 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.178364 | 0.192117 | 0.2073618 | 0.200255 | 0.220669 | 0.307334 |
| 2 | apply+cummin | 1.649031 | 1.759540 | 2.0480233 | 1.835325 | 1.955503 | 15.951853 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.00000 |
| 2 | apply+cummin | 9.245313 | 9.158687 | 9.876572 | 9.16494 | 8.861702 | 51.90396 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.233481 | 0.2464885 | 0.2627796 | 0.254444 | 0.269249 | 0.403114 |
| 2 | apply+cummin | 1.682163 | 1.7761245 | 2.0652739 | 1.834779 | 1.987249 | 16.439867 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cummin | 7.20471 | 7.205709 | 7.859339 | 7.210933 | 7.380711 | 40.78218 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+100x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | colCummins | 178.364 | 192.1170 | 207.3618 | 200.255 | 220.669 | 307.334 |
| 2 | rowCummins | 233.481 | 246.4885 | 262.7796 | 254.444 | 269.249 | 403.114 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.0000 | 1.000000 | 1.000000 |
| 2 | rowCummins | 1.309014 | 1.283012 | 1.267252 | 1.2706 | 1.220149 | 1.311648 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5189027 277.2 8529671 455.6 8529671 455.6
Vcells 9408553 71.8 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5189003 277.2 8529671 455.6 8529671 455.6
Vcells 9458566 72.2 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.174509 | 0.1822660 | 0.2074065 | 0.197533 | 0.2223985 | 0.333364 |
| 2 | apply+cummin | 0.905970 | 0.9472705 | 1.1705592 | 1.079732 | 1.2157880 | 7.502145 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 5.191537 | 5.197187 | 5.643793 | 5.466084 | 5.46671 | 22.50436 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.244375 | 0.2579560 | 0.2846074 | 0.272723 | 0.308065 | 0.409614 |
| 2 | apply+cummin | 0.917421 | 0.9672895 | 1.1625622 | 1.049845 | 1.191480 | 7.619652 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cummin | 3.754152 | 3.749824 | 4.084793 | 3.849492 | 3.867627 | 18.60203 |
Figure: Benchmarking of colCummins() and apply+cummin() on integer+1000x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | colCummins | 174.509 | 182.266 | 207.4065 | 197.533 | 222.3985 | 333.364 |
| 2 | rowCummins | 244.375 | 257.956 | 284.6074 | 272.723 | 308.0650 | 409.614 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | rowCummins | 1.400358 | 1.415272 | 1.372221 | 1.380645 | 1.385194 | 1.228729 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5189227 277.2 8529671 455.6 8529671 455.6
Vcells 9524276 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5189194 277.2 8529671 455.6 8529671 455.6
Vcells 9524374 72.7 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.002177 | 0.0024525 | 0.0030570 | 0.0027830 | 0.003423 | 0.011925 |
| 2 | apply+cummin | 0.044764 | 0.0453260 | 0.0471603 | 0.0459335 | 0.046323 | 0.121587 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.00000 | 1.00000 | 1.000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 20.56224 | 18.48155 | 15.427 | 16.50503 | 13.53287 | 10.19597 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.001983 | 0.002371 | 0.0030468 | 0.0031530 | 0.0033100 | 0.014055 |
| 2 | apply+cummin | 0.042842 | 0.045173 | 0.0466742 | 0.0457285 | 0.0461585 | 0.119895 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.0000 | 1.00000 | 1.00000 | 1.00000 | 1.000000 |
| 2 | apply+cummin | 21.60464 | 19.0523 | 15.31934 | 14.50317 | 13.94517 | 8.530416 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+10x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | colCummins | 2.177 | 2.4525 | 3.05700 | 2.783 | 3.423 | 11.925 |
| 2 | rowCummins | 1.983 | 2.3710 | 3.04675 | 3.153 | 3.310 | 14.055 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.0000000 | 1.0000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 |
| 2 | rowCummins | 0.9108865 | 0.9667686 | 0.996647 | 1.13295 | 0.966988 | 1.178616 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5189402 277.2 8529671 455.6 8529671 455.6
Vcells 9525083 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5189378 277.2 8529671 455.6 8529671 455.6
Vcells 9535096 72.8 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.050157 | 0.0518250 | 0.0578719 | 0.0557995 | 0.062964 | 0.096468 |
| 2 | apply+cummin | 0.231659 | 0.2453715 | 0.2752217 | 0.2680900 | 0.300108 | 0.461173 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cummin | 4.618677 | 4.734616 | 4.755709 | 4.804523 | 4.766343 | 4.78058 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.029088 | 0.0312755 | 0.0348647 | 0.033629 | 0.0375210 | 0.053455 |
| 2 | apply+cummin | 0.230281 | 0.2432255 | 0.2759684 | 0.271336 | 0.2923345 | 0.442749 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 7.916701 | 7.77687 | 7.915408 | 8.068512 | 7.791224 | 8.282649 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+100x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 29.088 | 31.2755 | 34.86471 | 33.6290 | 37.521 | 53.455 |
| 1 | colCummins | 50.157 | 51.8250 | 57.87185 | 55.7995 | 62.964 | 96.468 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000 | 1.000000 |
| 1 | colCummins | 1.724319 | 1.657048 | 1.659898 | 1.659267 | 1.6781 | 1.804658 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5189594 277.2 8529671 455.6 8529671 455.6
Vcells 9525983 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5189570 277.2 8529671 455.6 8529671 455.6
Vcells 9535996 72.8 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.046003 | 0.0486265 | 0.0526381 | 0.0519725 | 0.0558435 | 0.075975 |
| 2 | apply+cummin | 0.145842 | 0.1526555 | 0.1697425 | 0.1703740 | 0.1826430 | 0.268411 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 3.170272 | 3.139348 | 3.224706 | 3.278157 | 3.270622 | 3.532886 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.031482 | 0.034577 | 0.0369696 | 0.0364095 | 0.0396045 | 0.057190 |
| 2 | apply+cummin | 0.145639 | 0.157844 | 0.1731680 | 0.1706120 | 0.1871330 | 0.267424 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 4.626104 | 4.565 | 4.684065 | 4.68592 | 4.725044 | 4.676062 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+1000x10 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 31.482 | 34.5770 | 36.96960 | 36.4095 | 39.6045 | 57.190 |
| 1 | colCummins | 46.003 | 48.6265 | 52.63814 | 51.9725 | 55.8435 | 75.975 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 1.461248 | 1.406325 | 1.423822 | 1.427443 | 1.410029 | 1.328466 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5189782 277.2 8529671 455.6 8529671 455.6
Vcells 9526108 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5189758 277.2 8529671 455.6 8529671 455.6
Vcells 9536121 72.8 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.055189 | 0.0589240 | 0.0666508 | 0.062529 | 0.0730375 | 0.101868 |
| 2 | apply+cummin | 0.873355 | 0.9106935 | 0.9989185 | 0.954950 | 1.0559315 | 1.420541 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.0000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
| 2 | apply+cummin | 15.8248 | 15.45539 | 14.98735 | 15.27211 | 14.45739 | 13.94492 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.021802 | 0.0232630 | 0.026568 | 0.0251415 | 0.027942 | 0.046176 |
| 2 | apply+cummin | 0.865968 | 0.9134995 | 1.005937 | 0.9485950 | 1.078388 | 1.386644 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.0000 | 1.00000 |
| 2 | apply+cummin | 39.71966 | 39.26834 | 37.86274 | 37.73025 | 38.5938 | 30.02954 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+10x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | rowCummins | 21.802 | 23.263 | 26.56798 | 25.1415 | 27.9420 | 46.176 |
| 1 | colCummins | 55.189 | 58.924 | 66.65079 | 62.5290 | 73.0375 | 101.868 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 2.531373 | 2.532949 | 2.508689 | 2.487083 | 2.613897 | 2.206081 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5189944 277.2 8529671 455.6 8529671 455.6
Vcells 9527123 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5189938 277.2 8529671 455.6 8529671 455.6
Vcells 9627166 73.5 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.378802 | 0.400746 | 0.4555599 | 0.4352395 | 0.489271 | 0.734539 |
| 2 | apply+cummin | 1.618510 | 1.707243 | 2.2195884 | 1.8661605 | 2.163435 | 13.735953 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000 |
| 2 | apply+cummin | 4.272707 | 4.260163 | 4.872221 | 4.287663 | 4.421751 | 18.7001 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.208746 | 0.228693 | 0.2543664 | 0.247418 | 0.274127 | 0.376529 |
| 2 | apply+cummin | 1.628291 | 1.734182 | 2.2365019 | 1.950220 | 2.163453 | 14.515753 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.00000 |
| 2 | apply+cummin | 7.800346 | 7.583011 | 8.792443 | 7.882288 | 7.892154 | 38.55149 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+100x1000 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 208.746 | 228.693 | 254.3664 | 247.4180 | 274.127 | 376.529 |
| 1 | colCummins | 378.802 | 400.746 | 455.5599 | 435.2395 | 489.271 | 734.539 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 1 | colCummins | 1.814655 | 1.752332 | 1.790959 | 1.759126 | 1.784833 | 1.950816 |
Figure: Benchmarking of colCummins() and rowCummins() 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 5190161 277.2 8529671 455.6 8529671 455.6
Vcells 9527289 72.7 31876688 243.2 60562128 462.1
> colStats <- microbenchmark(colCummins = colCummins(X), `apply+cummin` = apply(X, MARGIN = 2L, FUN = cummin),
+ unit = "ms")
> X <- t(X)
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 5190137 277.2 8529671 455.6 8529671 455.6
Vcells 9627302 73.5 31876688 243.2 60562128 462.1
> rowStats <- microbenchmark(rowCummins = rowCummins(X), `apply+cummin` = apply(X, MARGIN = 1L, FUN = cummin),
+ unit = "ms")
Table: Benchmarking of colCummins() and apply+cummin() 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 | colCummins | 0.343187 | 0.3731635 | 0.4179793 | 0.413587 | 0.446502 | 0.612018 |
| 2 | apply+cummin | 0.963508 | 1.0524870 | 1.2740686 | 1.161658 | 1.225065 | 6.679734 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | colCummins | 1.000000 | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.00000 |
| 2 | apply+cummin | 2.807531 | 2.820445 | 3.048162 | 2.80874 | 2.743693 | 10.91428 |
Table: Benchmarking of rowCummins() and apply+cummin() 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 | rowCummins | 0.231058 | 0.2501835 | 0.3278522 | 0.2745775 | 0.2860575 | 5.789883 |
| 2 | apply+cummin | 1.011842 | 1.0951635 | 1.2619326 | 1.2010615 | 1.2805095 | 6.525997 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 1 | rowCummins | 1.000000 | 1.000000 | 1.00000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | apply+cummin | 4.379169 | 4.377441 | 3.84909 | 4.374217 | 4.476406 | 1.127138 |
Figure: Benchmarking of colCummins() and apply+cummin() on double+1000x100 data as well as rowCummins() and apply+cummin() on the same data transposed. Outliers are displayed as crosses. Times are in milliseconds.

Table: Benchmarking of colCummins() and rowCummins() 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 | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 231.058 | 250.1835 | 327.8522 | 274.5775 | 286.0575 | 5789.883 |
| 1 | colCummins | 343.187 | 373.1635 | 417.9793 | 413.5870 | 446.5020 | 612.018 |
| expr | min | lq | mean | median | uq | max | |
|---|---|---|---|---|---|---|---|
| 2 | rowCummins | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.0000000 |
| 1 | colCummins | 1.485285 | 1.491559 | 1.274902 | 1.506267 | 1.560882 | 0.1057047 |
Figure: Benchmarking of colCummins() and rowCummins() 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 24.17 secs.
To reproduce this report, do:
html <- matrixStats:::benchmark('colCummins')
Copyright Henrik Bengtsson. Last updated on 2021-08-25 18:53:07 (+0200 UTC). Powered by RSP.