2025-01-12 04:36:52 +08:00

84 lines
1.8 KiB
Plaintext

<%@include file="includes/setup.md.rsp"%>
<%@string fcnname="x_OP_y_subset"%>
<%@string subname="x_OP_y"%>
<%@meta title="${subname}() benchmarks on subsetted computation"%>
<%@meta author="Dongcan Jiang"%>
<%@meta date="2015-06-07"%>
<%@include file="${header}"%>
# <%@meta name="title"%>
This report benchmark the performance of <%=subname%>() on subsetted computation.
<% for (mode in c("integer", "double")) { %>
## Data type "<%=mode%>"
### Data
```r
<%=withCapture({
<%@include file="R/random-matrices.R"%>
data <- rmatrices(mode = mode)
})%>
```
### Results
<% for (ii in seq_along(data)) { %>
<%
dataLabel <- names(data)[ii]
mprintf("%s: %s\n", mode, dataLabel)
%>
### <%=dataLabel%> vector
```r
<%=withCapture({
x <- data[[.dataLabel.]]
y <- x[, 1L]
xrows <- sample.int(nrow(x), size = nrow(x)*0.7)
xcols <- sample.int(ncol(x), size = ncol(x)*0.7)
x_S <- x[xrows, xcols]
yidxs <- xrows
y_S <- y[yidxs]
})%>
```
<% for (OP in c("+", "-", "*", "/")) { %>
<%
OPTag <- c("+" = "add", "-" = "sub", "*" = "mul", "/" = "div")[OP]
gc()
%>
```r
<%=withCapture({
OP
stats <- microbenchmark(
"x_OP_y_x_y_S" = x_OP_y(x_S, y_S, OP = OP, na.rm = FALSE),
"x_OP_y(x, y, OP, xrows, xcols, yidxs)" = x_OP_y(x, y, OP = OP, xrows = xrows, xcols = xcols, yidxs = yidxs, na.rm = FALSE),
"x_OP_y(x[xrows, xcols], y[yidxs], OP)" = x_OP_y(x[xrows, xcols], y[yidxs], OP = OP, na.rm = FALSE),
unit = "ms"
)
})%>
```
<% benchmarkResults(stats, tags=c(mode, dataLabel, OPTag)) %>
<% } # for (OP ...) %>
<% } # for (ii ...) %>
<% } # for (mode ...) %>
<%@include file="${footer}"%>
<%---------------------------------------------------------------------------
HISTORY:
2015-06-07
o Created.
---------------------------------------------------------------------------%>