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

Rcpp attributes

1 103 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 103
Sur SlideShare
0
Issues des intégrations
0
Intégrations
54
Actions
Partages
0
Téléchargements
19
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×