The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Timothy H. Keitt 2018-09-13
“I don’t think he knows about second breakfast” - Meriadoc ‘Merry’ Brandybuck
Adapting multidimensional legacy buffers to the C++ standard library is difficult owing to a lack of strided (address-skipping) iterators. Strider provides an address-skipping pointer adapter. It can be used to scan multidimensional data along any desired margin using the standard library algorithms.
This code snippet computes row sums of a matrix.
(make_strided(begin(x), nr), make_strided(end(x)), [&](const double& y) {
for_each(&y, &y + nr, begin(res), begin(res), plus<double>()); }); transform
It is cache and compiler friendly and runs nearly four times faster
than R’s built-in rowSums
function. See the
vignette for details.
The header file is stand-alone and can be used separate from R. It relies on the Boost iterator library.
devtools::install_github("thk686/strider")
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.