From r@mp@|et|enne @end|ng |rom gm@||@com  Wed Feb 20 23:38:51 2019
From: r@mp@|et|enne @end|ng |rom gm@||@com (Rampal Etienne)
Date: Wed, 20 Feb 2019 22:38:51 +0000
Subject: [Rd] code for sum function
In-Reply-To: <66adfaca-27fe-4671-c73d-fd0462c36af0@gmail.com>
References: <c1495700-e265-4ff8-1f36-e149bd4d1961@gmail.com>
 <66adfaca-27fe-4671-c73d-fd0462c36af0@gmail.com>
Message-ID: <CAOuLjjRPbSwLgy2MoEtdLXFs3X_BYEFC3DFcFvEM2ODNq-V2hg@mail.gmail.com>

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 at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



[Rd] code for sum function
Rampal Etienne