On Jul 16, 2014, at 2:29 AM, Joe Darcy <joe.da...@oracle.com> wrote:

> Hello,
> 
> Please review my changes to address:
> 
>    JDK-8030942: Explicitly state floating-point summation requirements on 
> non-finite inputs
>    http://cr.openjdk.java.net/~darcy/8030942.0/
> 
> Patch below.
> 

That looks a reasonable description of the constraints. Do those constraints 
also hold for reduce(0, Double::sum)? I think they might, but want to double 
check.

--

In hindsight i wish that sum was specified to be equivalent to reduce(0, 
Double::sum). Many developers will be surprised at the performance difference 
(~4x) between a compensated and uncompensated sum and i do wonder how much 
importance they place on the former. FWIW i tried to improve the performance, 
but failed (should take another swing at it):

  https://bugs.openjdk.java.net/browse/JDK-8035561

I was contemplating making the sum() implement uncompensated and adding a new 
method compensatedSum(). I suspect you would prefer that to be the other way 
around with the even more verbose uncompensatedSum() method :-) My motivation 
for the question above is whether the specification updates will impact which 
way to go.  

Paul.

Reply via email to