/guava/guava/src/com/google/common/util/concurrent/AtomicDouble.java
long next = toString( currentVal) ;
long next = doubleToRawLongBits ( nextVal ) ;
@CanIgnoreReturnValue public final double getAndUpdate(DoubleUnaryOperator updateFunction) { while (true) { long current = value; double currentVal = longBitsToDouble(current); double nextVal = updateFunction.applyAsDouble(currentVal); <extra_id_0> if (updater.compareAndSet(this, current, next)) { return currentVal; } } } @CanIgnoreReturnValue