基礎的な算術計算など

#include <RcppArmadilloExtensions/sample.h>
// [[Rcpp::depends(RcppArmadillo)]]

using namespace Rcpp ;

// [[Rcpp::export]]

NumericVector factorial_num(int n) {
	NumericVector x(n);
	x[0] = 1;
	for(int i=1;i<n;++i){
		x[i] = x[i-1]*(i+1);
	}
	return x;
}
sourceCpp("factorial_int.cpp")
sourceCpp("factorial_num.cpp")
> factorial_int(200)
  [1]           1           2           6          24         120         720
  [7]        5040       40320      362880     3628800    39916800   479001600
 [13]  1932053504  1278945280  2004310016  2004189184  -288522240  -898433024
 [19]   109641728 -2102132736 -1195114496  -522715136   862453760  -775946240
 [25]  2076180480 -1853882368  1484783616 -1375731712 -1241513984  1409286144
 [31]   738197504          NA          NA           0           0           0
 [37]           0           0           0           0           0           0
 [43]           0           0           0           0           0           0
 [49]           0           0           0           0           0           0
 [55]           0           0           0           0           0           0
 [61]           0           0           0           0           0           0
 [67]           0           0           0           0           0           0
 [73]           0           0           0           0           0           0
 [79]           0           0           0           0           0           0
 [85]           0           0           0           0           0           0
 [91]           0           0           0           0           0           0
 [97]           0           0           0           0           0           0
[103]           0           0           0           0           0           0
[109]           0           0           0           0           0           0
[115]           0           0           0           0           0           0
[121]           0           0           0           0           0           0
[127]           0           0           0           0           0           0
[133]           0           0           0           0           0           0
[139]           0           0           0           0           0           0
[145]           0           0           0           0           0           0
[151]           0           0           0           0           0           0
[157]           0           0           0           0           0           0
[163]           0           0           0           0           0           0
[169]           0           0           0           0           0           0
[175]           0           0           0           0           0           0
[181]           0           0           0           0           0           0
[187]           0           0           0           0           0           0
[193]           0           0           0           0           0           0
[199]           0           0
> factorial_num(200)
  [1]  1.000000e+00  2.000000e+00  6.000000e+00  2.400000e+01  1.200000e+02
  [6]  7.200000e+02  5.040000e+03  4.032000e+04  3.628800e+05  3.628800e+06
 [11]  3.991680e+07  4.790016e+08  6.227021e+09  8.717829e+10  1.307674e+12
 [16]  2.092279e+13  3.556874e+14  6.402374e+15  1.216451e+17  2.432902e+18
 [21]  5.109094e+19  1.124001e+21  2.585202e+22  6.204484e+23  1.551121e+25
 [26]  4.032915e+26  1.088887e+28  3.048883e+29  8.841762e+30  2.652529e+32
 [31]  8.222839e+33  2.631308e+35  8.683318e+36  2.952328e+38  1.033315e+40
 [36]  3.719933e+41  1.376375e+43  5.230226e+44  2.039788e+46  8.159153e+47
 [41]  3.345253e+49  1.405006e+51  6.041526e+52  2.658272e+54  1.196222e+56
 [46]  5.502622e+57  2.586232e+59  1.241392e+61  6.082819e+62  3.041409e+64
 [51]  1.551119e+66  8.065818e+67  4.274883e+69  2.308437e+71  1.269640e+73
 [56]  7.109986e+74  4.052692e+76  2.350561e+78  1.386831e+80  8.320987e+81
 [61]  5.075802e+83  3.146997e+85  1.982608e+87  1.268869e+89  8.247651e+90
 [66]  5.443449e+92  3.647111e+94  2.480036e+96  1.711225e+98 1.197857e+100
 [71] 8.504786e+101 6.123446e+103 4.470115e+105 3.307885e+107 2.480914e+109
 [76] 1.885495e+111 1.451831e+113 1.132428e+115 8.946182e+116 7.156946e+118
 [81] 5.797126e+120 4.753643e+122 3.945524e+124 3.314240e+126 2.817104e+128
 [86] 2.422710e+130 2.107757e+132 1.854826e+134 1.650796e+136 1.485716e+138
 [91] 1.352002e+140 1.243841e+142 1.156773e+144 1.087366e+146 1.032998e+148
 [96] 9.916779e+149 9.619276e+151 9.426890e+153 9.332622e+155 9.332622e+157
[101] 9.425948e+159 9.614467e+161 9.902901e+163 1.029902e+166 1.081397e+168
[106] 1.146281e+170 1.226520e+172 1.324642e+174 1.443860e+176 1.588246e+178
[111] 1.762953e+180 1.974507e+182 2.231193e+184 2.543560e+186 2.925094e+188
[116] 3.393109e+190 3.969937e+192 4.684526e+194 5.574586e+196 6.689503e+198
[121] 8.094299e+200 9.875044e+202 1.214630e+205 1.506142e+207 1.882677e+209
[126] 2.372173e+211 3.012660e+213 3.856205e+215 4.974504e+217 6.466855e+219
[131] 8.471581e+221 1.118249e+224 1.487271e+226 1.992943e+228 2.690473e+230
[136] 3.659043e+232 5.012889e+234 6.917786e+236 9.615723e+238 1.346201e+241
[141] 1.898144e+243 2.695364e+245 3.854371e+247 5.550294e+249 8.047926e+251
[146] 1.174997e+254 1.727246e+256 2.556324e+258 3.808923e+260 5.713384e+262
[151] 8.627210e+264 1.311336e+267 2.006344e+269 3.089770e+271 4.789143e+273
[156] 7.471063e+275 1.172957e+278 1.853272e+280 2.946702e+282 4.714724e+284
[161] 7.590705e+286 1.229694e+289 2.004402e+291 3.287219e+293 5.423911e+295
[166] 9.003692e+297 1.503617e+300 2.526076e+302 4.269068e+304 7.257416e+306
[171]           Inf           Inf           Inf           Inf           Inf
[176]           Inf           Inf           Inf           Inf           Inf
[181]           Inf           Inf           Inf           Inf           Inf
[186]           Inf           Inf           Inf           Inf           Inf
[191]           Inf           Inf           Inf           Inf           Inf
[196]           Inf           Inf           Inf           Inf           Inf
> 
#include <RcppArmadilloExtensions/sample.h>

// [[Rcpp::depends(RcppArmadillo)]]

using namespace Rcpp ;

// [[Rcpp::export]]

NumericVector lgamma(int n) {
	NumericVector x(n);
	for(int i=0;i<n;++i){
		x[i] =x[i-1]+log(i+1);
	}
	return x;
}
> sourceCpp("lgamma.cpp")
> lgamma(3)
[1] 1.482197e-323  6.931472e-01  1.791759e+00
> exp(lgamma(3))
[1] 1 2 6