public class org.apache.commons.math3.util.Precision
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.math3.util.Precision
  super_class: java.lang.Object
{
  public static final double EPSILON;
    descriptor: D
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final double SAFE_MIN;
    descriptor: D
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final long EXPONENT_OFFSET;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1023

  private static final long SGN_MASK;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -9223372036854775808

  private static final int SGN_MASK_FLOAT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483648

  private static final double POSITIVE_ZERO;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.0

  private static final long POSITIVE_ZERO_DOUBLE_BITS;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long NEGATIVE_ZERO_DOUBLE_BITS;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int POSITIVE_ZERO_FLOAT_BITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int NEGATIVE_ZERO_FLOAT_BITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 65
            dconst_0
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            putstatic org.apache.commons.math3.util.Precision.POSITIVE_ZERO_DOUBLE_BITS:J
         1: .line 67
            ldc -0.0
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            putstatic org.apache.commons.math3.util.Precision.NEGATIVE_ZERO_DOUBLE_BITS:J
         2: .line 69
            fconst_0
            invokestatic java.lang.Float.floatToRawIntBits:(F)I
            putstatic org.apache.commons.math3.util.Precision.POSITIVE_ZERO_FLOAT_BITS:I
         3: .line 71
            ldc -0.0
            invokestatic java.lang.Float.floatToRawIntBits:(F)I
            putstatic org.apache.commons.math3.util.Precision.NEGATIVE_ZERO_FLOAT_BITS:I
         4: .line 79
            ldc 4368491638549381120
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            putstatic org.apache.commons.math3.util.Precision.EPSILON:D
         5: .line 86
            ldc 4503599627370496
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            putstatic org.apache.commons.math3.util.Precision.SAFE_MIN:D
         6: .line 87
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.math3.util.Precision this
         0: .line 92
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.commons.math3.util.Precision this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/math3/util/Precision;

  public static int compareTo(double, double, double);
    descriptor: (DDD)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // double eps
         0: .line 106
            dload 0 /* x */
            dload 2 /* y */
            dload 4 /* eps */
            invokestatic org.apache.commons.math3.util.Precision.equals:(DDD)Z
            ifeq 2
         1: .line 107
            iconst_0
            ireturn
         2: .line 108
      StackMap locals:
      StackMap stack:
            dload 0 /* x */
            dload 2 /* y */
            dcmpg
            ifge 4
         3: .line 109
            iconst_m1
            ireturn
         4: .line 111
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // double eps
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     x  D
            0    5     2     y  D
            0    5     4   eps  D
    MethodParameters:
      Name  Flags
      x     
      y     
      eps   

  public static int compareTo(double, double, int);
    descriptor: (DDI)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // int maxUlps
         0: .line 133
            dload 0 /* x */
            dload 2 /* y */
            iload 4 /* maxUlps */
            invokestatic org.apache.commons.math3.util.Precision.equals:(DDI)Z
            ifeq 2
         1: .line 134
            iconst_0
            ireturn
         2: .line 135
      StackMap locals:
      StackMap stack:
            dload 0 /* x */
            dload 2 /* y */
            dcmpg
            ifge 4
         3: .line 136
            iconst_m1
            ireturn
         4: .line 138
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // int maxUlps
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0        x  D
            0    5     2        y  D
            0    5     4  maxUlps  I
    MethodParameters:
         Name  Flags
      x        final
      y        final
      maxUlps  final

  public static boolean equals(float, float);
    descriptor: (FF)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // float x
        start local 1 // float y
         0: .line 150
            fload 0 /* x */
            fload 1 /* y */
            iconst_1
            invokestatic org.apache.commons.math3.util.Precision.equals:(FFI)Z
            ireturn
        end local 1 // float y
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  F
            0    1     1     y  F
    MethodParameters:
      Name  Flags
      x     
      y     

  public static boolean equalsIncludingNaN(float, float);
    descriptor: (FF)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // float x
        start local 1 // float y
         0: .line 163
            fload 0 /* x */
            fload 0 /* x */
            fcmpl
            ifne 1
            fload 1 /* y */
            fload 1 /* y */
            fcmpl
            ifeq 7
      StackMap locals:
      StackMap stack:
         1: fload 0 /* x */
            fload 0 /* x */
            fcmpl
            ifeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: fload 1 /* y */
            fload 1 /* y */
            fcmpl
            ifeq 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: float float
      StackMap stack: int int
         5: ixor
            ifeq 6
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         6: iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: fload 0 /* x */
            fload 1 /* y */
            iconst_1
            invokestatic org.apache.commons.math3.util.Precision.equals:(FFI)Z
      StackMap locals:
      StackMap stack: int
         8: ireturn
        end local 1 // float y
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0     x  F
            0    9     1     y  F
    MethodParameters:
      Name  Flags
      x     
      y     

  public static boolean equals(float, float, float);
    descriptor: (FFF)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // float x
        start local 1 // float y
        start local 2 // float eps
         0: .line 178
            fload 0 /* x */
            fload 1 /* y */
            iconst_1
            invokestatic org.apache.commons.math3.util.Precision.equals:(FFI)Z
            ifne 1
            fload 1 /* y */
            fload 0 /* x */
            fsub
            invokestatic org.apache.commons.math3.util.FastMath.abs:(F)F
            fload 2 /* eps */
            fcmpg
            ifle 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 2 // float eps
        end local 1 // float y
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  F
            0    2     1     y  F
            0    2     2   eps  F
    MethodParameters:
      Name  Flags
      x     
      y     
      eps   

  public static boolean equalsIncludingNaN(float, float, float);
    descriptor: (FFF)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // float x
        start local 1 // float y
        start local 2 // float eps
         0: .line 193
            fload 0 /* x */
            fload 1 /* y */
            invokestatic org.apache.commons.math3.util.Precision.equalsIncludingNaN:(FF)Z
            ifne 1
            fload 1 /* y */
            fload 0 /* x */
            fsub
            invokestatic org.apache.commons.math3.util.FastMath.abs:(F)F
            fload 2 /* eps */
            fcmpg
            ifle 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 2 // float eps
        end local 1 // float y
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  F
            0    2     1     y  F
            0    2     2   eps  F
    MethodParameters:
      Name  Flags
      x     
      y     
      eps   

  public static boolean equals(float, float, int);
    descriptor: (FFI)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // float x
        start local 1 // float y
        start local 2 // int maxUlps
         0: .line 216
            fload 0 /* x */
            invokestatic java.lang.Float.floatToRawIntBits:(F)I
            istore 3 /* xInt */
        start local 3 // int xInt
         1: .line 217
            fload 1 /* y */
            invokestatic java.lang.Float.floatToRawIntBits:(F)I
            istore 4 /* yInt */
        start local 4 // int yInt
         2: .line 220
            iload 3 /* xInt */
            iload 4 /* yInt */
            ixor
            ldc -2147483648
            iand
            ifne 7
         3: .line 222
            iload 3 /* xInt */
            iload 4 /* yInt */
            isub
            invokestatic org.apache.commons.math3.util.FastMath.abs:(I)I
            iload 2 /* maxUlps */
            if_icmpgt 4
            iconst_1
            goto 5
      StackMap locals: int int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* isEqual */
        start local 5 // boolean isEqual
         6: .line 223
            goto 19
        end local 5 // boolean isEqual
         7: .line 227
      StackMap locals:
      StackMap stack:
            iload 3 /* xInt */
            iload 4 /* yInt */
            if_icmpge 11
         8: .line 228
            iload 4 /* yInt */
            getstatic org.apache.commons.math3.util.Precision.POSITIVE_ZERO_FLOAT_BITS:I
            isub
            istore 6 /* deltaPlus */
        start local 6 // int deltaPlus
         9: .line 229
            iload 3 /* xInt */
            getstatic org.apache.commons.math3.util.Precision.NEGATIVE_ZERO_FLOAT_BITS:I
            isub
            istore 7 /* deltaMinus */
        start local 7 // int deltaMinus
        10: .line 230
            goto 13
        end local 7 // int deltaMinus
        end local 6 // int deltaPlus
        11: .line 231
      StackMap locals:
      StackMap stack:
            iload 3 /* xInt */
            getstatic org.apache.commons.math3.util.Precision.POSITIVE_ZERO_FLOAT_BITS:I
            isub
            istore 6 /* deltaPlus */
        start local 6 // int deltaPlus
        12: .line 232
            iload 4 /* yInt */
            getstatic org.apache.commons.math3.util.Precision.NEGATIVE_ZERO_FLOAT_BITS:I
            isub
            istore 7 /* deltaMinus */
        start local 7 // int deltaMinus
        13: .line 235
      StackMap locals: float float int int int top int int
      StackMap stack:
            iload 6 /* deltaPlus */
            iload 2 /* maxUlps */
            if_icmple 16
        14: .line 236
            iconst_0
            istore 5 /* isEqual */
        start local 5 // boolean isEqual
        15: .line 237
            goto 19
        end local 5 // boolean isEqual
        16: .line 238
      StackMap locals:
      StackMap stack:
            iload 7 /* deltaMinus */
            iload 2 /* maxUlps */
            iload 6 /* deltaPlus */
            isub
            if_icmpgt 17
            iconst_1
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 5 /* isEqual */
        end local 7 // int deltaMinus
        end local 6 // int deltaPlus
        start local 5 // boolean isEqual
        19: .line 243
      StackMap locals: float float int int int int
      StackMap stack:
            iload 5 /* isEqual */
            ifeq 20
            fload 0 /* x */
            invokestatic java.lang.Float.isNaN:(F)Z
            ifne 20
            fload 1 /* y */
            invokestatic java.lang.Float.isNaN:(F)Z
            ifne 20
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        20: iconst_0
            ireturn
        end local 5 // boolean isEqual
        end local 4 // int yInt
        end local 3 // int xInt
        end local 2 // int maxUlps
        end local 1 // float y
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0           x  F
            0   21     1           y  F
            0   21     2     maxUlps  I
            1   21     3        xInt  I
            2   21     4        yInt  I
            6    7     5     isEqual  Z
           15   16     5     isEqual  Z
           19   21     5     isEqual  Z
            9   11     6   deltaPlus  I
           12   19     6   deltaPlus  I
           10   11     7  deltaMinus  I
           13   19     7  deltaMinus  I
    MethodParameters:
         Name  Flags
      x        final
      y        final
      maxUlps  final

  public static boolean equalsIncludingNaN(float, float, int);
    descriptor: (FFI)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // float x
        start local 1 // float y
        start local 2 // int maxUlps
         0: .line 260
            fload 0 /* x */
            fload 0 /* x */
            fcmpl
            ifne 1
            fload 1 /* y */
            fload 1 /* y */
            fcmpl
            ifeq 7
      StackMap locals:
      StackMap stack:
         1: fload 0 /* x */
            fload 0 /* x */
            fcmpl
            ifeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: fload 1 /* y */
            fload 1 /* y */
            fcmpl
            ifeq 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: float float int
      StackMap stack: int int
         5: ixor
            ifeq 6
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         6: iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: fload 0 /* x */
            fload 1 /* y */
            iload 2 /* maxUlps */
            invokestatic org.apache.commons.math3.util.Precision.equals:(FFI)Z
      StackMap locals:
      StackMap stack: int
         8: ireturn
        end local 2 // int maxUlps
        end local 1 // float y
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0        x  F
            0    9     1        y  F
            0    9     2  maxUlps  I
    MethodParameters:
         Name  Flags
      x        
      y        
      maxUlps  

  public static boolean equals(double, double);
    descriptor: (DD)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // double x
        start local 2 // double y
         0: .line 272
            dload 0 /* x */
            dload 2 /* y */
            iconst_1
            invokestatic org.apache.commons.math3.util.Precision.equals:(DDI)Z
            ireturn
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  D
            0    1     2     y  D
    MethodParameters:
      Name  Flags
      x     
      y     

  public static boolean equalsIncludingNaN(double, double);
    descriptor: (DD)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // double x
        start local 2 // double y
         0: .line 285
            dload 0 /* x */
            dload 0 /* x */
            dcmpl
            ifne 1
            dload 2 /* y */
            dload 2 /* y */
            dcmpl
            ifeq 7
      StackMap locals:
      StackMap stack:
         1: dload 0 /* x */
            dload 0 /* x */
            dcmpl
            ifeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: dload 2 /* y */
            dload 2 /* y */
            dcmpl
            ifeq 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: double double
      StackMap stack: int int
         5: ixor
            ifeq 6
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         6: iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: dload 0 /* x */
            dload 2 /* y */
            iconst_1
            invokestatic org.apache.commons.math3.util.Precision.equals:(DDI)Z
      StackMap locals:
      StackMap stack: int
         8: ireturn
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0     x  D
            0    9     2     y  D
    MethodParameters:
      Name  Flags
      x     
      y     

  public static boolean equals(double, double, double);
    descriptor: (DDD)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // double eps
         0: .line 301
            dload 0 /* x */
            dload 2 /* y */
            iconst_1
            invokestatic org.apache.commons.math3.util.Precision.equals:(DDI)Z
            ifne 1
            dload 2 /* y */
            dload 0 /* x */
            dsub
            invokestatic org.apache.commons.math3.util.FastMath.abs:(D)D
            dload 4 /* eps */
            dcmpg
            ifle 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 4 // double eps
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  D
            0    2     2     y  D
            0    2     4   eps  D
    MethodParameters:
      Name  Flags
      x     
      y     
      eps   

  public static boolean equalsWithRelativeTolerance(double, double, double);
    descriptor: (DDD)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // double eps
         0: .line 318
            dload 0 /* x */
            dload 2 /* y */
            iconst_1
            invokestatic org.apache.commons.math3.util.Precision.equals:(DDI)Z
            ifeq 2
         1: .line 319
            iconst_1
            ireturn
         2: .line 322
      StackMap locals:
      StackMap stack:
            dload 0 /* x */
            invokestatic org.apache.commons.math3.util.FastMath.abs:(D)D
            dload 2 /* y */
            invokestatic org.apache.commons.math3.util.FastMath.abs:(D)D
            invokestatic org.apache.commons.math3.util.FastMath.max:(DD)D
            dstore 6 /* absoluteMax */
        start local 6 // double absoluteMax
         3: .line 323
            dload 0 /* x */
            dload 2 /* y */
            dsub
            dload 6 /* absoluteMax */
            ddiv
            invokestatic org.apache.commons.math3.util.FastMath.abs:(D)D
            dstore 8 /* relativeDifference */
        start local 8 // double relativeDifference
         4: .line 325
            dload 8 /* relativeDifference */
            dload 4 /* eps */
            dcmpg
            ifgt 5
            iconst_1
            ireturn
      StackMap locals: double double
      StackMap stack:
         5: iconst_0
            ireturn
        end local 8 // double relativeDifference
        end local 6 // double absoluteMax
        end local 4 // double eps
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                   x  D
            0    6     2                   y  D
            0    6     4                 eps  D
            3    6     6         absoluteMax  D
            4    6     8  relativeDifference  D
    MethodParameters:
      Name  Flags
      x     
      y     
      eps   

  public static boolean equalsIncludingNaN(double, double, double);
    descriptor: (DDD)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // double eps
         0: .line 340
            dload 0 /* x */
            dload 2 /* y */
            invokestatic org.apache.commons.math3.util.Precision.equalsIncludingNaN:(DD)Z
            ifne 1
            dload 2 /* y */
            dload 0 /* x */
            dsub
            invokestatic org.apache.commons.math3.util.FastMath.abs:(D)D
            dload 4 /* eps */
            dcmpg
            ifle 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 4 // double eps
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  D
            0    2     2     y  D
            0    2     4   eps  D
    MethodParameters:
      Name  Flags
      x     
      y     
      eps   

  public static boolean equals(double, double, int);
    descriptor: (DDI)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // int maxUlps
         0: .line 366
            dload 0 /* x */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 5 /* xInt */
        start local 5 // long xInt
         1: .line 367
            dload 2 /* y */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            lstore 7 /* yInt */
        start local 7 // long yInt
         2: .line 370
            lload 5 /* xInt */
            lload 7 /* yInt */
            lxor
            ldc -9223372036854775808
            land
            lconst_0
            lcmp
            ifne 7
         3: .line 372
            lload 5 /* xInt */
            lload 7 /* yInt */
            lsub
            invokestatic org.apache.commons.math3.util.FastMath.abs:(J)J
            iload 4 /* maxUlps */
            i2l
            lcmp
            ifgt 4
            iconst_1
            goto 5
      StackMap locals: long long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 9 /* isEqual */
        start local 9 // boolean isEqual
         6: .line 373
            goto 19
        end local 9 // boolean isEqual
         7: .line 377
      StackMap locals:
      StackMap stack:
            lload 5 /* xInt */
            lload 7 /* yInt */
            lcmp
            ifge 11
         8: .line 378
            lload 7 /* yInt */
            getstatic org.apache.commons.math3.util.Precision.POSITIVE_ZERO_DOUBLE_BITS:J
            lsub
            lstore 10 /* deltaPlus */
        start local 10 // long deltaPlus
         9: .line 379
            lload 5 /* xInt */
            getstatic org.apache.commons.math3.util.Precision.NEGATIVE_ZERO_DOUBLE_BITS:J
            lsub
            lstore 12 /* deltaMinus */
        start local 12 // long deltaMinus
        10: .line 380
            goto 13
        end local 12 // long deltaMinus
        end local 10 // long deltaPlus
        11: .line 381
      StackMap locals:
      StackMap stack:
            lload 5 /* xInt */
            getstatic org.apache.commons.math3.util.Precision.POSITIVE_ZERO_DOUBLE_BITS:J
            lsub
            lstore 10 /* deltaPlus */
        start local 10 // long deltaPlus
        12: .line 382
            lload 7 /* yInt */
            getstatic org.apache.commons.math3.util.Precision.NEGATIVE_ZERO_DOUBLE_BITS:J
            lsub
            lstore 12 /* deltaMinus */
        start local 12 // long deltaMinus
        13: .line 385
      StackMap locals: double double int long long top long long
      StackMap stack:
            lload 10 /* deltaPlus */
            iload 4 /* maxUlps */
            i2l
            lcmp
            ifle 16
        14: .line 386
            iconst_0
            istore 9 /* isEqual */
        start local 9 // boolean isEqual
        15: .line 387
            goto 19
        end local 9 // boolean isEqual
        16: .line 388
      StackMap locals:
      StackMap stack:
            lload 12 /* deltaMinus */
            iload 4 /* maxUlps */
            i2l
            lload 10 /* deltaPlus */
            lsub
            lcmp
            ifgt 17
            iconst_1
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 9 /* isEqual */
        end local 12 // long deltaMinus
        end local 10 // long deltaPlus
        start local 9 // boolean isEqual
        19: .line 393
      StackMap locals: double double int long long int
      StackMap stack:
            iload 9 /* isEqual */
            ifeq 20
            dload 0 /* x */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 20
            dload 2 /* y */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 20
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        20: iconst_0
            ireturn
        end local 9 // boolean isEqual
        end local 7 // long yInt
        end local 5 // long xInt
        end local 4 // int maxUlps
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0           x  D
            0   21     2           y  D
            0   21     4     maxUlps  I
            1   21     5        xInt  J
            2   21     7        yInt  J
            6    7     9     isEqual  Z
           15   16     9     isEqual  Z
           19   21     9     isEqual  Z
            9   11    10   deltaPlus  J
           12   19    10   deltaPlus  J
           10   11    12  deltaMinus  J
           13   19    12  deltaMinus  J
    MethodParameters:
         Name  Flags
      x        final
      y        final
      maxUlps  final

  public static boolean equalsIncludingNaN(double, double, int);
    descriptor: (DDI)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // int maxUlps
         0: .line 410
            dload 0 /* x */
            dload 0 /* x */
            dcmpl
            ifne 1
            dload 2 /* y */
            dload 2 /* y */
            dcmpl
            ifeq 7
      StackMap locals:
      StackMap stack:
         1: dload 0 /* x */
            dload 0 /* x */
            dcmpl
            ifeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: dload 2 /* y */
            dload 2 /* y */
            dcmpl
            ifeq 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: int
         4: iconst_0
      StackMap locals: double double int
      StackMap stack: int int
         5: ixor
            ifeq 6
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         6: iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: dload 0 /* x */
            dload 2 /* y */
            iload 4 /* maxUlps */
            invokestatic org.apache.commons.math3.util.Precision.equals:(DDI)Z
      StackMap locals:
      StackMap stack: int
         8: ireturn
        end local 4 // int maxUlps
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0        x  D
            0    9     2        y  D
            0    9     4  maxUlps  I
    MethodParameters:
         Name  Flags
      x        
      y        
      maxUlps  

  public static double round(double, int);
    descriptor: (DI)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // double x
        start local 2 // int scale
         0: .line 423
            dload 0 /* x */
            iload 2 /* scale */
            iconst_4
            invokestatic org.apache.commons.math3.util.Precision.round:(DII)D
            dreturn
        end local 2 // int scale
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  D
            0    1     2  scale  I
    MethodParameters:
       Name  Flags
      x      
      scale  

  public static double round(double, int, int);
    descriptor: (DII)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // double x
        start local 2 // int scale
        start local 3 // int roundingMethod
         0: .line 445
            new java.math.BigDecimal
            dup
            dload 0 /* x */
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            invokespecial java.math.BigDecimal.<init>:(Ljava/lang/String;)V
         1: .line 446
            iload 2 /* scale */
            iload 3 /* roundingMethod */
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
         2: .line 447
            invokevirtual java.math.BigDecimal.doubleValue:()D
         3: .line 445
            dstore 4 /* rounded */
        start local 4 // double rounded
         4: .line 449
            dload 4 /* rounded */
            dconst_0
            dcmpl
            ifne 5
            dconst_0
            dload 0 /* x */
            dmul
            goto 6
      StackMap locals: double
      StackMap stack:
         5: dload 4 /* rounded */
      StackMap locals:
      StackMap stack: double
         6: dreturn
        end local 4 // double rounded
         7: .line 450
      StackMap locals: double int int
      StackMap stack: java.lang.NumberFormatException
            pop
         8: .line 451
            dload 0 /* x */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifeq 10
         9: .line 452
            dload 0 /* x */
            dreturn
        10: .line 454
      StackMap locals:
      StackMap stack:
            ldc NaN
            dreturn
        end local 3 // int roundingMethod
        end local 2 // int scale
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0               x  D
            0   11     2           scale  I
            0   11     3  roundingMethod  I
            4    7     4         rounded  D
      Exception table:
        from    to  target  type
           0     6       7  Class java.lang.NumberFormatException
    MethodParameters:
                Name  Flags
      x               
      scale           
      roundingMethod  

  public static float round(float, int);
    descriptor: (FI)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // float x
        start local 1 // int scale
         0: .line 469
            fload 0 /* x */
            iload 1 /* scale */
            iconst_4
            invokestatic org.apache.commons.math3.util.Precision.round:(FII)F
            freturn
        end local 1 // int scale
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  F
            0    1     1  scale  I
    MethodParameters:
       Name  Flags
      x      
      scale  

  public static float round(float, int, int);
    descriptor: (FII)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // float x
        start local 1 // int scale
        start local 2 // int roundingMethod
         0: .line 487
            fconst_1
            fload 0 /* x */
            invokestatic org.apache.commons.math3.util.FastMath.copySign:(FF)F
            fstore 3 /* sign */
        start local 3 // float sign
         1: .line 488
            ldc 10.0
            iload 1 /* scale */
            invokestatic org.apache.commons.math3.util.FastMath.pow:(DI)D
            d2f
            fload 3 /* sign */
            fmul
            fstore 4 /* factor */
        start local 4 // float factor
         2: .line 489
            fload 0 /* x */
            fload 4 /* factor */
            fmul
            f2d
            fload 3 /* sign */
            f2d
            iload 2 /* roundingMethod */
            invokestatic org.apache.commons.math3.util.Precision.roundUnscaled:(DDI)D
            d2f
            fload 4 /* factor */
            fdiv
            freturn
        end local 4 // float factor
        end local 3 // float sign
        end local 2 // int roundingMethod
        end local 1 // int scale
        end local 0 // float x
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0               x  F
            0    3     1           scale  I
            0    3     2  roundingMethod  I
            1    3     3            sign  F
            2    3     4          factor  F
    Exceptions:
      throws org.apache.commons.math3.exception.MathArithmeticException, org.apache.commons.math3.exception.MathIllegalArgumentException
    MethodParameters:
                Name  Flags
      x               
      scale           
      roundingMethod  

  private static double roundUnscaled(double, double, int);
    descriptor: (DDI)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // double unscaled
        start local 2 // double sign
        start local 4 // int roundingMethod
         0: .line 509
            iload 4 /* roundingMethod */
            tableswitch { // 0 - 7
                    0: 41
                    1: 6
                    2: 1
                    3: 8
                    4: 32
                    5: 13
                    6: 20
                    7: 39
              default: 44
          }
         1: .line 511
      StackMap locals:
      StackMap stack:
            dload 2 /* sign */
            ldc -1.0
            dcmpl
            ifne 4
         2: .line 512
            dload 0 /* unscaled */
            ldc -Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dstore 0 /* unscaled */
         3: .line 513
            goto 55
         4: .line 514
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            ldc Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            invokestatic org.apache.commons.math3.util.FastMath.ceil:(D)D
            dstore 0 /* unscaled */
         5: .line 516
            goto 55
         6: .line 518
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            ldc -Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dstore 0 /* unscaled */
         7: .line 519
            goto 55
         8: .line 521
      StackMap locals:
      StackMap stack:
            dload 2 /* sign */
            ldc -1.0
            dcmpl
            ifne 11
         9: .line 522
            dload 0 /* unscaled */
            ldc Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            invokestatic org.apache.commons.math3.util.FastMath.ceil:(D)D
            dstore 0 /* unscaled */
        10: .line 523
            goto 55
        11: .line 524
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            ldc -Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dstore 0 /* unscaled */
        12: .line 526
            goto 55
        13: .line 528
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            ldc -Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            dstore 0 /* unscaled */
        14: .line 529
            dload 0 /* unscaled */
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dsub
            dstore 5 /* fraction */
        start local 5 // double fraction
        15: .line 530
            dload 5 /* fraction */
            ldc 0.5
            dcmpl
            ifle 18
        16: .line 531
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.ceil:(D)D
            dstore 0 /* unscaled */
        17: .line 532
            goto 55
        18: .line 533
      StackMap locals: double
      StackMap stack:
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dstore 0 /* unscaled */
        19: .line 535
            goto 55
        end local 5 // double fraction
        20: .line 538
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dsub
            dstore 5 /* fraction */
        start local 5 // double fraction
        21: .line 539
            dload 5 /* fraction */
            ldc 0.5
            dcmpl
            ifle 24
        22: .line 540
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.ceil:(D)D
            dstore 0 /* unscaled */
        23: .line 541
            goto 55
      StackMap locals: double
      StackMap stack:
        24: dload 5 /* fraction */
            ldc 0.5
            dcmpg
            ifge 27
        25: .line 542
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dstore 0 /* unscaled */
        26: .line 543
            goto 55
        27: .line 545
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            ldc 2.0
            ddiv
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            ldc 2.0
            ddiv
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dcmpl
            ifne 30
        28: .line 546
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dstore 0 /* unscaled */
        29: .line 547
            goto 55
        30: .line 548
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.ceil:(D)D
            dstore 0 /* unscaled */
        31: .line 551
            goto 55
        end local 5 // double fraction
        32: .line 554
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            ldc Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            dstore 0 /* unscaled */
        33: .line 555
            dload 0 /* unscaled */
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dsub
            dstore 5 /* fraction */
        start local 5 // double fraction
        34: .line 556
            dload 5 /* fraction */
            ldc 0.5
            dcmpl
            iflt 37
        35: .line 557
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.ceil:(D)D
            dstore 0 /* unscaled */
        36: .line 558
            goto 55
        37: .line 559
      StackMap locals: double
      StackMap stack:
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dstore 0 /* unscaled */
        38: .line 561
            goto 55
        end local 5 // double fraction
        39: .line 564
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dcmpl
            ifeq 55
        40: .line 565
            new org.apache.commons.math3.exception.MathArithmeticException
            dup
            invokespecial org.apache.commons.math3.exception.MathArithmeticException.<init>:()V
            athrow
        41: .line 570
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            dload 0 /* unscaled */
            invokestatic org.apache.commons.math3.util.FastMath.floor:(D)D
            dcmpl
            ifeq 55
        42: .line 571
            dload 0 /* unscaled */
            ldc Infinity
            invokestatic org.apache.commons.math3.util.FastMath.nextAfter:(DD)D
            invokestatic org.apache.commons.math3.util.FastMath.ceil:(D)D
            dstore 0 /* unscaled */
        43: .line 573
            goto 55
        44: .line 575
      StackMap locals:
      StackMap stack:
            new org.apache.commons.math3.exception.MathIllegalArgumentException
            dup
            getstatic org.apache.commons.math3.exception.util.LocalizedFormats.INVALID_ROUNDING_METHOD:Lorg/apache/commons/math3/exception/util/LocalizedFormats;
            bipush 17
            anewarray java.lang.Object
            dup
            iconst_0
        45: .line 576
            iload 4 /* roundingMethod */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
        46: .line 577
            ldc "ROUND_CEILING"
            aastore
            dup
            iconst_2
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
        47: .line 578
            ldc "ROUND_DOWN"
            aastore
            dup
            iconst_4
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_5
        48: .line 579
            ldc "ROUND_FLOOR"
            aastore
            dup
            bipush 6
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 7
        49: .line 580
            ldc "ROUND_HALF_DOWN"
            aastore
            dup
            bipush 8
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 9
        50: .line 581
            ldc "ROUND_HALF_EVEN"
            aastore
            dup
            bipush 10
            bipush 6
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 11
        51: .line 582
            ldc "ROUND_HALF_UP"
            aastore
            dup
            bipush 12
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 13
        52: .line 583
            ldc "ROUND_UNNECESSARY"
            aastore
            dup
            bipush 14
            bipush 7
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 15
        53: .line 584
            ldc "ROUND_UP"
            aastore
            dup
            bipush 16
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        54: .line 575
            aastore
            invokespecial org.apache.commons.math3.exception.MathIllegalArgumentException.<init>:(Lorg/apache/commons/math3/exception/util/Localizable;[Ljava/lang/Object;)V
            athrow
        55: .line 586
      StackMap locals:
      StackMap stack:
            dload 0 /* unscaled */
            dreturn
        end local 4 // int roundingMethod
        end local 2 // double sign
        end local 0 // double unscaled
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   56     0        unscaled  D
            0   56     2            sign  D
            0   56     4  roundingMethod  I
           15   20     5        fraction  D
           21   32     5        fraction  D
           34   39     5        fraction  D
    Exceptions:
      throws org.apache.commons.math3.exception.MathArithmeticException, org.apache.commons.math3.exception.MathIllegalArgumentException
    MethodParameters:
                Name  Flags
      unscaled        
      sign            
      roundingMethod  

  public static double representableDelta(double, double);
    descriptor: (DD)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // double x
        start local 2 // double originalDelta
         0: .line 606
            dload 0 /* x */
            dload 2 /* originalDelta */
            dadd
            dload 0 /* x */
            dsub
            dreturn
        end local 2 // double originalDelta
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0              x  D
            0    1     2  originalDelta  D
    MethodParameters:
               Name  Flags
      x              
      originalDelta  
}
SourceFile: "Precision.java"