#include <RcppArmadilloExtensions/sample.h>
using namespace Rcpp ;
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>
using namespace Rcpp ;
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