<div dir="ltr">The segfaults seem to be related to PutRNGstate and I don't see that you have declared an instance of the class that causes the RNGstate to be accessed and restored (I have forgotten the name of the class but it should be fairly easy to find in the examples).  When you use random number generators from within Rcpp you either need to call getRNGstate/putRNGstate yourself or to simply declare an instance of this class.<div>
<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, May 6, 2013 at 6:15 AM, Matteo Fasiolo <span dir="ltr"><<a href="mailto:matteo.fasiolo@gmail.com" target="_blank">matteo.fasiolo@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi All, <div><br></div><div> I am trying to simulate from the following model:</div><div><br></div><div>
Y_t = Pois( phi * N_t );  </div><div>N_t = r * N_{t-1} * exp( -N_{t-1}^theta + e_t )</div>
<div>e_t ~ Norm(0, sigma)</div><div><br></div><div>so I have written a Rcpp function with prototype:</div><div><br></div><div>genRickerCpp(int days, int nSimul, int nBurn, NumericMatrix params)<br>
</div><div><br></div><div>where:</div><div><br></div><div>days = length of each simulated path</div><div>nSimul = number of simulated paths</div><div>nBurn = number of simulations I'm going to discard before storing </div>

<div>            each path</div><div>params = matrix of input parameters that can be either 1 by 4 (in which</div><div>              case all the paths are simulated using the same parameters)</div><div>
              or nSimul by 4 (in which case each path uses a different </div><div>              vector of parameters)</div><div><br></div><div>This is my code:</div><div><br></div><div><div>#include <Rcpp.h></div>
<div><br></div><div>using namespace Rcpp;</div><div><br></div><div>// [[Rcpp::export]]</div><div>NumericMatrix genRickerCpp(int days, int nSimul, int nBurn, NumericMatrix params)</div><div>{</div><div>  int nParams = params.ncol(); </div>

<div>  int totDays = nBurn + days;</div><div>  bool multiParams = false;</div><div>  </div><div>  if(nParams != 4) stop("Wrong number of parameters");</div><div>  if(params.nrow() > 1) { multiParams = true; }</div>

<div>  if(multiParams == true && params.nrow() != nSimul) </div><div>      stop("Number of parameters vectors is different from the number of simulations");</div><div>      </div><div>  double r = exp(params(0, 0));</div>

<div>  double theta = exp(params(0, 1));</div><div>  double sigma = exp(params(0, 2));</div><div>  double phi = exp(params(0, 3));</div><div>      </div><div>  NumericVector procNoise( rnorm( totDays * nSimul ) );</div><div>

  NumericVector initState( runif( nSimul ) ); </div><div>  NumericMatrix output( nSimul, days );</div><div>  </div><div>  NumericVector::iterator noiseIter = procNoise.begin();</div><div>  NumericVector::iterator initIter = initState.begin();</div>

<div>  </div><div>  double currState;</div><div>  </div><div>  for(int iRow = 0; iRow < nSimul; iRow++, initIter++)</div><div>  {</div><div>    </div><div>   if( multiParams == true )</div><div>   {</div><div>    r = exp(params(iRow, 0));</div>

<div>    theta = exp(params(iRow, 1));</div><div>    sigma = exp(params(iRow, 2));</div><div>    phi = exp(params(iRow, 3));</div><div>   }</div><div>   </div><div>   currState = *initIter;</div><div>     </div><div>   for(int iCol = 1; iCol <= nBurn; iCol++, noiseIter++){</div>

<div>     currState = r * currState * exp( - pow( currState, theta ) + *noiseIter * sigma );</div><div>   }</div><div>   </div><div>   output(iRow, 0) = rpois(1, phi * currState)[0];</div><div>   </div><div>   for(int iCol = 1; iCol < days; iCol++, noiseIter++){</div>

<div>     currState = r * currState * exp( - pow( currState, theta ) + *noiseIter * sigma );</div><div>     output(iRow, iCol) = rpois(1, phi * currState)[0];</div><div>   }</div><div>    </div><div>  }</div><div>  </div>

<div>  return output;</div><div>  </div><div>}</div><div><br></div><div><br></div><div>the function seems to work well, I tried to compare the output the an equivalent R function</div><div>and I get the same results. The problem is that if I run it a lot of times:</div>

<div><br></div><div><div>library(Rcpp)</div><div>sourceCpp("~/Desktop/genRickerCpp.cpp")</div><div><br></div><div>for(ii in 1:10^6){</div><div>data <- genRickerCpp(days = 1, nSimul = 1, nBurn = 1,</div>
<div>                     params = matrix(log(c(r = exp(3.8), theta = 1, sigma = 0.3, phi = 10)), 1, 4))</div><div>data <- as.numeric(data)</div><div>}</div><div><br></div><div>occasionally R crashes with error:</div>

<div><br></div><div><div> *** caught segfault ***</div><div>address 0x28, cause 'memory not mapped'</div><div><br></div><div>the strange thing is that in most cases I can call it 10^6 times without any error.</div>

<div>I tried to go through the code in gdb, but I didn't see anything wrong. I also ran the previous</div><div>R code in valgrind, and there I get the following errors while the code is running:</div><div>
<br></div><div><div>==3031== Invalid read of size 1</div><div>==3031==    at 0x4EF7BF1: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF7CE5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF8894: Rf_duplicate (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4EA79E7: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25B08: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F2791F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2958C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F61FA2: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)</div><div>==3031==  Address 0xebd20c8 is 1,688 bytes inside a block of size 1,968 free'd</div><div>==3031==    at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)</div>

<div>==3031==    by 0x4F644AC: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F67965: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F6933E: Rf_allocVector (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4E7468C: PutRNGstate (in /usr/lib/R/lib/libR.so)</div>
<div>==3031==    by 0xDD2017D: sourceCpp_74073_genRickerCpp (random.h:71)</div><div>==3031==    by 0x4EEBEC5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25BCC: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>

==3031==    by 0x4F28E0C: Rf_applyClosure (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2588F: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>
<div>==3031== </div><div>==3031== Invalid read of size 8</div><div>==3031==    at 0x4EF7F89: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF7CE5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF8894: Rf_duplicate (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4EA79E7: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25B08: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F2791F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2958C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F61FA2: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)</div><div>==3031==  Address 0xebd20e8 is 1,720 bytes inside a block of size 1,968 free'd</div><div>==3031==    at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)</div>

<div>==3031==    by 0x4F644AC: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F67965: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F6933E: Rf_allocVector (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4E7468C: PutRNGstate (in /usr/lib/R/lib/libR.so)</div>
<div>==3031==    by 0xDD2017D: sourceCpp_74073_genRickerCpp (random.h:71)</div><div>==3031==    by 0x4EEBEC5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25BCC: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>

==3031==    by 0x4F28E0C: Rf_applyClosure (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2588F: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>
<div>==3031== </div><div>==3031== Invalid read of size 8</div><div>==3031==    at 0x4EF7FA8: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF7CE5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF8894: Rf_duplicate (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4EA79E7: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25B08: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F2791F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2958C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F61FA2: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)</div><div>==3031==  Address 0xebd20f8 is 1,736 bytes inside a block of size 1,968 free'd</div><div>==3031==    at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)</div>

<div>==3031==    by 0x4F644AC: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F67965: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F6933E: Rf_allocVector (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4E7468C: PutRNGstate (in /usr/lib/R/lib/libR.so)</div>
<div>==3031==    by 0xDD2017D: sourceCpp_74073_genRickerCpp (random.h:71)</div><div>==3031==    by 0x4EEBEC5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25BCC: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>

==3031==    by 0x4F28E0C: Rf_applyClosure (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2588F: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>
<div>==3031== </div><div>==3031== Invalid read of size 8</div><div>==3031==    at 0x4EF7FC6: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF7CE5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF8894: Rf_duplicate (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4EA79E7: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25B08: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F2791F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2958C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F61FA2: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)</div><div>==3031==  Address 0xebd20d0 is 1,696 bytes inside a block of size 1,968 free'd</div><div>==3031==    at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)</div>

<div>==3031==    by 0x4F644AC: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F67965: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F6933E: Rf_allocVector (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4E7468C: PutRNGstate (in /usr/lib/R/lib/libR.so)</div>
<div>==3031==    by 0xDD2017D: sourceCpp_74073_genRickerCpp (random.h:71)</div><div>==3031==    by 0x4EEBEC5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25BCC: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>

==3031==    by 0x4F28E0C: Rf_applyClosure (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2588F: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>
<div>==3031== </div><div>==3031== Invalid read of size 8</div><div>==3031==    at 0x4EF7F7C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF7CE5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF8894: Rf_duplicate (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4EA79E7: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25B08: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F2791F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2958C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F61FA2: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)</div><div>==3031==  Address 0xebd20f0 is 1,728 bytes inside a block of size 1,968 free'd</div><div>==3031==    at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)</div>

<div>==3031==    by 0x4F644AC: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F67965: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F6933E: Rf_allocVector (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4E7468C: PutRNGstate (in /usr/lib/R/lib/libR.so)</div>
<div>==3031==    by 0xDD2017D: sourceCpp_74073_genRickerCpp (random.h:71)</div><div>==3031==    by 0x4EEBEC5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25BCC: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>

==3031==    by 0x4F28E0C: Rf_applyClosure (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2588F: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>
<div>==3031== </div><div>==3031== Invalid read of size 1</div><div>==3031==    at 0x4EF7E34: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF7CE5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF8894: Rf_duplicate (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4EA79E7: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25B08: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F2791F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2958C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F61FA2: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)</div><div>==3031==  Address 0xebd20c8 is 1,688 bytes inside a block of size 1,968 free'd</div><div>==3031==    at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)</div>

<div>==3031==    by 0x4F644AC: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F67965: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F6933E: Rf_allocVector (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4E7468C: PutRNGstate (in /usr/lib/R/lib/libR.so)</div>
<div>==3031==    by 0xDD2017D: sourceCpp_74073_genRickerCpp (random.h:71)</div><div>==3031==    by 0x4EEBEC5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25BCC: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>

==3031==    by 0x4F28E0C: Rf_applyClosure (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2588F: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>
<div>==3031== </div><div>==3031== Invalid read of size 1</div><div>==3031==    at 0x4EF7C27: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF7CE5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4EF8894: Rf_duplicate (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4EA79E7: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25B08: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F2791F: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2958C: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>

<div>==3031==    by 0x4F61FA2: Rf_ReplIteration (in /usr/lib/R/lib/libR.so)</div><div>==3031==  Address 0xebd20c9 is 1,689 bytes inside a block of size 1,968 free'd</div><div>==3031==    at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)</div>

<div>==3031==    by 0x4F644AC: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F67965: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F6933E: Rf_allocVector (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4E7468C: PutRNGstate (in /usr/lib/R/lib/libR.so)</div>
<div>==3031==    by 0xDD2017D: sourceCpp_74073_genRickerCpp (random.h:71)</div><div>==3031==    by 0x4EEBEC5: ??? (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F25BCC: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>

==3031==    by 0x4F28E0C: Rf_applyClosure (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2588F: Rf_eval (in /usr/lib/R/lib/libR.so)</div><div>==3031==    by 0x4F2779F: ??? (in /usr/lib/R/lib/libR.so)</div><div>
==3031==    by 0x4F259AE: Rf_eval (in /usr/lib/R/lib/libR.so)</div>
<div>==3031== </div><div><br></div><div><br></div><div>The only thing that I understand is that probably there is an invalid read somewhere,</div><div>but I went through the code several times and I even re-wrote everything from </div>

<div>scratch and I can't find anything wrong. Given that I'm a C++/Rcpp beginner </div><div>I guess that probably I'm doing a systematic error in my code, maybe you can point it</div><div>out to me.</div>
<div>Finally I'm running my code on Ubuntu 12.04 (precise) 64-bit and R version 2.15.3.<br>Thanks a lot.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Matteo</div></font></span></div></div></div>
</div></div>
<br>_______________________________________________<br>
Rcpp-devel mailing list<br>
<a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel</a><br></blockquote></div><br></div>