Description Usage Arguments Value See Also Examples
Functionality to dynamically define an R function with inlined C++ code
using the .Call
calling convention.
The rcpp()
wrapper sets the plugin to the “Rcpp” value
suitable for using Rcpp.
1 2 3 4 |
sig |
Signature of the function. A named character vector |
body |
A character vector with C++ code to include in the body of the compiled C++ function |
plugin |
Name of the plugin to use. See |
includes |
User includes, inserted after the includes provided by the plugin. |
settings |
Result of the call to the plugin |
... |
Further arguments to the plugin |
verbose |
verbose output |
A function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ## Not run:
# default plugin
fx <- cxxfunction(signature(x = "integer", y = "numeric"),
"return ScalarReal(INTEGER(x)[0] * REAL(y)[0]);")
fx(2L, 5)
# Rcpp plugin
if (requireNamespace("Rcpp", quietly=TRUE)) {
fx <- cxxfunction(signature(x = "integer", y = "numeric"),
"return wrap( as<int>(x) * as<double>(y));",
plugin = "Rcpp" )
fx(2L, 5)
## equivalent shorter form using rcpp()
fx <- rcpp(signature(x = "integer", y = "numeric"),
"return wrap(as<int>(x) * as<double>(y));")
}
# RcppArmadillo plugin
if (requireNamespace(RcppArmadillo)) {
fx <- cxxfunction(signature(x = "integer", y = "numeric"),
"int dim = as<int>(x);
arma::mat z = as<double>(y) * arma::eye<arma::mat>(dim, dim);
return wrap(arma::accu(z));",
plugin = "RcppArmadillo")
fx(2L, 5)
}
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.