cxxfunction

0th

Percentile

inline C++ function

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.

Keywords
programming, interface
Usage
cxxfunction(sig = character(), body = character(), plugin = "default", includes = "", settings = getPlugin(plugin), ..., verbose = FALSE) rcpp(..., plugin="Rcpp")
Arguments
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 getPlugin for details about plugins.
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
Value

A function

See Also

cfunction

Aliases
  • cxxfunction
  • rcpp
Examples
## 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( require( Rcpp ) ){
# 
# 	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( require( 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)
Documentation reproduced from package inline, version 0.3.14, License: LGPL

Community examples

Looks like there are no examples yet.