<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Thanks for the quick replies! I'm using log() and then exp() on the parameters because</span><div style="font-family:arial,sans-serif;font-size:13px">
this function goes within an optimization routine, so I need it keep the parameters positive.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
Sorry for the silly question, but since I'm using sourceCpp() too I should't call </div><div style="font-family:arial,sans-serif;font-size:13px">getRNGstate/putRNGstate, right?<br><br>I run the code with Dirk's change:</div>
<div class="im" style="font-family:arial,sans-serif;font-size:13px"><div>params <- matrix(log(c(r = exp(3.8), theta = 1, sigma = 0.3, phi = 10)), 1, 4)<br></div><div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">
but I still get the same error in Valgrind. Also, when I was looking for this error<span style="color:rgb(80,0,80)"><br></span></div><div style="font-family:arial,sans-serif;font-size:13px">I was running 6 R sessions in parallel with 10^8 iterations and only 1 gave me </div>
<div style="font-family:arial,sans-serif;font-size:13px">a segfault, so you might run 10^6 iterations and everything seems ok. Other times</div><div style="font-family:arial,sans-serif;font-size:13px">it crashes immediately, as it just happened:</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div><div style="font-family:arial,sans-serif;font-size:13px">library(Rcpp)</div><div style="font-family:arial,sans-serif;font-size:13px">sourceCpp("~/Desktop/genRickerCpp.cpp")</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><div class="im">> params <- matrix(log(c(r = exp(3.8), theta = 1, sigma = 0.3, phi = 10)), 1, 4)</div>
<div>> for(ii in 1:(2*(10^6))){</div><div>+ data <- genRickerCpp(days = 1, nSimul = 50, nBurn = 50,</div><div>+ params = params)</div><div>+ data <- as.numeric(data)</div><div>+ }</div><div><br>
</div><div> *** caught segfault ***</div><div>address 0x30, cause 'memory not mapped'</div></div><div style="font-family:arial,sans-serif;font-size:13px"><br>If I open another R window and I paste the same code it just keeps crashing with the previous error</div>
<div style="font-family:arial,sans-serif;font-size:13px">message or:</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div><div><font face="arial, sans-serif"> *** caught segfault ***</font></div><div>
<font face="arial, sans-serif">address (nil), cause 'unknown'</font></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, May 6, 2013 at 3:00 PM, Dirk Eddelbuettel <span dir="ltr"><<a href="mailto:edd@debian.org" target="_blank">edd@debian.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On 6 May 2013 at 08:34, Douglas Bates wrote:<br>
| The segfaults seem to be related to PutRNGstate and I don't see that you have<br>
| declared an instance of the class that causes the RNGstate to be accessed and<br>
| restored (I have forgotten the name of the class but it should be fairly easy<br>
| to find in the examples). When you use random number generators from within<br>
| Rcpp you either need to call getRNGstate/putRNGstate yourself or to simply<br>
| declare an instance of this class.<br>
<br>
</div>Very good point.<br>
<br>
By using sourceCpp(), I got that added automagically thanks to JJ and hence<br>
never saw the error.<br>
<span class="HOEnZb"><font color="#888888"><br>
Dirk<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
--<br>
Dirk Eddelbuettel | <a href="mailto:edd@debian.org">edd@debian.org</a> | <a href="http://dirk.eddelbuettel.com" target="_blank">http://dirk.eddelbuettel.com</a><br>
</div></div></blockquote></div><br></div>