Hmmm.  Is that algorithm doable concurrently without needing a 128-bit CAS?


On Mon, Jan 7, 2013 at 11:07 AM, Joe Darcy <joe.da...@oracle.com> wrote:

> Hello,
>
> I had a question about how the double accumulation logic was intended to
> be used.  I've taken a quick look at the code and it uses straightforward
> "sum = sum + nextValue" code to compute the double sum.  Summing doubles
> values with code numerical accuracy is surprisingly tricky and if the
> DoubleAccumulator code is meant for wide use, I'd recommend using instead
> some form of compensated summation:
>
>     
> http://en.wikipedia.org/wiki/**Kahan_summation_algorithm<http://en.wikipedia.org/wiki/Kahan_summation_algorithm>
>
> Thanks,
>
> -Joe
>
>
> On 1/5/2013 10:10 AM, Chris Hegarty wrote:
>
>> As part of JEP 155 we are proposing to add the following public classes
>> to support Scalable Updatable Variables, DoubleAccumulator, DoubleAdder,
>> LongAccumulator and LongAdder.
>>
>> These have been written by Doug Lea, with assistance from members of the
>> former JCP JSR-166 Expert Group.
>>
>> Webrev and javadoc are at:
>>   
>> http://cr.openjdk.java.net/~**chegar/8005311/ver.00/<http://cr.openjdk.java.net/~chegar/8005311/ver.00/>
>>
>> Since Doug is the author, I am taking a reviewer/sponsor role.
>>
>> Here are my initial comments.
>>  - There are various places in DoubleAccmulator where there are broken
>>    links to #sum ( I think it is just a cut'n'paste error ). These
>>    should be #get.
>>  - Accumulators
>>    {@link #get} may read somewhat better as {@link #get current value} ??
>>  - Accumulators
>>    Does the 'identity' value need further explanation?
>>
>> Note: There is one minor change to the implementation. Currently in the
>> jdk8 repo j.u.f.DoubleBinaryOperator defines operateAsDouble. This method
>> has been renamed to applyAsDouble in the lambda/lambda repo. When these
>> changes are sync'ed from lambda/lambda this can be reverted. A similar
>> comment has been added to the code.
>>
>> -Chris.
>>
>
>


-- 
Louis Wasserman

Reply via email to