final class com.google.common.math.DoubleUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.google.common.math.DoubleUtils
  super_class: java.lang.Object
{
  static final long SIGNIFICAND_MASK;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4503599627370495

  static final long EXPONENT_MASK;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 9218868437227405312

  static final long SIGN_MASK;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -9223372036854775808

  static final int SIGNIFICAND_BITS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 52

  static final int EXPONENT_BIAS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1023

  static final long IMPLICIT_BIT;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4503599627370496

  static final long ONE_BITS;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4607182418800017408
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.math.DoubleUtils this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.common.math.DoubleUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/math/DoubleUtils;

  static double nextDown(double);
    descriptor: (D)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // double d
         0: .line 40
            dload 0 /* d */
            dneg
            invokestatic java.lang.Math.nextUp:(D)D
            dneg
            dreturn
        end local 0 // double d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     d  D
    MethodParameters:
      Name  Flags
      d     

  static long getSignificand(double);
    descriptor: (D)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // double d
         0: .line 63
            dload 0 /* d */
            invokestatic com.google.common.math.DoubleUtils.isFinite:(D)Z
            ldc "not a normal value"
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         1: .line 64
            dload 0 /* d */
            invokestatic java.lang.Math.getExponent:(D)I
            istore 2 /* exponent */
        start local 2 // int exponent
         2: .line 65
            dload 0 /* d */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 3 /* bits */
        start local 3 // long bits
         3: .line 66
            lload 3 /* bits */
            ldc 4503599627370495
            land
            lstore 3 /* bits */
         4: .line 67
            iload 2 /* exponent */
            sipush -1023
            if_icmpne 5
            lload 3 /* bits */
            iconst_1
            lshl
            goto 6
      StackMap locals: int long
      StackMap stack:
         5: lload 3 /* bits */
            ldc 4503599627370496
            lor
      StackMap locals:
      StackMap stack: long
         6: lreturn
        end local 3 // long bits
        end local 2 // int exponent
        end local 0 // double d
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0         d  D
            2    7     2  exponent  I
            3    7     3      bits  J
    MethodParameters:
      Name  Flags
      d     

  static boolean isFinite(double);
    descriptor: (D)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // double d
         0: .line 71
            dload 0 /* d */
            invokestatic java.lang.Math.getExponent:(D)I
            sipush 1023
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // double d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     d  D
    MethodParameters:
      Name  Flags
      d     

  static boolean isNormal(double);
    descriptor: (D)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // double d
         0: .line 75
            dload 0 /* d */
            invokestatic java.lang.Math.getExponent:(D)I
            sipush -1022
            if_icmplt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // double d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     d  D
    MethodParameters:
      Name  Flags
      d     

  static double scaleNormalize(double);
    descriptor: (D)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // double x
         0: .line 83
            dload 0 /* x */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            ldc 4503599627370495
            land
            lstore 2 /* significand */
        start local 2 // long significand
         1: .line 84
            lload 2 /* significand */
            ldc 4607182418800017408
            lor
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dreturn
        end local 2 // long significand
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0            x  D
            1    2     2  significand  J
    MethodParameters:
      Name  Flags
      x     

  static double bigToDouble(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=13, args_size=1
        start local 0 // java.math.BigInteger x
         0: .line 89
            aload 0 /* x */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 1 /* absX */
        start local 1 // java.math.BigInteger absX
         1: .line 90
            aload 1 /* absX */
            invokevirtual java.math.BigInteger.bitLength:()I
            iconst_1
            isub
            istore 2 /* exponent */
        start local 2 // int exponent
         2: .line 92
            iload 2 /* exponent */
            bipush 63
            if_icmpge 4
         3: .line 93
            aload 0 /* x */
            invokevirtual java.math.BigInteger.longValue:()J
            l2d
            dreturn
         4: .line 94
      StackMap locals: java.math.BigInteger int
      StackMap stack:
            iload 2 /* exponent */
            sipush 1023
            if_icmple 6
         5: .line 95
            aload 0 /* x */
            invokevirtual java.math.BigInteger.signum:()I
            i2d
            ldc Infinity
            dmul
            dreturn
         6: .line 106
      StackMap locals:
      StackMap stack:
            iload 2 /* exponent */
            bipush 52
            isub
            iconst_1
            isub
            istore 3 /* shift */
        start local 3 // int shift
         7: .line 107
            aload 1 /* absX */
            iload 3 /* shift */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lstore 4 /* twiceSignifFloor */
        start local 4 // long twiceSignifFloor
         8: .line 108
            lload 4 /* twiceSignifFloor */
            iconst_1
            lshr
            lstore 6 /* signifFloor */
        start local 6 // long signifFloor
         9: .line 109
            lload 6 /* signifFloor */
            ldc 4503599627370495
            land
            lstore 6 /* signifFloor */
        10: .line 117
            lload 4 /* twiceSignifFloor */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 13
            lload 6 /* signifFloor */
            lconst_1
            land
            lconst_0
            lcmp
            ifne 12
            aload 1 /* absX */
            invokevirtual java.math.BigInteger.getLowestSetBit:()I
            iload 3 /* shift */
        11: .line 116
            if_icmpge 13
      StackMap locals: int long long
      StackMap stack:
        12: iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 8 /* increment */
        start local 8 // boolean increment
        15: .line 118
            iload 8 /* increment */
            ifeq 16
            lload 6 /* signifFloor */
            lconst_1
            ladd
            goto 17
      StackMap locals: int
      StackMap stack:
        16: lload 6 /* signifFloor */
      StackMap locals:
      StackMap stack: long
        17: lstore 9 /* signifRounded */
        start local 9 // long signifRounded
        18: .line 119
            iload 2 /* exponent */
            sipush 1023
            iadd
            i2l
            bipush 52
            lshl
            lstore 11 /* bits */
        start local 11 // long bits
        19: .line 120
            lload 11 /* bits */
            lload 9 /* signifRounded */
            ladd
            lstore 11 /* bits */
        20: .line 127
            lload 11 /* bits */
            aload 0 /* x */
            invokevirtual java.math.BigInteger.signum:()I
            i2l
            ldc -9223372036854775808
            land
            lor
            lstore 11 /* bits */
        21: .line 128
            lload 11 /* bits */
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dreturn
        end local 11 // long bits
        end local 9 // long signifRounded
        end local 8 // boolean increment
        end local 6 // long signifFloor
        end local 4 // long twiceSignifFloor
        end local 3 // int shift
        end local 2 // int exponent
        end local 1 // java.math.BigInteger absX
        end local 0 // java.math.BigInteger x
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0                 x  Ljava/math/BigInteger;
            1   22     1              absX  Ljava/math/BigInteger;
            2   22     2          exponent  I
            7   22     3             shift  I
            8   22     4  twiceSignifFloor  J
            9   22     6       signifFloor  J
           15   22     8         increment  Z
           18   22     9     signifRounded  J
           19   22    11              bits  J
    MethodParameters:
      Name  Flags
      x     

  static double ensureNonNegative(double);
    descriptor: (D)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double value
         0: .line 133
            dload 0 /* value */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
         3: .line 134
            dload 0 /* value */
            dconst_0
            dcmpl
            ifle 5
         4: .line 135
            dload 0 /* value */
            dreturn
         5: .line 137
      StackMap locals:
      StackMap stack:
            dconst_0
            dreturn
        end local 0 // double value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  value  D
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "DoubleUtils.java"
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()