>X<-data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3094809165.35709258305.05709258305.0Vcells574918843.922267496169.956666022432.4>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)
Ncells3093535165.35709258305.05709258305.0Vcells574557643.922267496169.956666022432.4>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.001104
0.0013695
0.0017350
0.001548
0.001846
0.011595
2
apply+cummin
0.024364
0.0253780
0.0269594
0.025588
0.025956
0.127639
expr
min
lq
mean
median
uq
max
1
colCummins
1.00000
1.00000
1.0000
1.00000
1.00000
1.00000
2
apply+cummin
22.06884
18.53085
15.5388
16.52972
14.06067
11.00811
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.001038
0.0016775
0.0023967
0.002035
0.002758
0.012162
2
apply+cummin
0.025164
0.0258005
0.0356321
0.026401
0.040775
0.136773
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
24.24277
15.38033
14.86709
12.97346
14.78426
11.24593
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.104
1.3695
1.73497
1.548
1.846
11.595
2
rowCummins
1.038
1.6775
2.39671
2.035
2.758
12.162
expr
min
lq
mean
median
uq
max
1
colCummins
1.0000000
1.0000
1.000000
1.000000
1.000000
1.0000
2
rowCummins
0.9402174
1.2249
1.381413
1.314599
1.494041
1.0489
Figure: Benchmarking of colCummins() and rowCummins() on integer+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x100 integer matrix
>X<-data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3092090165.25709258305.05709258305.0Vcells536206741.022267496169.956666022432.4>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)
Ncells3092084165.25709258305.05709258305.0Vcells536711041.022267496169.956666022432.4>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.016729
0.0173910
0.0188918
0.017871
0.0183840
0.044086
2
apply+cummin
0.163873
0.1665145
0.1830672
0.171454
0.1831925
0.332822
expr
min
lq
mean
median
uq
max
1
colCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+cummin
9.795744
9.574751
9.690283
9.593979
9.964779
7.549381
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.012460
0.012819
0.0134192
0.0131660
0.0135165
0.022524
2
apply+cummin
0.166404
0.168387
0.1737151
0.1689845
0.1706210
0.336706
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
13.35506
13.13574
12.94522
12.83492
12.62316
14.94877
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
2
rowCummins
12.460
12.819
13.41924
13.166
13.5165
22.524
1
colCummins
16.729
17.391
18.89183
17.871
18.3840
44.086
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.00000
1.000000
1.00000
1
colCummins
1.342616
1.356658
1.407817
1.35736
1.360115
1.95729
Figure: Benchmarking of colCummins() and rowCummins() on integer+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x10 integer matrix
>X<-data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3092823165.25709258305.05709258305.0Vcells536557941.022267496169.956666022432.4>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)
Ncells3092814165.25709258305.05709258305.0Vcells537061741.022267496169.956666022432.4>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.017532
0.017917
0.0202069
0.0183240
0.0186820
0.123854
2
apply+cummin
0.097569
0.101966
0.1185105
0.1028265
0.1051975
0.562017
expr
min
lq
mean
median
uq
max
1
colCummins
1.000000
1.00000
1.000000
1.000000
1.000000
1.000000
2
apply+cummin
5.565195
5.69102
5.864844
5.611575
5.630955
4.537738
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.013103
0.0137600
0.0192005
0.0141275
0.014651
0.114058
2
apply+cummin
0.097622
0.1017285
0.1150768
0.1029030
0.104333
0.567213
expr
min
lq
mean
median
uq
max
1
rowCummins
1.000000
1.00000
1.000000
1.000000
1.00000
1.000000
2
apply+cummin
7.450355
7.39306
5.993428
7.283879
7.12122
4.973022
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
2
rowCummins
13.103
13.760
19.20050
14.1275
14.651
114.058
1
colCummins
17.532
17.917
20.20693
18.3240
18.682
123.854
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1
colCummins
1.338014
1.302108
1.052417
1.297045
1.275135
1.085886
Figure: Benchmarking of colCummins() and rowCummins() on integer+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
10x1000 integer matrix
>X<-data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3093009165.25709258305.05709258305.0Vcells536626241.022267496169.956666022432.4>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)
Ncells3093003165.25709258305.05709258305.0Vcells537130541.022267496169.956666022432.4>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.013583
0.0152280
0.0205396
0.0165205
0.0207220
0.099007
2
apply+cummin
0.758790
0.8367295
0.8983289
0.8579140
0.8898655
1.708476
expr
min
lq
mean
median
uq
max
1
colCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
55.86321
54.94678
43.73648
51.93027
42.94303
17.25611
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.012011
0.0131105
0.0140269
0.013643
0.0141655
0.027034
2
apply+cummin
0.740832
0.8246865
0.8358010
0.842213
0.8594920
0.912199
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
61.67946
62.90275
59.58541
61.73224
60.67502
33.74266
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
2
rowCummins
12.011
13.1105
14.02694
13.6430
14.1655
27.034
1
colCummins
13.583
15.2280
20.53958
16.5205
20.7220
99.007
expr
min
lq
mean
median
uq
max
2
rowCummins
1.00000
1.000000
1.000000
1.000000
1.00000
1.000000
1
colCummins
1.13088
1.161512
1.464295
1.210914
1.46285
3.662314
Figure: Benchmarking of colCummins() and rowCummins() on integer+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x1000 integer matrix
>X<-data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3093193165.25709258305.05709258305.0Vcells536674541.022267496169.956666022432.4>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)
Ncells3093184165.25709258305.05709258305.0Vcells541678341.422267496169.956666022432.4>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.158854
0.167977
0.1750069
0.1740525
0.1790625
0.222749
2
apply+cummin
1.454637
1.568151
1.8673674
1.6085750
1.6323595
13.776363
expr
min
lq
mean
median
uq
max
1
colCummins
1.000000
1.000000
1.00000
1.000000
1.000000
1.00000
2
apply+cummin
9.157069
9.335513
10.67025
9.241895
9.116144
61.84703
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.105732
0.114414
0.1213062
0.1178415
0.1232105
0.263937
2
apply+cummin
1.492538
1.573149
1.9593756
1.6149460
1.7454645
15.716241
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
14.11624
13.74962
16.15231
13.70439
14.16652
59.54543
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
2
rowCummins
105.732
114.414
121.3062
117.8415
123.2105
263.937
1
colCummins
158.854
167.977
175.0069
174.0525
179.0625
222.749
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.0000000
1
colCummins
1.502421
1.468151
1.442687
1.477005
1.453305
0.8439476
Figure: Benchmarking of colCummins() and rowCummins() on integer+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x100 integer matrix
>X<-data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3093386165.35709258305.05709258305.0Vcells536731541.022267496169.956666022432.4>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)
Ncells3093380165.35709258305.05709258305.0Vcells541735841.422267496169.956666022432.4>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.162515
0.1788920
0.1856476
0.1839145
0.1947555
0.240225
2
apply+cummin
0.820809
0.8661755
1.0246917
0.8842115
0.9292215
6.773607
expr
min
lq
mean
median
uq
max
1
colCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.00000
2
apply+cummin
5.050666
4.841891
5.519552
4.807731
4.771221
28.19693
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.11277
0.1201740
0.1315573
0.1256540
0.138152
0.212913
2
apply+cummin
0.84190
0.9042695
1.1115397
0.9316595
1.070702
6.950486
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.465638
7.524668
8.449092
7.414483
7.750177
32.64472
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
2
rowCummins
112.770
120.174
131.5573
125.6540
138.1520
212.913
1
colCummins
162.515
178.892
185.6476
183.9145
194.7555
240.225
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1
colCummins
1.441119
1.488608
1.411154
1.463658
1.409719
1.128278
Figure: Benchmarking of colCummins() and rowCummins() on integer+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
>X<-data[["10x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3093594165.35709258305.05709258305.0Vcells548303341.922267496169.956666022432.4>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)
Ncells3093579165.35709258305.05709258305.0Vcells548316141.922267496169.956666022432.4>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.000989
0.0014075
0.0018475
0.0016745
0.0020315
0.010712
2
apply+cummin
0.025063
0.0258085
0.0276814
0.0262400
0.0266105
0.127135
expr
min
lq
mean
median
uq
max
1
colCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
25.34176
18.33641
14.98352
15.67035
13.09894
11.86847
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.000998
0.001470
0.0018586
0.001811
0.0019680
0.013349
2
apply+cummin
0.024260
0.025191
0.0266444
0.025475
0.0258035
0.126610
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.000000
2
apply+cummin
24.30862
17.13673
14.33566
14.06681
13.11153
9.484606
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
989
1407.5
1847.46
1674.5
2031.5
10712
2
rowCummins
998
1470.0
1858.61
1811.0
1968.0
13349
expr
min
lq
mean
median
uq
max
1
colCummins
1.0000
1.000000
1.000000
1.000000
1.0000000
1.000000
2
rowCummins
1.0091
1.044405
1.006035
1.081517
0.9687423
1.246172
Figure: Benchmarking of colCummins() and rowCummins() on double+10x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x100 double matrix
>X<-data[["100x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3093772165.35709258305.05709258305.0Vcells548385841.922267496169.956666022432.4>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)
Ncells3093766165.35709258305.05709258305.0Vcells549390142.022267496169.956666022432.4>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.022917
0.0233255
0.0244423
0.0238125
0.0242985
0.061007
2
apply+cummin
0.205522
0.2091620
0.2179182
0.2148140
0.2176295
0.355906
expr
min
lq
mean
median
uq
max
1
colCummins
1.000000
1.000000
1.000000
1.00000
1.000000
1.000000
2
apply+cummin
8.968102
8.967096
8.915618
9.02106
8.956499
5.833855
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.010483
0.011007
0.0117950
0.0113605
0.0118355
0.020724
2
apply+cummin
0.164181
0.167555
0.1827565
0.1686450
0.1707395
0.540866
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
15.66164
15.22259
15.49439
14.84486
14.42605
26.09853
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
10.483
11.0070
11.79501
11.3605
11.8355
20.724
1
colCummins
22.917
23.3255
24.44230
23.8125
24.2985
61.007
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1
colCummins
2.186111
2.119151
2.072258
2.096078
2.053018
2.943785
Figure: Benchmarking of colCummins() and rowCummins() on double+100x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x10 double matrix
>X<-data[["1000x10"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3093962165.35709258305.05709258305.0Vcells548475641.922267496169.956666022432.4>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)
Ncells3093956165.35709258305.05709258305.0Vcells549479942.022267496169.956666022432.4>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.024701
0.025327
0.0322288
0.026026
0.029233
0.318618
2
apply+cummin
0.142403
0.144577
0.1739306
0.148498
0.173823
0.645888
expr
min
lq
mean
median
uq
max
1
colCummins
1.00000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+cummin
5.76507
5.708414
5.396751
5.705756
5.946123
2.027155
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.011523
0.0123295
0.0134754
0.012906
0.013494
0.045830
2
apply+cummin
0.101787
0.1032515
0.1087779
0.105236
0.108124
0.201244
expr
min
lq
mean
median
uq
max
1
rowCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
2
apply+cummin
8.833377
8.374346
8.072336
8.154037
8.012746
4.391097
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
11.523
12.3295
13.47539
12.906
13.494
45.830
1
colCummins
24.701
25.3270
32.22877
26.026
29.233
318.618
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.000000
1.00000
1.000000
1
colCummins
2.143626
2.054179
2.391676
2.016581
2.16637
6.952171
Figure: Benchmarking of colCummins() and rowCummins() on double+1000x10 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
10x1000 double matrix
>X<-data[["10x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3094151165.35709258305.05709258305.0Vcells548488241.922267496169.956666022432.4>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)
Ncells3094145165.35709258305.05709258305.0Vcells549492542.022267496169.956666022432.4>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.013835
0.015416
0.0177544
0.0165575
0.0189475
0.031691
2
apply+cummin
0.742210
0.818772
0.8809942
0.8505135
0.8700975
1.631995
expr
min
lq
mean
median
uq
max
1
colCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.00000
2
apply+cummin
53.64727
53.11183
49.62106
51.36727
45.92149
51.49711
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.010761
0.0122055
0.0132655
0.0128365
0.0135120
0.022581
2
apply+cummin
0.740283
0.8152195
0.8307643
0.8303000
0.8441475
0.974474
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.00000
1.00000
1.00000
1.0000
2
apply+cummin
68.79314
66.79116
62.62603
64.68274
62.47391
43.1546
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
10.761
12.2055
13.26548
12.8365
13.5120
22.581
1
colCummins
13.835
15.4160
17.75444
16.5575
18.9475
31.691
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.000000
1
colCummins
1.285661
1.263037
1.338394
1.289877
1.402272
1.403436
Figure: Benchmarking of colCummins() and rowCummins() on double+10x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
100x1000 double matrix
>X<-data[["100x1000"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3094335165.35709258305.05709258305.0Vcells548593441.922267496169.956666022432.4>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)
Ncells3094326165.35709258305.05709258305.0Vcells558597242.722267496169.956666022432.4>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.215863
0.225439
0.2463868
0.2402555
0.260260
0.344222
2
apply+cummin
1.877418
1.977949
2.4935509
2.1007760
2.409504
13.640032
expr
min
lq
mean
median
uq
max
1
colCummins
1.000000
1.000000
1.00000
1.000000
1.000000
1.00000
2
apply+cummin
8.697266
8.773764
10.12047
8.743925
9.258065
39.62568
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.088136
0.102374
0.2194747
0.111642
0.1239655
10.65944
2
apply+cummin
1.488863
1.670075
2.1552832
1.889243
2.0837420
12.44535
expr
min
lq
mean
median
uq
max
1
rowCummins
1.00000
1.00000
1.000000
1.00000
1.00000
1.000000
2
apply+cummin
16.89279
16.31347
9.820189
16.92233
16.80905
1.167543
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
88.136
102.374
219.4747
111.6420
123.9655
10659.441
1
colCummins
215.863
225.439
246.3868
240.2555
260.2600
344.222
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.00000
1.000000
1.000000
1.0000000
1
colCummins
2.449203
2.202112
1.12262
2.152017
2.099455
0.0322927
Figure: Benchmarking of colCummins() and rowCummins() on double+100x1000 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.
1000x100 double matrix
>X<-data[["1000x100"]]
> gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells3094528165.35709258305.05709258305.0Vcells548606241.922267496169.956666022432.4>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)
Ncells3094522165.35709258305.05709258305.0Vcells558610542.722267496169.956666022432.4>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.234394
0.2622935
0.2848296
0.281013
0.2960725
0.562482
2
apply+cummin
0.845419
0.9405685
1.1813183
1.023181
1.0878530
6.278719
expr
min
lq
mean
median
uq
max
1
colCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.00000
2
apply+cummin
3.606829
3.585939
4.147457
3.641043
3.674279
11.16252
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.091668
0.0989035
0.1663113
0.1115535
0.116757
5.822179
2
apply+cummin
0.874420
0.9913885
1.1461032
1.0478420
1.108747
6.220861
expr
min
lq
mean
median
uq
max
1
rowCummins
1.000000
1.0000
1.000000
1.000000
1.000000
1.000000
2
apply+cummin
9.538989
10.0238
6.891311
9.393179
9.496197
1.068476
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
91.668
98.9035
166.3113
111.5535
116.7570
5822.179
1
colCummins
234.394
262.2935
284.8295
281.0130
296.0725
562.482
expr
min
lq
mean
median
uq
max
2
rowCummins
1.000000
1.000000
1.000000
1.000000
1.000000
1.0000000
1
colCummins
2.556988
2.652014
1.712629
2.519087
2.535801
0.0966102
Figure: Benchmarking of colCummins() and rowCummins() on double+1000x100 data (original and transposed). Outliers are displayed as crosses. Times are in milliseconds.