Thanks Douglas,
How stupid of me!
Cheers,

On 03/01/11 16:00, Douglas Bates wrote:
You forgot to initialize i in both loops.  It should be

for(int i = 0; i<  Ne; i++)

On Mon, Jan 3, 2011 at 9:50 AM, Cedric Ginestet
<[email protected]>  wrote:
Dear Rcpp experts,

I have the following bizarre problem. Although the second summing C++
function seems easier than the former, it does not produce the correct
answer. See the following reproducible codes:

##########################################
Summing1<- cxxfunction(signature(x="numeric"), '
     Rcpp::NumericVector Dvec(x);
     int Ne = Dvec.size();
     double out =0;
     for(int i; i<Ne; i++) out += (1/Dvec[i])/Ne;
     return Rcpp::wrap(out);
',plugin="Rcpp")
x<- rnorm(100)
Summing1(x); mean(1/x)
##########################################
gives:
[1] 0.02950222
[1] 0.02950222

##########################################
Summing2<- cxxfunction(signature(x="numeric"), '
     Rcpp::NumericVector Dvec(x);
     int Ne = Dvec.size();
     double out =0;
     for(int i; i<Ne; i++) out += Dvec[i];
     return Rcpp::wrap(out);
',plugin="Rcpp")
x<- rnorm(100)
Summing2(x); sum(x)
############################################
gives:
[1] 0
[1] -9.220588

Any help greatly appreciated.
Cheers,


--
Cedric Ginestet
Centre for Neuroimaging Sciences (L3.04)
NIHR Biomedical Research Centre
Institute of Psychiatry, Box P089
Kings College London
De Crespigny Park
London
SE5 8AF

_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to