# Rcpp and inline example

**Thinking inside the box**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

The following R code defines a character
variable `gslrng`

. This variable contains a short C++ code
segment, which is then transformed by the function `cfunction`

into a function of two arguments assigned to `funx`

:

## now use Rcpp to pass down a parameter for the seed, and a vector size gslrng <- ' int seed = RcppSexp(s).asInt(); int len = RcppSexp(n).asInt(); gsl_rng *r; gsl_rng_env_setup(); std::vectorv(len); r = gsl_rng_alloc (gsl_rng_default); gsl_rng_set (r, (unsigned long) seed); for (int i=0; i The

`signature`

argument to`cfunction`

defines two variables`s`

and`n`

— which the C++ function then reads in from R and converts to two integers`seed`

and`len`

.`seed`

is used to initialize the random-number generator, and`len`

draws are then taken and stored in the STL vector`v`

which returned at the end.As the R level, we now have a function of two arguments returning a vector of RNG draws of the given lenth and using the given seed.

Also note how we tell

`cfunction`

to add the GSL include line, specify that we want to compile and link against Rcpp and provide`-I`

and`-L`

arguments to compile and link with the GSL. (The include statement is not needed as the compiler would have found them in`/usr/include`

anyway, but it shows how to set this if needed.)Finally, we simply call our freshly compiled, linked and loaded C++ function with arguments zero for the seed and five for the length, and print the results vector returned to R from C++.

Toleave a commentfor the author, please follow the link and comment on their blog:Thinking inside the box.

R-bloggers.com offersdaily e-mail updatesabout R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.