You could also use this:<br><br><br>Summing3 <- cxxfunction(signature(x="numeric"), '<br> Rcpp::NumericVector Dvec(x);<br> double out = sum(Dvec); <br> return Rcpp::wrap(out);<br> ',plugin="Rcpp")<br>
x <- rnorm(100)<br>Summing3(x); sum(x)<br><br><br><br>Richard<br><br><br><br><div class="gmail_quote">On Mon, Jan 3, 2011 at 11:04 AM, Cedric Ginestet <span dir="ltr"><<a href="mailto:c.ginestet05@googlemail.com">c.ginestet05@googlemail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Thanks Douglas,<br>
How stupid of me!<br>
Cheers,<div><div></div><div class="h5"><br>
<br>
On 03/01/11 16:00, Douglas Bates wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
You forgot to initialize i in both loops. It should be<br>
<br>
for(int i = 0; i< Ne; i++)<br>
<br>
On Mon, Jan 3, 2011 at 9:50 AM, Cedric Ginestet<br>
<<a href="mailto:c.ginestet05@googlemail.com" target="_blank">c.ginestet05@googlemail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Dear Rcpp experts,<br>
<br>
I have the following bizarre problem. Although the second summing C++<br>
function seems easier than the former, it does not produce the correct<br>
answer. See the following reproducible codes:<br>
<br>
##########################################<br>
Summing1<- cxxfunction(signature(x="numeric"), '<br>
Rcpp::NumericVector Dvec(x);<br>
int Ne = Dvec.size();<br>
double out =0;<br>
for(int i; i<Ne; i++) out += (1/Dvec[i])/Ne;<br>
return Rcpp::wrap(out);<br>
',plugin="Rcpp")<br>
x<- rnorm(100)<br>
Summing1(x); mean(1/x)<br>
##########################################<br>
gives:<br>
[1] 0.02950222<br>
[1] 0.02950222<br>
<br>
##########################################<br>
Summing2<- cxxfunction(signature(x="numeric"), '<br>
Rcpp::NumericVector Dvec(x);<br>
int Ne = Dvec.size();<br>
double out =0;<br>
for(int i; i<Ne; i++) out += Dvec[i];<br>
return Rcpp::wrap(out);<br>
',plugin="Rcpp")<br>
x<- rnorm(100)<br>
Summing2(x); sum(x)<br>
############################################<br>
gives:<br>
[1] 0<br>
[1] -9.220588<br>
<br>
Any help greatly appreciated.<br>
Cheers,<br>
<br>
<br>
--<br>
Cedric Ginestet<br>
Centre for Neuroimaging Sciences (L3.04)<br>
NIHR Biomedical Research Centre<br>
Institute of Psychiatry, Box P089<br>
Kings College London<br>
De Crespigny Park<br>
London<br>
SE5 8AF<br>
<br>
_______________________________________________<br>
Rcpp-devel mailing list<br>
<a href="mailto:Rcpp-devel@lists.r-forge.r-project.org" target="_blank">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>
<br>
<br>
</blockquote></blockquote>
_______________________________________________<br>
Rcpp-devel mailing list<br>
<a href="mailto:Rcpp-devel@lists.r-forge.r-project.org" target="_blank">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>
</div></div></blockquote></div><br>