- Collectors averagingDouble could use the same @implNote as in DoublePipeline.

- DoublePipeline implementation could document the usage of the double array 
indices.

- @summary in test.

- I agree with Paul that refactoring as a testNG test would be nice. 

- I wondered at the mechanism for combining compensation values. Do you have a 
reference which explains the correctness? I thought perhaps directly adding the 
compensations together before doing compensated addition of the two sums might 
be better.

Mike


On Nov 20 2013, at 00:21 , Joe Darcy <[email protected]> wrote:

> Hi Paul,
> 
> On 11/18/2013 07:38 AM, Paul Sandoz wrote:
>> Hi Joe,
>> 
>> You can use the three arg form of collect for DoublePipeline.sum/average 
>> impls, which is already used for average:
>> 
>>     public final OptionalDouble average() {
>>         double[] avg = collect(() -> new double[2],
>>                                (ll, i) -> {
>>                                    ll[0]++;
>>                                    ll[1] += i;
>>                                },
>>                                (ll, rr) -> {
>>                                    ll[0] += rr[0];
>>                                    ll[1] += rr[1];
>>                                });
>>         return avg[0] > 0
>>                ? OptionalDouble.of(avg[1] / avg[0])
>>                : OptionalDouble.empty();
>>     }
>> 
>> That would be the most expedient way.
> 
> Thanks for the tip. For the moment, I'm feeling a bit expedient and used the 
> array-based approach in an iteration of the change:
> 
>    http://cr.openjdk.java.net/~darcy/8006572.3/


Reply via email to