Dear Paul, Thank you for thinking with me. I will respond to your options:
> > 0/ Your code is wrong, but that seems unlikely on such a simple > calculations. > It's really just a comparison of the sum function in Fortran with that of R. If instead I use the naive summation with a for loop in both languages I get the same answer. > > 1/ You are summing a very large number of numbers, in which case the sum > can become very large compared to numbers being added, then things can > get a bit funny. > Yes, this is what's happening and why I need to know what algorithm R uses to overcome or reduce these precision issues. > > 2/ You are using single precision in fortran rather than double. Double > is needed for all floating point numbers you use! > I use doubles. > > 3/ You have not zeroed the double precision numbers in fortran. (Some > compilers do not do this automatically and you have to specify it.) Then > if you accidentally put singles, like a constant 0.0 rather than a > constant 0.0D+0, into a double you will have small junk in the lower > precision part. > It doesn't matter if I double them in this way or not (they are declared as doubles and I think the compiler treats then as doubles). So my question remains what algorithm R uses. Cheers, Rampal > > On 2/14/19 2:08 PM, Rampal Etienne wrote: > > Hello, > > > > I am trying to write FORTRAN code to do the same as some R code I have. > > I get (small) differences when using the sum function in R. I know there > > are numerical routines to improve precision, but I have not been able to > > figure out what algorithm R is using. Does anyone know this? Or where > > can I find the code for the sum function? > > > > Regards, > > > > Rampal Etienne > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel