Rcpp attributes

1,191 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,191
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rcpp attributes

  1. 1. Rcpp Attributes JJ Allaire / Romain François romain@r-enthusiasts.com @romain_francois jj.allaire@gmail.com @rstudioapp jeudi 11 juillet 13
  2. 2. int add( int a, int b){ return a + b ; } jeudi 11 juillet 13
  3. 3. jeudi 11 juillet 13
  4. 4. #include <Rcpp.h> // [[Rcpp::export]] int add( int a, int b){ return a + b ; } jeudi 11 juillet 13
  5. 5. > sourceCpp( "add.cpp" ) > add( 1, 2 ) [1] 3 jeudi 11 juillet 13
  6. 6. Why Attributes ? [[omp::parallel]] void somefunction(){} Feature of C++11 jeudi 11 juillet 13
  7. 7. No C++11 yet // [[Rcpp::export]] void somefunction(){} We use pseudo attributes jeudi 11 juillet 13
  8. 8. Dependencies Using code from another package jeudi 11 juillet 13
  9. 9. Dependencies #include <RcppArmadillo.h> // [[Rcpp::depends(RcppArmadillo)]] // [[Rcpp::export]] arma::mat eye(int dim, double value){ using namespace arma ; mat x = value * eye<mat>(dim,dim); return x ; } jeudi 11 juillet 13
  10. 10. Dependencies > sourceCpp( "eye.cpp" ) > eye( 4, 12 ) [,1] [,2] [,3] [,4] [1,] 12 0 0 0 [2,] 0 12 0 0 [3,] 0 0 12 0 [4,] 0 0 0 12 jeudi 11 juillet 13
  11. 11. // [[Rcpp::plugin(foo)]] Custom build configuration External libraries ... jeudi 11 juillet 13
  12. 12. Plugins #include <Rcpp.h> // [[Rcpp::plugin(cpp11)]] // [[Rcpp::export]] IntegerVector example(){ IntegerVector x = {1, 2, 3} ; return x ; } jeudi 11 juillet 13
  13. 13. Packages compileAttributes Tools devtools RStudio jeudi 11 juillet 13
  14. 14. Packages Romain François romain@r-enthusiasts.com @romain_francois Questions jeudi 11 juillet 13

×