[Rcpp-devel] int double multiplication

Dirk Eddelbuettel edd at debian.org
Tue Jun 21 17:12:47 CEST 2016


On 21 June 2016 at 17:01, Andreas Prescher wrote:
| Hello,
| 
| I thought it was easy to understand.
| 
| Ok:
| 
| void foo(double d) {
| 	std::vector<int> vector;
| 	for(int i = 0; i < 75; i++) {
| 		vector.push_back(i);
| 	}
| 	int i = vector.size() * d;
| }
| 
| from R:
| foo(1/3)
| 
| foo is inside package built with
| package skeleton.
| 
| Hope its more clear now.

Sure. Appears to be a variant of R FAQ 7.31:

   https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f


Also google 'what every computer scientist should know about floating point' and
related documents.  The canonical reference is

   http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

but there are many other related writeups.


You can even google for 'R FAQ 7.31' and get hits...

Dirk

| Andreas
| 
| 
| 
| Am 21.06.2016 um 16:49 schrieb Dirk Eddelbuettel:
| > 
| > On 21 June 2016 at 16:33, Andreas Prescher wrote:
| > | Hello,
| > | 
| > | calling my function from R with
| > | f(1/3) gives different results
| > | on ubuntu 12.04 32 bit
| > | and 14.04 64 bit, e.g:
| > | 
| > | void f(double d) {
| > | 	int i = vector.size() * d;
| > | }
| > | Given vector of size 75
| > | I get 25 on 14.04 64 bit
| > | and 24 on 12.04 32 bit.
| > | 
| > | Size of int is 4 byte,
| > | double 8 byte on both systems.
| > | 
| > | Does anybody have an idea
| > | how to get same result
| > | on both machines?
| > 
| > Please provide a _complete_ and _reproducible_ example.
| > 
| > Dirk
| > 
| > 
| > | 
| > | Thanks in advance,
| > | 
| > | Andreas
| > | 
| > | (Further information:
| > | 14.04 64 bit machine:
| > | g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
| > | R version 3.0.2 (2013-09-25)
| > | 
| > | 12.04 32 bit:
| > | g++ 4.6.3
| > | R 3.2.2)
| > | 
| > | _______________________________________________
| > | Rcpp-devel mailing list
| > | Rcpp-devel at lists.r-forge.r-project.org
| > | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
| > 
| 
| 
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

-- 
While traveling abroad, the router hung which left me unable to access email
for a few days (and also blocked access to my website, blog, @cranberries, ...)
Please accept my apologies for delayed and/or somewhat brief replies.
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list