public class com.google.common.util.concurrent.AtomicDouble extends java.lang.Number implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.google.common.util.concurrent.AtomicDouble
  super_class: java.lang.Number
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private volatile transient long value;
    descriptor: J
    flags: (0x00c2) ACC_PRIVATE, ACC_VOLATILE, ACC_TRANSIENT

  private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<com.google.common.util.concurrent.AtomicDouble> updater;
    descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lcom/google/common/util/concurrent/AtomicDouble;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 62
            ldc Lcom/google/common/util/concurrent/AtomicDouble;
            ldc "value"
            invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
         1: .line 61
            putstatic com.google.common.util.concurrent.AtomicDouble.updater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
         2: .line 62
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double initialValue
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 70
            aload 0 /* this */
            dload 1 /* initialValue */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            putfield com.google.common.util.concurrent.AtomicDouble.value:J
         2: .line 71
            return
        end local 1 // double initialValue
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    3     1  initialValue  D
    MethodParameters:
              Name  Flags
      initialValue  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 76
            return
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/google/common/util/concurrent/AtomicDouble;

  public final double get();
    descriptor: ()D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
         0: .line 84
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AtomicDouble.value:J
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dreturn
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AtomicDouble;

  public final void set(double);
    descriptor: (D)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double newValue
         0: .line 93
            dload 1 /* newValue */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 3 /* next */
        start local 3 // long next
         1: .line 94
            aload 0 /* this */
            lload 3 /* next */
            putfield com.google.common.util.concurrent.AtomicDouble.value:J
         2: .line 95
            return
        end local 3 // long next
        end local 1 // double newValue
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    3     1  newValue  D
            1    3     3      next  J
    MethodParameters:
          Name  Flags
      newValue  

  public final void lazySet(double);
    descriptor: (D)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double newValue
         0: .line 103
            dload 1 /* newValue */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 3 /* next */
        start local 3 // long next
         1: .line 104
            getstatic com.google.common.util.concurrent.AtomicDouble.updater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            lload 3 /* next */
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.lazySet:(Ljava/lang/Object;J)V
         2: .line 105
            return
        end local 3 // long next
        end local 1 // double newValue
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    3     1  newValue  D
            1    3     3      next  J
    MethodParameters:
          Name  Flags
      newValue  

  public final double getAndSet(double);
    descriptor: (D)D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double newValue
         0: .line 114
            dload 1 /* newValue */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 3 /* next */
        start local 3 // long next
         1: .line 115
            getstatic com.google.common.util.concurrent.AtomicDouble.updater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            lload 3 /* next */
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.getAndSet:(Ljava/lang/Object;J)J
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dreturn
        end local 3 // long next
        end local 1 // double newValue
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    2     1  newValue  D
            1    2     3      next  J
    MethodParameters:
          Name  Flags
      newValue  

  public final boolean compareAndSet(double, double);
    descriptor: (DD)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double expect
        start local 3 // double update
         0: .line 128
            getstatic com.google.common.util.concurrent.AtomicDouble.updater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            dload 1 /* expect */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            dload 3 /* update */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
            ireturn
        end local 3 // double update
        end local 1 // double expect
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    1     1  expect  D
            0    1     3  update  D
    MethodParameters:
        Name  Flags
      expect  
      update  

  public final boolean weakCompareAndSet(double, double);
    descriptor: (DD)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double expect
        start local 3 // double update
         0: .line 145
            getstatic com.google.common.util.concurrent.AtomicDouble.updater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
         1: .line 146
            aload 0 /* this */
            dload 1 /* expect */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            dload 3 /* update */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
         2: .line 145
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.weakCompareAndSet:(Ljava/lang/Object;JJ)Z
            ireturn
        end local 3 // double update
        end local 1 // double expect
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    3     1  expect  D
            0    3     3  update  D
    MethodParameters:
        Name  Flags
      expect  
      update  

  public final double getAndAdd(double);
    descriptor: (D)D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double delta
         0: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AtomicDouble.value:J
            lstore 3 /* current */
        start local 3 // long current
         1: .line 159
            lload 3 /* current */
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dstore 5 /* currentVal */
        start local 5 // double currentVal
         2: .line 160
            dload 5 /* currentVal */
            dload 1 /* delta */
            dadd
            dstore 7 /* nextVal */
        start local 7 // double nextVal
         3: .line 161
            dload 7 /* nextVal */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 9 /* next */
        start local 9 // long next
         4: .line 162
            getstatic com.google.common.util.concurrent.AtomicDouble.updater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            lload 3 /* current */
            lload 9 /* next */
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
            ifeq 0
         5: .line 163
            dload 5 /* currentVal */
            dreturn
        end local 9 // long next
        end local 7 // double nextVal
        end local 5 // double currentVal
        end local 3 // long current
        end local 1 // double delta
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    6     1       delta  D
            1    6     3     current  J
            2    6     5  currentVal  D
            3    6     7     nextVal  D
            4    6     9        next  J
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
       Name  Flags
      delta  

  public final double addAndGet(double);
    descriptor: (D)D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // double delta
         0: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.util.concurrent.AtomicDouble.value:J
            lstore 3 /* current */
        start local 3 // long current
         1: .line 178
            lload 3 /* current */
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dstore 5 /* currentVal */
        start local 5 // double currentVal
         2: .line 179
            dload 5 /* currentVal */
            dload 1 /* delta */
            dadd
            dstore 7 /* nextVal */
        start local 7 // double nextVal
         3: .line 180
            dload 7 /* nextVal */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 9 /* next */
        start local 9 // long next
         4: .line 181
            getstatic com.google.common.util.concurrent.AtomicDouble.updater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            lload 3 /* current */
            lload 9 /* next */
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
            ifeq 0
         5: .line 182
            dload 7 /* nextVal */
            dreturn
        end local 9 // long next
        end local 7 // double nextVal
        end local 5 // double currentVal
        end local 3 // long current
        end local 1 // double delta
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    6     1       delta  D
            1    6     3     current  J
            2    6     5  currentVal  D
            3    6     7     nextVal  D
            4    6     9        next  J
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
       Name  Flags
      delta  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
         0: .line 194
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AtomicDouble.get:()D
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            areturn
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AtomicDouble;

  public int intValue();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
         0: .line 203
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AtomicDouble.get:()D
            d2i
            ireturn
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AtomicDouble;

  public long longValue();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
         0: .line 212
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AtomicDouble.get:()D
            d2l
            lreturn
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AtomicDouble;

  public float floatValue();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
         0: .line 221
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AtomicDouble.get:()D
            d2f
            freturn
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AtomicDouble;

  public double doubleValue();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
         0: .line 227
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AtomicDouble.get:()D
            dreturn
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/AtomicDouble;

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 236
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         1: .line 238
            aload 1 /* s */
            aload 0 /* this */
            invokevirtual com.google.common.util.concurrent.AtomicDouble.get:()D
            invokevirtual java.io.ObjectOutputStream.writeDouble:(D)V
         2: .line 239
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    3     1     s  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.util.concurrent.AtomicDouble this
        start local 1 // java.io.ObjectInputStream s
         0: .line 244
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 246
            aload 0 /* this */
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.readDouble:()D
            invokevirtual com.google.common.util.concurrent.AtomicDouble.set:(D)V
         2: .line 247
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // com.google.common.util.concurrent.AtomicDouble this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/google/common/util/concurrent/AtomicDouble;
            0    3     1     s  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     
}
SourceFile: "AtomicDouble.java"
InnerClasses:
  public final Level = com.google.j2objc.annotations.ReflectionSupport$Level of com.google.j2objc.annotations.ReflectionSupport
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
      com.google.j2objc.annotations.ReflectionSupport(value = com.google.j2objc.annotations.ReflectionSupport$Level.FULL:Lcom/google/j2objc/annotations/ReflectionSupport$Level;)