25 lines
1.2 KiB
Text
25 lines
1.2 KiB
Text
|
The Rcpp package provides R functions as well as a C++ library which
|
||
|
facilitate the integration of R and C++.
|
||
|
|
||
|
R data types (SEXP) are matched to C++ objects in a class hierarchy.
|
||
|
All R types are supported (vectors, functions, environment, etc ...)
|
||
|
and each type is mapped to a dedicated class. For example, numeric
|
||
|
vectors are represented as instances of the Rcpp::NumericVector class,
|
||
|
environments are represented as instances of Rcpp::Environment,
|
||
|
functions are represented as Rcpp::Function, etc ... The
|
||
|
"Rcpp-introduction" vignette provides a good entry point to Rcpp.
|
||
|
|
||
|
Rcpp also provides Rcpp modules, a framework that allows exposing C++
|
||
|
functions and classes to the R level. The "Rcpp-modules" vignette
|
||
|
details the current set of features of Rcpp-modules.
|
||
|
|
||
|
Rcpp includes a concept called Rcpp sugar that brings many R functions
|
||
|
into C++. Sugar takes advantage of lazy evaluation and expression
|
||
|
templates to achieve great performance while exposing a syntax that is
|
||
|
much nicer to use than the equivalent low-level loop code. The
|
||
|
"Rcpp-sugar" vignette gives an overview of the feature.
|
||
|
|
||
|
Additional documentation is available via the paper by Eddelbuettel
|
||
|
and Francois (2011, JSS) paper and the book by Eddelbuettel (2013,
|
||
|
Springer); see 'citation("Rcpp")' for details.
|