public final class org.apache.xmlgraphics.util.DoubleFormatUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.xmlgraphics.util.DoubleFormatUtil
  super_class: java.lang.Object
{
  private static final long[] POWERS_OF_TEN_LONG;
    descriptor: [J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double[] POWERS_OF_TEN_DOUBLE;
    descriptor: [D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 45
            ldc Lorg/apache/xmlgraphics/util/DoubleFormatUtil;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.xmlgraphics.util.DoubleFormatUtil.$assertionsDisabled:Z
         3: .line 198
            bipush 19
            newarray 11
            putstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_LONG:[J
         4: .line 199
            bipush 30
            newarray 7
            putstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_DOUBLE:[D
         5: .line 201
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_LONG:[J
            iconst_0
            lconst_1
            lastore
         6: .line 202
            iconst_1
            istore 0 /* i */
        start local 0 // int i
         7: goto 10
         8: .line 203
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_LONG:[J
            iload 0 /* i */
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_LONG:[J
            iload 0 /* i */
            iconst_1
            isub
            laload
            ldc 10
            lmul
            lastore
         9: .line 202
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 0 /* i */
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_LONG:[J
            arraylength
            if_icmplt 8
        end local 0 // int i
        11: .line 205
            iconst_0
            istore 0 /* i */
        start local 0 // int i
        12: goto 15
        13: .line 206
      StackMap locals:
      StackMap stack:
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_DOUBLE:[D
            iload 0 /* i */
            new java.lang.StringBuilder
            dup
            ldc "1e"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dastore
        14: .line 205
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 0 /* i */
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_DOUBLE:[D
            arraylength
            if_icmplt 13
        end local 0 // int i
        16: .line 208
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            7   11     0     i  I
           12   16     0     i  I

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

  public static void formatDouble(double, int, int, java.lang.StringBuffer);
    descriptor: (DIILjava/lang/StringBuffer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // double source
        start local 2 // int decimals
        start local 3 // int precision
        start local 4 // java.lang.StringBuffer target
         0: .line 60
            dload 0 /* source */
            invokestatic java.lang.Math.abs:(D)D
            dconst_1
            dcmpl
            iflt 1
            iload 2 /* decimals */
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 3 /* precision */
      StackMap locals:
      StackMap stack: int
         2: istore 5 /* scale */
        start local 5 // int scale
         3: .line 61
            dload 0 /* source */
            iload 5 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tooManyDigitsUsed:(DI)Z
            ifne 4
            dload 0 /* source */
            iload 5 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tooCloseToRound:(DI)Z
            ifeq 6
         4: .line 62
      StackMap locals: int
      StackMap stack:
            dload 0 /* source */
            iload 2 /* decimals */
            iload 3 /* precision */
            aload 4 /* target */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.formatDoublePrecise:(DIILjava/lang/StringBuffer;)V
         5: .line 63
            goto 7
         6: .line 64
      StackMap locals:
      StackMap stack:
            dload 0 /* source */
            iload 2 /* decimals */
            iload 3 /* precision */
            aload 4 /* target */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.formatDoubleFast:(DIILjava/lang/StringBuffer;)V
         7: .line 66
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int scale
        end local 4 // java.lang.StringBuffer target
        end local 3 // int precision
        end local 2 // int decimals
        end local 0 // double source
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0     source  D
            0    8     2   decimals  I
            0    8     3  precision  I
            0    8     4     target  Ljava/lang/StringBuffer;
            3    8     5      scale  I
    MethodParameters:
           Name  Flags
      source     
      decimals   
      precision  
      target     

  public static void formatDoublePrecise(double, int, int, java.lang.StringBuffer);
    descriptor: (DIILjava/lang/StringBuffer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=19, args_size=4
        start local 0 // double source
        start local 2 // int decimals
        start local 3 // int precision
        start local 4 // java.lang.StringBuffer target
         0: .line 81
            dload 0 /* source */
            iload 2 /* decimals */
            iload 3 /* precision */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.isRoundedToZero:(DII)Z
            ifeq 3
         1: .line 83
            aload 4 /* target */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         2: .line 84
            return
         3: .line 85
      StackMap locals:
      StackMap stack:
            dload 0 /* source */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 4
            dload 0 /* source */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifeq 6
         4: .line 87
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            dload 0 /* source */
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 88
            return
         6: .line 91
      StackMap locals:
      StackMap stack:
            dload 0 /* source */
            dconst_0
            dcmpg
            ifge 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 5 /* negative */
        start local 5 // boolean negative
         9: .line 92
            iload 5 /* negative */
            ifeq 12
        10: .line 93
            dload 0 /* source */
            dneg
            dstore 0 /* source */
        11: .line 95
            aload 4 /* target */
            bipush 45
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        12: .line 97
      StackMap locals: int
      StackMap stack:
            dload 0 /* source */
            dconst_1
            dcmpl
            iflt 13
            iload 2 /* decimals */
            goto 14
      StackMap locals:
      StackMap stack:
        13: iload 3 /* precision */
      StackMap locals:
      StackMap stack: int
        14: istore 6 /* scale */
        start local 6 // int scale
        15: .line 101
            dload 0 /* source */
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            astore 7 /* s */
        start local 7 // java.lang.String s
        16: .line 102
            dload 0 /* source */
            ldc 0.001
            dcmpl
            iflt 38
            dload 0 /* source */
            ldc 1.0E7
            dcmpg
            ifge 38
        17: .line 104
            aload 7 /* s */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            istore 8 /* dot */
        start local 8 // int dot
        18: .line 105
            aload 7 /* s */
            iload 8 /* dot */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 9 /* decS */
        start local 9 // java.lang.String decS
        19: .line 106
            aload 9 /* decS */
            invokevirtual java.lang.String.length:()I
            istore 10 /* decLength */
        start local 10 // int decLength
        20: .line 107
            iload 6 /* scale */
            iload 10 /* decLength */
            if_icmplt 31
        21: .line 108
            ldc "0"
            aload 9 /* decS */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 24
        22: .line 110
            aload 4 /* target */
            aload 7 /* s */
            iconst_0
            iload 8 /* dot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        23: .line 111
            goto 30
        24: .line 112
      StackMap locals: double int int java.lang.StringBuffer int int java.lang.String int java.lang.String int
      StackMap stack:
            aload 4 /* target */
            aload 7 /* s */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        25: .line 114
            aload 4 /* target */
            invokevirtual java.lang.StringBuffer.length:()I
            iconst_1
            isub
            istore 11 /* l */
        start local 11 // int l
        26: goto 29
        27: .line 115
      StackMap locals: int
      StackMap stack:
            aload 4 /* target */
            iload 11 /* l */
            invokevirtual java.lang.StringBuffer.setLength:(I)V
        28: .line 114
            iinc 11 /* l */ -1
      StackMap locals:
      StackMap stack:
        29: iload 11 /* l */
            iflt 30
            aload 4 /* target */
            iload 11 /* l */
            invokevirtual java.lang.StringBuffer.charAt:(I)C
            bipush 48
            if_icmpeq 27
        end local 11 // int l
        30: .line 118
      StackMap locals:
      StackMap stack:
            return
        31: .line 119
      StackMap locals:
      StackMap stack:
            iload 6 /* scale */
            iconst_1
            iadd
            iload 10 /* decLength */
            if_icmpge 34
        32: .line 121
            iload 6 /* scale */
            iconst_1
            iadd
            istore 10 /* decLength */
        33: .line 122
            aload 9 /* decS */
            iconst_0
            iload 10 /* decLength */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* decS */
        34: .line 124
      StackMap locals:
      StackMap stack:
            aload 7 /* s */
            iconst_0
            iload 8 /* dot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 11 /* intP */
        start local 11 // long intP
        35: .line 125
            aload 9 /* decS */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 13 /* decP */
        start local 13 // long decP
        36: .line 126
            aload 4 /* target */
            iload 6 /* scale */
            lload 11 /* intP */
            lload 13 /* decP */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.format:(Ljava/lang/StringBuffer;IJJ)V
        end local 13 // long decP
        end local 11 // long intP
        end local 10 // int decLength
        end local 9 // java.lang.String decS
        end local 8 // int dot
        37: .line 127
            goto 83
        38: .line 129
      StackMap locals:
      StackMap stack:
            aload 7 /* s */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            istore 8 /* dot */
        start local 8 // int dot
        39: .line 130
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.$assertionsDisabled:Z
            ifne 40
            iload 8 /* dot */
            ifge 40
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        40: .line 131
      StackMap locals: int
      StackMap stack:
            aload 7 /* s */
            bipush 69
            invokevirtual java.lang.String.indexOf:(I)I
            istore 9 /* exp */
        start local 9 // int exp
        41: .line 132
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.$assertionsDisabled:Z
            ifne 42
            iload 9 /* exp */
            ifge 42
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        42: .line 133
      StackMap locals: int
      StackMap stack:
            aload 7 /* s */
            iload 9 /* exp */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 10 /* exposant */
        start local 10 // int exposant
        43: .line 134
            aload 7 /* s */
            iconst_0
            iload 8 /* dot */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* intS */
        start local 11 // java.lang.String intS
        44: .line 135
            aload 7 /* s */
            iload 8 /* dot */
            iconst_1
            iadd
            iload 9 /* exp */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 12 /* decS */
        start local 12 // java.lang.String decS
        45: .line 136
            aload 12 /* decS */
            invokevirtual java.lang.String.length:()I
            istore 13 /* decLength */
        start local 13 // int decLength
        46: .line 137
            iload 10 /* exposant */
            iflt 67
        47: .line 138
            iload 13 /* decLength */
            iload 10 /* exposant */
            isub
            istore 14 /* digits */
        start local 14 // int digits
        48: .line 139
            iload 14 /* digits */
            ifgt 57
        49: .line 142
            aload 4 /* target */
            aload 11 /* intS */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        50: .line 143
            aload 4 /* target */
            aload 12 /* decS */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        51: .line 144
            iload 14 /* digits */
            ineg
            istore 15 /* i */
        start local 15 // int i
        52: goto 55
        53: .line 145
      StackMap locals: double int int java.lang.StringBuffer int int java.lang.String int int int java.lang.String java.lang.String int int int
      StackMap stack:
            aload 4 /* target */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        54: .line 144
            iinc 15 /* i */ -1
      StackMap locals:
      StackMap stack:
        55: iload 15 /* i */
            ifgt 53
        end local 15 // int i
        56: .line 147
            goto 83
      StackMap locals:
      StackMap stack:
        57: iload 14 /* digits */
            iload 6 /* scale */
            if_icmpgt 63
        58: .line 150
            aload 4 /* target */
            aload 11 /* intS */
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        59: .line 151
            aload 4 /* target */
            aload 12 /* decS */
            iconst_0
            iload 10 /* exposant */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        60: .line 152
            aload 4 /* target */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        61: .line 153
            aload 4 /* target */
            aload 12 /* decS */
            iload 10 /* exposant */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        62: .line 154
            goto 83
        63: .line 157
      StackMap locals:
      StackMap stack:
            aload 11 /* intS */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            iload 10 /* exposant */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPow:(I)J
            lmul
            aload 12 /* decS */
            iconst_0
            iload 10 /* exposant */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            ladd
            lstore 15 /* intP */
        start local 15 // long intP
        64: .line 158
            aload 12 /* decS */
            iload 10 /* exposant */
            iload 10 /* exposant */
            iload 6 /* scale */
            iadd
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 17 /* decP */
        start local 17 // long decP
        65: .line 159
            aload 4 /* target */
            iload 6 /* scale */
            lload 15 /* intP */
            lload 17 /* decP */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.format:(Ljava/lang/StringBuffer;IJJ)V
        end local 17 // long decP
        end local 15 // long intP
        end local 14 // int digits
        66: .line 161
            goto 83
        67: .line 163
      StackMap locals:
      StackMap stack:
            iload 10 /* exposant */
            ineg
            istore 10 /* exposant */
        68: .line 164
            iload 6 /* scale */
            iload 10 /* exposant */
            isub
            iconst_1
            iadd
            istore 14 /* digits */
        start local 14 // int digits
        69: .line 165
            iload 14 /* digits */
            ifge 72
        70: .line 166
            aload 4 /* target */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        71: .line 167
            goto 83
      StackMap locals: int
      StackMap stack:
        72: iload 14 /* digits */
            ifne 76
        73: .line 168
            aload 11 /* intS */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 15 /* decP */
        start local 15 // long decP
        74: .line 169
            aload 4 /* target */
            iload 6 /* scale */
            lconst_0
            lload 15 /* decP */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.format:(Ljava/lang/StringBuffer;IJJ)V
        end local 15 // long decP
        75: .line 170
            goto 83
      StackMap locals:
      StackMap stack:
        76: iload 13 /* decLength */
            iload 14 /* digits */
            if_icmpge 80
        77: .line 171
            aload 11 /* intS */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            iload 13 /* decLength */
            iconst_1
            iadd
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPow:(I)J
            lmul
            aload 12 /* decS */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            ldc 10
            lmul
            ladd
            lstore 15 /* decP */
        start local 15 // long decP
        78: .line 172
            aload 4 /* target */
            iload 10 /* exposant */
            iload 13 /* decLength */
            iadd
            lconst_0
            lload 15 /* decP */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.format:(Ljava/lang/StringBuffer;IJJ)V
        end local 15 // long decP
        79: .line 173
            goto 83
        80: .line 174
      StackMap locals:
      StackMap stack:
            aload 12 /* decS */
            iconst_0
            iload 14 /* digits */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 15 /* subDecP */
        start local 15 // long subDecP
        81: .line 175
            aload 11 /* intS */
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            iload 14 /* digits */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPow:(I)J
            lmul
            lload 15 /* subDecP */
            ladd
            lstore 17 /* decP */
        start local 17 // long decP
        82: .line 176
            aload 4 /* target */
            iload 6 /* scale */
            lconst_0
            lload 17 /* decP */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.format:(Ljava/lang/StringBuffer;IJJ)V
        end local 17 // long decP
        end local 15 // long subDecP
        end local 14 // int digits
        end local 13 // int decLength
        end local 12 // java.lang.String decS
        end local 11 // java.lang.String intS
        end local 10 // int exposant
        end local 9 // int exp
        end local 8 // int dot
        83: .line 180
      StackMap locals: double int int java.lang.StringBuffer int int java.lang.String
      StackMap stack:
            return
        end local 7 // java.lang.String s
        end local 6 // int scale
        end local 5 // boolean negative
        end local 4 // java.lang.StringBuffer target
        end local 3 // int precision
        end local 2 // int decimals
        end local 0 // double source
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   84     0     source  D
            0   84     2   decimals  I
            0   84     3  precision  I
            0   84     4     target  Ljava/lang/StringBuffer;
            9   84     5   negative  Z
           15   84     6      scale  I
           16   84     7          s  Ljava/lang/String;
           18   37     8        dot  I
           19   37     9       decS  Ljava/lang/String;
           20   37    10  decLength  I
           26   30    11          l  I
           35   37    11       intP  J
           36   37    13       decP  J
           39   83     8        dot  I
           41   83     9        exp  I
           43   83    10   exposant  I
           44   83    11       intS  Ljava/lang/String;
           45   83    12       decS  Ljava/lang/String;
           46   83    13  decLength  I
           48   66    14     digits  I
           52   56    15          i  I
           64   66    15       intP  J
           65   66    17       decP  J
           69   83    14     digits  I
           74   75    15       decP  J
           78   79    15       decP  J
           81   83    15    subDecP  J
           82   83    17       decP  J
    MethodParameters:
           Name  Flags
      source     
      decimals   
      precision  
      target     

  private static boolean isRoundedToZero(double, int, int);
    descriptor: (DII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // double source
        start local 2 // int decimals
        start local 3 // int precision
         0: .line 192
            dload 0 /* source */
            dconst_0
            dcmpl
            ifeq 1
            dload 0 /* source */
            invokestatic java.lang.Math.abs:(D)D
            ldc 4.999999999999999
            iload 2 /* decimals */
            iload 3 /* precision */
            invokestatic java.lang.Math.max:(II)I
            iconst_1
            iadd
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPowDouble:(I)D
            ddiv
            dcmpg
            iflt 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 3 // int precision
        end local 2 // int decimals
        end local 0 // double source
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0     source  D
            0    2     2   decimals  I
            0    2     3  precision  I
    MethodParameters:
           Name  Flags
      source     
      decimals   
      precision  

  public static long tenPow(int);
    descriptor: (I)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int n
         0: .line 217
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.$assertionsDisabled:Z
            ifne 1
            iload 0 /* n */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 218
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_LONG:[J
            arraylength
            if_icmpge 2
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_LONG:[J
            iload 0 /* n */
            laload
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc 10.0
            iload 0 /* n */
            i2d
            invokestatic java.lang.Math.pow:(DD)D
            d2l
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     n  I
    MethodParameters:
      Name  Flags
      n     

  private static double tenPowDouble(int);
    descriptor: (I)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int n
         0: .line 222
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.$assertionsDisabled:Z
            ifne 1
            iload 0 /* n */
            ifge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 223
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_DOUBLE:[D
            arraylength
            if_icmpge 2
            getstatic org.apache.xmlgraphics.util.DoubleFormatUtil.POWERS_OF_TEN_DOUBLE:[D
            iload 0 /* n */
            daload
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc 10.0
            iload 0 /* n */
            i2d
            invokestatic java.lang.Math.pow:(DD)D
      StackMap locals:
      StackMap stack: double
         3: dreturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     n  I
    MethodParameters:
      Name  Flags
      n     

  private static void format(java.lang.StringBuffer, int, long, long);
    descriptor: (Ljava/lang/StringBuffer;IJJ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.StringBuffer target
        start local 1 // int scale
        start local 2 // long intP
        start local 4 // long decP
         0: .line 235
            lload 4 /* decP */
            lconst_0
            lcmp
            ifeq 11
         1: .line 238
            lload 4 /* decP */
            ldc 5
            ladd
            lstore 4 /* decP */
         2: .line 239
            lload 4 /* decP */
            ldc 10
            ldiv
            lstore 4 /* decP */
         3: .line 240
            lload 4 /* decP */
            l2d
            iload 1 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPowDouble:(I)D
            dcmpl
            iflt 6
         4: .line 241
            lload 2 /* intP */
            lconst_1
            ladd
            lstore 2 /* intP */
         5: .line 242
            lload 4 /* decP */
            iload 1 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPow:(I)J
            lsub
            lstore 4 /* decP */
         6: .line 244
      StackMap locals:
      StackMap stack:
            lload 4 /* decP */
            lconst_0
            lcmp
            ifeq 11
         7: .line 246
            goto 10
         8: .line 247
      StackMap locals:
      StackMap stack:
            lload 4 /* decP */
            ldc 10
            ldiv
            lstore 4 /* decP */
         9: .line 248
            iinc 1 /* scale */ -1
        10: .line 246
      StackMap locals:
      StackMap stack:
            lload 4 /* decP */
            ldc 10
            lrem
            lconst_0
            lcmp
            ifeq 8
        11: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            lload 2 /* intP */
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
        12: .line 253
            lload 4 /* decP */
            lconst_0
            lcmp
            ifeq 19
        13: .line 254
            aload 0 /* target */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        14: .line 259
            goto 16
        15: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        16: .line 259
      StackMap locals:
      StackMap stack:
            iload 1 /* scale */
            ifle 18
            iload 1 /* scale */
            bipush 18
            if_icmple 17
            lload 4 /* decP */
            l2d
            iinc 1 /* scale */ -1
            iload 1 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPowDouble:(I)D
            dcmpg
            iflt 15
            goto 18
      StackMap locals:
      StackMap stack:
        17: lload 4 /* decP */
            iinc 1 /* scale */ -1
            iload 1 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPow:(I)J
            lcmp
            iflt 15
        18: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* target */
            lload 4 /* decP */
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
        19: .line 265
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long decP
        end local 2 // long intP
        end local 1 // int scale
        end local 0 // java.lang.StringBuffer target
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0  target  Ljava/lang/StringBuffer;
            0   20     1   scale  I
            0   20     2    intP  J
            0   20     4    decP  J
    MethodParameters:
        Name  Flags
      target  
      scale   
      intP    
      decP    

  public static void formatDoubleFast(double, int, int, java.lang.StringBuffer);
    descriptor: (DIILjava/lang/StringBuffer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=4
        start local 0 // double source
        start local 2 // int decimals
        start local 3 // int precision
        start local 4 // java.lang.StringBuffer target
         0: .line 280
            dload 0 /* source */
            iload 2 /* decimals */
            iload 3 /* precision */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.isRoundedToZero:(DII)Z
            ifeq 3
         1: .line 282
            aload 4 /* target */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         2: .line 283
            return
         3: .line 284
      StackMap locals:
      StackMap stack:
            dload 0 /* source */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifne 4
            dload 0 /* source */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifeq 6
         4: .line 286
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            dload 0 /* source */
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         5: .line 287
            return
         6: .line 290
      StackMap locals:
      StackMap stack:
            dload 0 /* source */
            dconst_0
            dcmpl
            iflt 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 5 /* isPositive */
        start local 5 // boolean isPositive
         9: .line 291
            dload 0 /* source */
            invokestatic java.lang.Math.abs:(D)D
            dstore 0 /* source */
        10: .line 292
            dload 0 /* source */
            dconst_1
            dcmpl
            iflt 11
            iload 2 /* decimals */
            goto 12
      StackMap locals: int
      StackMap stack:
        11: iload 3 /* precision */
      StackMap locals:
      StackMap stack: int
        12: istore 6 /* scale */
        start local 6 // int scale
        13: .line 294
            dload 0 /* source */
            invokestatic java.lang.Math.floor:(D)D
            d2l
            lstore 7 /* intPart */
        start local 7 // long intPart
        14: .line 295
            iload 6 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPowDouble:(I)D
            dstore 9 /* tenScale */
        start local 9 // double tenScale
        15: .line 296
            dload 0 /* source */
            lload 7 /* intPart */
            l2d
            dsub
            dload 9 /* tenScale */
            dmul
            dstore 11 /* fracUnroundedPart */
        start local 11 // double fracUnroundedPart
        16: .line 297
            dload 11 /* fracUnroundedPart */
            invokestatic java.lang.Math.round:(D)J
            lstore 13 /* fracPart */
        start local 13 // long fracPart
        17: .line 298
            lload 13 /* fracPart */
            l2d
            dload 9 /* tenScale */
            dcmpl
            iflt 20
        18: .line 299
            lload 7 /* intPart */
            lconst_1
            ladd
            lstore 7 /* intPart */
        19: .line 300
            lload 13 /* fracPart */
            l2d
            dload 9 /* tenScale */
            dsub
            invokestatic java.lang.Math.round:(D)J
            lstore 13 /* fracPart */
        20: .line 302
      StackMap locals: double int int java.lang.StringBuffer int int long double double long
      StackMap stack:
            lload 13 /* fracPart */
            lconst_0
            lcmp
            ifeq 25
        21: .line 304
            goto 24
        22: .line 305
      StackMap locals:
      StackMap stack:
            lload 13 /* fracPart */
            ldc 10
            ldiv
            lstore 13 /* fracPart */
        23: .line 306
            iinc 6 /* scale */ -1
        24: .line 304
      StackMap locals:
      StackMap stack:
            lload 13 /* fracPart */
            ldc 10
            lrem
            lconst_0
            lcmp
            ifeq 22
        25: .line 310
      StackMap locals:
      StackMap stack:
            lload 7 /* intPart */
            lconst_0
            lcmp
            ifne 26
            lload 13 /* fracPart */
            lconst_0
            lcmp
            ifeq 36
        26: .line 312
      StackMap locals:
      StackMap stack:
            iload 5 /* isPositive */
            ifne 28
        27: .line 314
            aload 4 /* target */
            bipush 45
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        28: .line 317
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            lload 7 /* intPart */
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
        29: .line 318
            lload 13 /* fracPart */
            lconst_0
            lcmp
            ifeq 37
        30: .line 320
            aload 4 /* target */
            bipush 46
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        31: .line 322
            goto 33
        32: .line 323
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        33: .line 322
      StackMap locals:
      StackMap stack:
            iload 6 /* scale */
            ifle 34
            lload 13 /* fracPart */
            l2d
            iinc 6 /* scale */ -1
            iload 6 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPowDouble:(I)D
            dcmpg
            iflt 32
        34: .line 325
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            lload 13 /* fracPart */
            invokevirtual java.lang.StringBuffer.append:(J)Ljava/lang/StringBuffer;
            pop
        35: .line 327
            goto 37
        36: .line 328
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            bipush 48
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
        37: .line 330
      StackMap locals:
      StackMap stack:
            return
        end local 13 // long fracPart
        end local 11 // double fracUnroundedPart
        end local 9 // double tenScale
        end local 7 // long intPart
        end local 6 // int scale
        end local 5 // boolean isPositive
        end local 4 // java.lang.StringBuffer target
        end local 3 // int precision
        end local 2 // int decimals
        end local 0 // double source
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   38     0             source  D
            0   38     2           decimals  I
            0   38     3          precision  I
            0   38     4             target  Ljava/lang/StringBuffer;
            9   38     5         isPositive  Z
           13   38     6              scale  I
           14   38     7            intPart  J
           15   38     9           tenScale  D
           16   38    11  fracUnroundedPart  D
           17   38    13           fracPart  J
    MethodParameters:
           Name  Flags
      source     
      decimals   
      precision  
      target     

  public static int getExponant(double);
    descriptor: (D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // double value
         0: .line 341
            dload 0 /* value */
            invokestatic java.lang.Double.doubleToRawLongBits:(D)J
            ldc 9218868437227405312
            land
            lstore 2 /* exp */
        start local 2 // long exp
         1: .line 342
            lload 2 /* exp */
            bipush 52
            lshr
            lstore 2 /* exp */
         2: .line 343
            lload 2 /* exp */
            ldc 1023
            lsub
            l2i
            ireturn
        end local 2 // long exp
        end local 0 // double value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  D
            1    3     2    exp  J
    MethodParameters:
       Name  Flags
      value  

  private static boolean tooManyDigitsUsed(double, int);
    descriptor: (DI)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // double source
        start local 2 // int scale
         0: .line 356
            dload 0 /* source */
            invokestatic java.lang.Math.log10:(D)D
            dstore 3 /* decExp */
        start local 3 // double decExp
         1: .line 357
            iload 2 /* scale */
            sipush 308
            if_icmpge 2
            dload 3 /* decExp */
            iload 2 /* scale */
            i2d
            dadd
            ldc 14.5
            dcmpl
            ifge 2
            iconst_0
            ireturn
      StackMap locals: double
      StackMap stack:
         2: iconst_1
            ireturn
        end local 3 // double decExp
        end local 2 // int scale
        end local 0 // double source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  source  D
            0    3     2   scale  I
            1    3     3  decExp  D
    MethodParameters:
        Name  Flags
      source  
      scale   

  private static boolean tooCloseToRound(double, int);
    descriptor: (DI)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=15, args_size=2
        start local 0 // double source
        start local 2 // int scale
         0: .line 369
            dload 0 /* source */
            invokestatic java.lang.Math.abs:(D)D
            dstore 0 /* source */
         1: .line 370
            dload 0 /* source */
            invokestatic java.lang.Math.floor:(D)D
            d2l
            lstore 3 /* intPart */
        start local 3 // long intPart
         2: .line 371
            dload 0 /* source */
            lload 3 /* intPart */
            l2d
            dsub
            iload 2 /* scale */
            invokestatic org.apache.xmlgraphics.util.DoubleFormatUtil.tenPowDouble:(I)D
            dmul
            dstore 5 /* fracPart */
        start local 5 // double fracPart
         3: .line 372
            dload 0 /* source */
            invokestatic java.lang.Math.log10:(D)D
            dstore 7 /* decExp */
        start local 7 // double decExp
         4: .line 373
            dload 7 /* decExp */
            iload 2 /* scale */
            i2d
            dadd
            ldc 12.0
            dcmpl
            iflt 5
            ldc 0.1
            goto 6
      StackMap locals: long double double
      StackMap stack:
         5: ldc 0.001
      StackMap locals:
      StackMap stack: double
         6: dstore 9 /* range */
        start local 9 // double range
         7: .line 374
            dload 5 /* fracPart */
            dload 5 /* fracPart */
            invokestatic java.lang.Math.floor:(D)D
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dstore 11 /* distanceToRound1 */
        start local 11 // double distanceToRound1
         8: .line 375
            dload 5 /* fracPart */
            dload 5 /* fracPart */
            invokestatic java.lang.Math.floor:(D)D
            dsub
            ldc 0.5
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dstore 13 /* distanceToRound2 */
        start local 13 // double distanceToRound2
         9: .line 376
            dload 11 /* distanceToRound1 */
            dload 9 /* range */
            dcmpg
            ifle 10
            dload 13 /* distanceToRound2 */
            dload 9 /* range */
            dcmpg
            ifle 10
            iconst_0
            ireturn
      StackMap locals: double double double
      StackMap stack:
        10: iconst_1
            ireturn
        end local 13 // double distanceToRound2
        end local 11 // double distanceToRound1
        end local 9 // double range
        end local 7 // double decExp
        end local 5 // double fracPart
        end local 3 // long intPart
        end local 2 // int scale
        end local 0 // double source
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0            source  D
            0   11     2             scale  I
            2   11     3           intPart  J
            3   11     5          fracPart  D
            4   11     7            decExp  D
            7   11     9             range  D
            8   11    11  distanceToRound1  D
            9   11    13  distanceToRound2  D
    MethodParameters:
        Name  Flags
      source  
      scale   
}
SourceFile: "DoubleFormatUtil.java"