Rstudioを使ってRcppする

// [[Rcpp::export]]
  • はコメント行かと思ったら大事な行だった…(こういうところで躓きます)(こちら)
#include <Rcpp.h>

// [[Rcpp::export]]
int fibCpp(int n)
{
  if((n == 0) | (n == 1)){
    return 1;
  }
  return fibCpp(n-1) + fibCpp(n-2);
}
library(Rcpp)
library(rbenchmark)
sourceCpp("fibCpp.cpp")

fibR <- function(n)
{
  if((n==0) | (n==1)){
    return(1)
  }
  return(fibR(n-1)+fibR(n-2))
}

benchmark(fibR(20),fibCpp(20),replications =1000)[,1:4]
  • とやったら
> benchmark(fibR(20),fibCpp(20),replications =1000)[,1:4]
        test replications elapsed relative
2 fibCpp(20)         1000    0.11    1.000
1   fibR(20)         1000  252.65 2296.818
  • とできた