On 17 January 2014 at 20:51, 晔张 wrote: | Dear all, | | I have a strange question such that I can't conclude it in the title. | I have write an function: | //[[Rcpp::export]] | double mydcov(NumericVector x, NumericVector y)
It would help us to see the function to have any guess at what may be wrong. | This function is computing ditance covariance. This function is OK. It give | the right answer. | I use this function to compute distance correltion. | | //[[Rcpp::export]] | double mydcor(NumericVector x, NumericVector y) | { | return mydcov(x,y)/sqrt(mydcov(x,x)*mydcov(y,y)); | } | | Then, I compile the source code using sourceCpp. | And then mydcor(x,y) give a wrong answer. | | Here comes the strange part: | In R, I run code as follow | | res1 <- mydcov(x,y)/sqrt(mydcov(x,x)*mydcov(y,y)) | | a <- mydcov(x,y) | b <- mydcov(x,x) | c <- mydcov(y,y) | res2 <- a/sqrt(b*c) | | and res2 is different from res1.(res2 is the right answer.) | | And I have another test, rewriting the source code for mydcor(): | version1: | //[[Rcpp::export]] | double mydcor(NumericVector x, NumericVector y) | { | double a = mydcov(x,y) | double b = mydcov(x,x); | double c = mydcov(y,y); | return (a/sqrt(b*c)); | } | | version2: | //[[Rcpp::export]] | double mydcor(NumericVector x, NumericVector y) | { | double a = mydcov(x,y) | Rcout<<a<<"\n"; | double b = mydcov(x,x); | Rcout<<b<<"\n"; | double c = mydcov(y,y); | Rcout<<c<<"\n" | return (a/sqrt(b*c)); | } | This time, version2 make a right answer. | It's too weird. I havn't meet such situation before. I am not sure we are in a position to help you here. Regards, Dirk | | Happy Lunar New Year (the most important festival in China), and Thanks in | advance. | | Best regards | ZhangYet | | ---------------------------------------------------------------------- | _______________________________________________ | Rcpp-devel mailing list | Rcpp-devel@lists.r-forge.r-project.org | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel