public final class org.apache.commons.lang3.math.Fraction extends java.lang.Number implements java.lang.Comparable<org.apache.commons.lang3.math.Fraction>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.commons.lang3.math.Fraction
super_class: java.lang.Number
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65382027393090
public static final org.apache.commons.lang3.math.Fraction ZERO;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction ONE;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction ONE_HALF;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction ONE_THIRD;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction TWO_THIRDS;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction ONE_QUARTER;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction TWO_QUARTERS;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction THREE_QUARTERS;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction ONE_FIFTH;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction TWO_FIFTHS;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction THREE_FIFTHS;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final org.apache.commons.lang3.math.Fraction FOUR_FIFTHS;
descriptor: Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private final int numerator;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int denominator;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private transient int hashCode;
descriptor: I
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private transient java.lang.String toString;
descriptor: Ljava/lang/String;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private transient java.lang.String toProperString;
descriptor: Ljava/lang/String;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new org.apache.commons.lang3.math.Fraction
dup
iconst_0
iconst_1
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.ZERO:Lorg/apache/commons/lang3/math/Fraction;
1: new org.apache.commons.lang3.math.Fraction
dup
iconst_1
iconst_1
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.ONE:Lorg/apache/commons/lang3/math/Fraction;
2: new org.apache.commons.lang3.math.Fraction
dup
iconst_1
iconst_2
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.ONE_HALF:Lorg/apache/commons/lang3/math/Fraction;
3: new org.apache.commons.lang3.math.Fraction
dup
iconst_1
iconst_3
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.ONE_THIRD:Lorg/apache/commons/lang3/math/Fraction;
4: new org.apache.commons.lang3.math.Fraction
dup
iconst_2
iconst_3
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.TWO_THIRDS:Lorg/apache/commons/lang3/math/Fraction;
5: new org.apache.commons.lang3.math.Fraction
dup
iconst_1
iconst_4
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.ONE_QUARTER:Lorg/apache/commons/lang3/math/Fraction;
6: new org.apache.commons.lang3.math.Fraction
dup
iconst_2
iconst_4
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.TWO_QUARTERS:Lorg/apache/commons/lang3/math/Fraction;
7: new org.apache.commons.lang3.math.Fraction
dup
iconst_3
iconst_4
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.THREE_QUARTERS:Lorg/apache/commons/lang3/math/Fraction;
8: new org.apache.commons.lang3.math.Fraction
dup
iconst_1
iconst_5
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.ONE_FIFTH:Lorg/apache/commons/lang3/math/Fraction;
9: new org.apache.commons.lang3.math.Fraction
dup
iconst_2
iconst_5
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.TWO_FIFTHS:Lorg/apache/commons/lang3/math/Fraction;
10: new org.apache.commons.lang3.math.Fraction
dup
iconst_3
iconst_5
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.THREE_FIFTHS:Lorg/apache/commons/lang3/math/Fraction;
11: new org.apache.commons.lang3.math.Fraction
dup
iconst_4
iconst_5
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
putstatic org.apache.commons.lang3.math.Fraction.FOUR_FIFTHS:Lorg/apache/commons/lang3/math/Fraction;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
iconst_0
putfield org.apache.commons.lang3.math.Fraction.hashCode:I
2: aload 0
aconst_null
putfield org.apache.commons.lang3.math.Fraction.toString:Ljava/lang/String;
3: aload 0
aconst_null
putfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
4: aload 0
iload 1
putfield org.apache.commons.lang3.math.Fraction.numerator:I
5: aload 0
iload 2
putfield org.apache.commons.lang3.math.Fraction.denominator:I
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/lang3/math/Fraction;
0 7 1 numerator I
0 7 2 denominator I
MethodParameters:
Name Flags
numerator final
denominator final
public static org.apache.commons.lang3.math.Fraction getFraction(int, int);
descriptor: (II)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifne 2
1: new java.lang.ArithmeticException
dup
ldc "The denominator must not be zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
ifge 7
3: iload 0
ldc -2147483648
if_icmpeq 4
iload 1
ldc -2147483648
if_icmpne 5
4: StackMap locals:
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "overflow: can't negate"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iload 0
ineg
istore 0
6: iload 1
ineg
istore 1
7: StackMap locals:
StackMap stack:
new org.apache.commons.lang3.math.Fraction
dup
iload 0
iload 1
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 numerator I
0 8 1 denominator I
MethodParameters:
Name Flags
numerator
denominator
public static org.apache.commons.lang3.math.Fraction getFraction(int, int, int);
descriptor: (III)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifne 2
1: new java.lang.ArithmeticException
dup
ldc "The denominator must not be zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifge 4
3: new java.lang.ArithmeticException
dup
ldc "The denominator must not be negative"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 1
ifge 6
5: new java.lang.ArithmeticException
dup
ldc "The numerator must not be negative"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iload 0
ifge 9
7: iload 0
i2l
iload 2
i2l
lmul
iload 1
i2l
lsub
lstore 3
start local 3 8: goto 10
end local 3 9: StackMap locals:
StackMap stack:
iload 0
i2l
iload 2
i2l
lmul
iload 1
i2l
ladd
lstore 3
start local 3 10: StackMap locals: long
StackMap stack:
lload 3
ldc -2147483648
lcmp
iflt 11
lload 3
ldc 2147483647
lcmp
ifle 12
11: StackMap locals:
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "Numerator too large to represent as an Integer."
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
new org.apache.commons.lang3.math.Fraction
dup
lload 3
l2i
iload 2
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 whole I
0 13 1 numerator I
0 13 2 denominator I
8 9 3 numeratorValue J
10 13 3 numeratorValue J
MethodParameters:
Name Flags
whole final
numerator final
denominator final
public static org.apache.commons.lang3.math.Fraction getReducedFraction(int, int);
descriptor: (II)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifne 2
1: new java.lang.ArithmeticException
dup
ldc "The denominator must not be zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
ifne 4
3: getstatic org.apache.commons.lang3.math.Fraction.ZERO:Lorg/apache/commons/lang3/math/Fraction;
areturn
4: StackMap locals:
StackMap stack:
iload 1
ldc -2147483648
if_icmpne 7
iload 0
iconst_1
iand
ifne 7
5: iload 0
iconst_2
idiv
istore 0
6: iload 1
iconst_2
idiv
istore 1
7: StackMap locals:
StackMap stack:
iload 1
ifge 12
8: iload 0
ldc -2147483648
if_icmpeq 9
iload 1
ldc -2147483648
if_icmpne 10
9: StackMap locals:
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "overflow: can't negate"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
iload 0
ineg
istore 0
11: iload 1
ineg
istore 1
12: StackMap locals:
StackMap stack:
iload 0
iload 1
invokestatic org.apache.commons.lang3.math.Fraction.greatestCommonDivisor:(II)I
istore 2
start local 2 13: iload 0
iload 2
idiv
istore 0
14: iload 1
iload 2
idiv
istore 1
15: new org.apache.commons.lang3.math.Fraction
dup
iload 0
iload 1
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 numerator I
0 16 1 denominator I
13 16 2 gcd I
MethodParameters:
Name Flags
numerator
denominator
public static org.apache.commons.lang3.math.Fraction getFraction(double);
descriptor: (D)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=27, args_size=1
start local 0 0: dload 0
dconst_0
dcmpg
ifge 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: dload 0
invokestatic java.lang.Math.abs:(D)D
dstore 0
4: dload 0
ldc 2.147483647E9
dcmpl
ifgt 5
dload 0
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 6
5: StackMap locals: int
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "The value must not be greater than Integer.MAX_VALUE or NaN"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
dload 0
d2i
istore 3
start local 3 7: dload 0
iload 3
i2d
dsub
dstore 0
8: iconst_0
istore 4
start local 4 9: iconst_1
istore 5
start local 5 10: iconst_1
istore 6
start local 6 11: iconst_0
istore 7
start local 7 12: iconst_0
istore 8
start local 8 13: iconst_0
istore 9
start local 9 14: dload 0
d2i
istore 10
start local 10 15: iconst_0
istore 11
start local 11 16: dconst_1
dstore 12
start local 12 17: dconst_0
dstore 14
start local 14 18: dload 0
iload 10
i2d
dsub
dstore 16
start local 16 19: dconst_0
dstore 18
start local 18 20: ldc 1.7976931348623157E308
dstore 22
start local 22 21: iconst_1
istore 26
start local 26 22: StackMap locals: double int int int int int int int int int int double double double double top top double top top int
StackMap stack:
dload 22
dstore 20
start local 20 23: dload 12
dload 16
ddiv
d2i
istore 11
24: dload 16
dstore 14
25: dload 12
iload 11
i2d
dload 16
dmul
dsub
dstore 18
26: iload 10
iload 6
imul
iload 4
iadd
istore 8
27: iload 10
iload 7
imul
iload 5
iadd
istore 9
28: iload 8
i2d
iload 9
i2d
ddiv
dstore 24
start local 24 29: dload 0
dload 24
dsub
invokestatic java.lang.Math.abs:(D)D
dstore 22
30: iload 11
istore 10
31: dload 14
dstore 12
32: dload 18
dstore 16
33: iload 6
istore 4
34: iload 7
istore 5
35: iload 8
istore 6
36: iload 9
istore 7
37: iinc 26 1
38: dload 20
dload 22
dcmpl
ifle 40
iload 9
sipush 10000
if_icmpgt 40
iload 9
ifle 40
iload 26
bipush 25
39: if_icmplt 22
40: StackMap locals: double int int int int int int int int int int double double double double double double double int
StackMap stack:
iload 26
bipush 25
if_icmpne 42
41: new java.lang.ArithmeticException
dup
ldc "Unable to convert double to fraction"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
iload 4
iload 3
iload 5
imul
iadd
iload 2
imul
iload 5
invokestatic org.apache.commons.lang3.math.Fraction.getReducedFraction:(II)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 26 end local 24 end local 22 end local 20 end local 18 end local 16 end local 14 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 value D
3 43 2 sign I
7 43 3 wholeNumber I
9 43 4 numer0 I
10 43 5 denom0 I
11 43 6 numer1 I
12 43 7 denom1 I
13 43 8 numer2 I
14 43 9 denom2 I
15 43 10 a1 I
16 43 11 a2 I
17 43 12 x1 D
18 43 14 x2 D
19 43 16 y1 D
20 43 18 y2 D
23 43 20 delta1 D
21 43 22 delta2 D
29 43 24 fraction D
22 43 26 i I
MethodParameters:
Name Flags
value
public static org.apache.commons.lang3.math.Fraction getFraction(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "The string must not be null"
iconst_0
anewarray java.lang.Object
invokestatic org.apache.commons.lang3.Validate.isTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
bipush 46
invokevirtual java.lang.String.indexOf:(I)I
istore 1
start local 1 4: iload 1
iflt 6
5: aload 0
invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
invokestatic org.apache.commons.lang3.math.Fraction.getFraction:(D)Lorg/apache/commons/lang3/math/Fraction;
areturn
6: StackMap locals: int
StackMap stack:
aload 0
bipush 32
invokevirtual java.lang.String.indexOf:(I)I
istore 1
7: iload 1
ifle 16
8: aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
start local 2 9: aload 0
iload 1
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
10: aload 0
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
istore 1
11: iload 1
ifge 13
12: new java.lang.NumberFormatException
dup
ldc "The fraction could not be parsed as the format X Y/Z"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: int
StackMap stack:
aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
start local 3 14: aload 0
iload 1
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 4
start local 4 15: iload 2
iload 3
iload 4
invokestatic org.apache.commons.lang3.math.Fraction.getFraction:(III)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 4 end local 3 end local 2 16: StackMap locals:
StackMap stack:
aload 0
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
istore 1
17: iload 1
ifge 19
18: aload 0
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
iconst_1
invokestatic org.apache.commons.lang3.math.Fraction.getFraction:(II)Lorg/apache/commons/lang3/math/Fraction;
areturn
19: StackMap locals:
StackMap stack:
aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
start local 2 20: aload 0
iload 1
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
start local 3 21: iload 2
iload 3
invokestatic org.apache.commons.lang3.math.Fraction.getFraction:(II)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 str Ljava/lang/String;
4 22 1 pos I
9 16 2 whole I
14 16 3 numer I
15 16 4 denom I
20 22 2 numer I
21 22 3 denom I
MethodParameters:
Name Flags
str
public int getNumerator();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public int getDenominator();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public int getProperNumerator();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
irem
invokestatic java.lang.Math.abs:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public int getProperWhole();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public int intValue();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public long longValue();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
i2l
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
i2l
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public float floatValue();
descriptor: ()F
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
i2f
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
i2f
fdiv
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public double doubleValue();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
i2d
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
i2d
ddiv
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
public org.apache.commons.lang3.math.Fraction reduce();
descriptor: ()Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifne 4
1: aload 0
getstatic org.apache.commons.lang3.math.Fraction.ZERO:Lorg/apache/commons/lang3/math/Fraction;
invokevirtual org.apache.commons.lang3.math.Fraction.equals:(Ljava/lang/Object;)Z
ifeq 2
aload 0
goto 3
StackMap locals:
StackMap stack:
2: getstatic org.apache.commons.lang3.math.Fraction.ZERO:Lorg/apache/commons/lang3/math/Fraction;
StackMap locals:
StackMap stack: org.apache.commons.lang3.math.Fraction
3: areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
invokestatic java.lang.Math.abs:(I)I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
invokestatic org.apache.commons.lang3.math.Fraction.greatestCommonDivisor:(II)I
istore 1
start local 1 5: iload 1
iconst_1
if_icmpne 7
6: aload 0
areturn
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
iload 1
idiv
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
iload 1
idiv
invokestatic org.apache.commons.lang3.math.Fraction.getFraction:(II)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/commons/lang3/math/Fraction;
5 8 1 gcd I
public org.apache.commons.lang3.math.Fraction invert();
descriptor: ()Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifne 2
1: new java.lang.ArithmeticException
dup
ldc "Unable to invert zero."
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ldc -2147483648
if_icmpne 4
3: new java.lang.ArithmeticException
dup
ldc "overflow: can't negate numerator"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifge 6
5: new org.apache.commons.lang3.math.Fraction
dup
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
ineg
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ineg
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
6: StackMap locals:
StackMap stack:
new org.apache.commons.lang3.math.Fraction
dup
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/lang3/math/Fraction;
public org.apache.commons.lang3.math.Fraction negate();
descriptor: ()Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ldc -2147483648
if_icmpne 2
1: new java.lang.ArithmeticException
dup
ldc "overflow: too large to negate"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
new org.apache.commons.lang3.math.Fraction
dup
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ineg
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/lang3/math/Fraction;
public org.apache.commons.lang3.math.Fraction abs();
descriptor: ()Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
iflt 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.negate:()Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/lang3/math/Fraction;
public org.apache.commons.lang3.math.Fraction pow(int);
descriptor: (I)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
if_icmpne 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
iload 1
ifne 4
3: getstatic org.apache.commons.lang3.math.Fraction.ONE:Lorg/apache/commons/lang3/math/Fraction;
areturn
4: StackMap locals:
StackMap stack:
iload 1
ifge 8
5: iload 1
ldc -2147483648
if_icmpne 7
6: aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.invert:()Lorg/apache/commons/lang3/math/Fraction;
iconst_2
invokevirtual org.apache.commons.lang3.math.Fraction.pow:(I)Lorg/apache/commons/lang3/math/Fraction;
iload 1
iconst_2
idiv
ineg
invokevirtual org.apache.commons.lang3.math.Fraction.pow:(I)Lorg/apache/commons/lang3/math/Fraction;
areturn
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.invert:()Lorg/apache/commons/lang3/math/Fraction;
iload 1
ineg
invokevirtual org.apache.commons.lang3.math.Fraction.pow:(I)Lorg/apache/commons/lang3/math/Fraction;
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.multiplyBy:(Lorg/apache/commons/lang3/math/Fraction;)Lorg/apache/commons/lang3/math/Fraction;
astore 2
start local 2 9: iload 1
iconst_2
irem
ifne 11
10: aload 2
iload 1
iconst_2
idiv
invokevirtual org.apache.commons.lang3.math.Fraction.pow:(I)Lorg/apache/commons/lang3/math/Fraction;
areturn
11: StackMap locals: org.apache.commons.lang3.math.Fraction
StackMap stack:
aload 2
iload 1
iconst_2
idiv
invokevirtual org.apache.commons.lang3.math.Fraction.pow:(I)Lorg/apache/commons/lang3/math/Fraction;
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.multiplyBy:(Lorg/apache/commons/lang3/math/Fraction;)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/commons/lang3/math/Fraction;
0 12 1 power I
9 12 2 f Lorg/apache/commons/lang3/math/Fraction;
MethodParameters:
Name Flags
power final
private static int greatestCommonDivisor(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iload 0
ifeq 1
iload 1
ifne 4
1: StackMap locals:
StackMap stack:
iload 0
ldc -2147483648
if_icmpeq 2
iload 1
ldc -2147483648
if_icmpne 3
2: StackMap locals:
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "overflow: gcd is 2^31"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
iload 0
invokestatic java.lang.Math.abs:(I)I
iload 1
invokestatic java.lang.Math.abs:(I)I
iadd
ireturn
4: StackMap locals:
StackMap stack:
iload 0
invokestatic java.lang.Math.abs:(I)I
iconst_1
if_icmpeq 5
iload 1
invokestatic java.lang.Math.abs:(I)I
iconst_1
if_icmpne 6
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iload 0
ifle 8
7: iload 0
ineg
istore 0
8: StackMap locals:
StackMap stack:
iload 1
ifle 10
9: iload 1
ineg
istore 1
10: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 11: goto 15
12: StackMap locals: int
StackMap stack:
iload 0
iconst_2
idiv
istore 0
13: iload 1
iconst_2
idiv
istore 1
14: iinc 2 1
15: StackMap locals:
StackMap stack:
iload 0
iconst_1
iand
ifne 16
iload 1
iconst_1
iand
ifne 16
iload 2
bipush 31
if_icmplt 12
16: StackMap locals:
StackMap stack:
iload 2
bipush 31
if_icmpne 18
17: new java.lang.ArithmeticException
dup
ldc "overflow: gcd is 2^31"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
iload 0
iconst_1
iand
iconst_1
if_icmpne 19
iload 1
goto 20
StackMap locals:
StackMap stack:
19: iload 0
iconst_2
idiv
ineg
StackMap locals:
StackMap stack: int
20: istore 3
start local 3 21: goto 23
22: StackMap locals: int
StackMap stack:
iload 3
iconst_2
idiv
istore 3
23: StackMap locals:
StackMap stack:
iload 3
iconst_1
iand
ifeq 22
24: iload 3
ifle 27
25: iload 3
ineg
istore 0
26: goto 28
27: StackMap locals:
StackMap stack:
iload 3
istore 1
28: StackMap locals:
StackMap stack:
iload 1
iload 0
isub
iconst_2
idiv
istore 3
29: iload 3
ifne 23
30: iload 0
ineg
iconst_1
iload 2
ishl
imul
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 u I
0 31 1 v I
11 31 2 k I
21 31 3 t I
MethodParameters:
Name Flags
u
v
private static int mulAndCheck(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
lmul
lstore 2
start local 2 1: lload 2
ldc -2147483648
lcmp
iflt 2
lload 2
ldc 2147483647
lcmp
ifle 3
2: StackMap locals: long
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "overflow: mul"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x I
0 4 1 y I
1 4 2 m J
MethodParameters:
Name Flags
x final
y final
private static int mulPosAndCheck(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
lmul
lstore 2
start local 2 1: lload 2
ldc 2147483647
lcmp
ifle 3
2: new java.lang.ArithmeticException
dup
ldc "overflow: mulPos"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: long
StackMap stack:
lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x I
0 4 1 y I
1 4 2 m J
MethodParameters:
Name Flags
x final
y final
private static int addAndCheck(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
ladd
lstore 2
start local 2 1: lload 2
ldc -2147483648
lcmp
iflt 2
lload 2
ldc 2147483647
lcmp
ifle 3
2: StackMap locals: long
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "overflow: add"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x I
0 4 1 y I
1 4 2 s J
MethodParameters:
Name Flags
x final
y final
private static int subAndCheck(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
lsub
lstore 2
start local 2 1: lload 2
ldc -2147483648
lcmp
iflt 2
lload 2
ldc 2147483647
lcmp
ifle 3
2: StackMap locals: long
StackMap stack:
new java.lang.ArithmeticException
dup
ldc "overflow: add"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x I
0 4 1 y I
1 4 2 s J
MethodParameters:
Name Flags
x final
y final
public org.apache.commons.lang3.math.Fraction add(org.apache.commons.lang3.math.Fraction);
descriptor: (Lorg/apache/commons/lang3/math/Fraction;)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual org.apache.commons.lang3.math.Fraction.addSub:(Lorg/apache/commons/lang3/math/Fraction;Z)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
0 1 1 fraction Lorg/apache/commons/lang3/math/Fraction;
MethodParameters:
Name Flags
fraction final
public org.apache.commons.lang3.math.Fraction subtract(org.apache.commons.lang3.math.Fraction);
descriptor: (Lorg/apache/commons/lang3/math/Fraction;)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual org.apache.commons.lang3.math.Fraction.addSub:(Lorg/apache/commons/lang3/math/Fraction;Z)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/lang3/math/Fraction;
0 1 1 fraction Lorg/apache/commons/lang3/math/Fraction;
MethodParameters:
Name Flags
fraction final
private org.apache.commons.lang3.math.Fraction addSub(org.apache.commons.lang3.math.Fraction, boolean);
descriptor: (Lorg/apache/commons/lang3/math/Fraction;Z)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "The fraction must not be null"
iconst_0
anewarray java.lang.Object
invokestatic org.apache.commons.lang3.Validate.isTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifne 7
4: iload 2
ifeq 5
aload 1
goto 6
StackMap locals:
StackMap stack:
5: aload 1
invokevirtual org.apache.commons.lang3.math.Fraction.negate:()Lorg/apache/commons/lang3/math/Fraction;
StackMap locals:
StackMap stack: org.apache.commons.lang3.math.Fraction
6: areturn
7: StackMap locals:
StackMap stack:
aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifne 9
8: aload 0
areturn
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
invokestatic org.apache.commons.lang3.math.Fraction.greatestCommonDivisor:(II)I
istore 3
start local 3 10: iload 3
iconst_1
if_icmpne 18
11: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
invokestatic org.apache.commons.lang3.math.Fraction.mulAndCheck:(II)I
istore 4
start local 4 12: aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
invokestatic org.apache.commons.lang3.math.Fraction.mulAndCheck:(II)I
istore 5
start local 5 13: new org.apache.commons.lang3.math.Fraction
dup
iload 2
ifeq 14
iload 4
iload 5
invokestatic org.apache.commons.lang3.math.Fraction.addAndCheck:(II)I
goto 15
StackMap locals: org.apache.commons.lang3.math.Fraction org.apache.commons.lang3.math.Fraction int int int int
StackMap stack: new 13 new 13
14: iload 4
iload 5
invokestatic org.apache.commons.lang3.math.Fraction.subAndCheck:(II)I
StackMap locals: org.apache.commons.lang3.math.Fraction org.apache.commons.lang3.math.Fraction int int int int
StackMap stack: new 13 new 13 int
15: aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
16: aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
17: invokestatic org.apache.commons.lang3.math.Fraction.mulPosAndCheck:(II)I
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
end local 5 end local 4 18: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
iload 3
idiv
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 19: aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
iload 3
idiv
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 5
start local 5 20: iload 2
ifeq 21
aload 4
aload 5
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
goto 22
StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
21: aload 4
aload 5
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
StackMap locals:
StackMap stack: java.math.BigInteger
22: astore 6
start local 6 23: aload 6
iload 3
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
istore 7
start local 7 24: iload 7
ifne 25
iload 3
goto 26
StackMap locals: java.math.BigInteger int
StackMap stack:
25: iload 7
iload 3
invokestatic org.apache.commons.lang3.math.Fraction.greatestCommonDivisor:(II)I
StackMap locals:
StackMap stack: int
26: istore 8
start local 8 27: aload 6
iload 8
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.divide:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 9
start local 9 28: aload 9
invokevirtual java.math.BigInteger.bitLength:()I
bipush 31
if_icmple 30
29: new java.lang.ArithmeticException
dup
ldc "overflow: numerator too large after multiply"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals: int java.math.BigInteger
StackMap stack:
new org.apache.commons.lang3.math.Fraction
dup
aload 9
invokevirtual java.math.BigInteger.intValue:()I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
iload 3
idiv
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
iload 8
idiv
invokestatic org.apache.commons.lang3.math.Fraction.mulPosAndCheck:(II)I
invokespecial org.apache.commons.lang3.math.Fraction.<init>:(II)V
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/apache/commons/lang3/math/Fraction;
0 31 1 fraction Lorg/apache/commons/lang3/math/Fraction;
0 31 2 isAdd Z
10 31 3 d1 I
12 18 4 uvp I
13 18 5 upv I
19 31 4 uvp Ljava/math/BigInteger;
20 31 5 upv Ljava/math/BigInteger;
23 31 6 t Ljava/math/BigInteger;
24 31 7 tmodd1 I
27 31 8 d2 I
28 31 9 w Ljava/math/BigInteger;
MethodParameters:
Name Flags
fraction final
isAdd final
public org.apache.commons.lang3.math.Fraction multiplyBy(org.apache.commons.lang3.math.Fraction);
descriptor: (Lorg/apache/commons/lang3/math/Fraction;)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "The fraction must not be null"
iconst_0
anewarray java.lang.Object
invokestatic org.apache.commons.lang3.Validate.isTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifeq 4
aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifne 5
4: StackMap locals:
StackMap stack:
getstatic org.apache.commons.lang3.math.Fraction.ZERO:Lorg/apache/commons/lang3/math/Fraction;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
invokestatic org.apache.commons.lang3.math.Fraction.greatestCommonDivisor:(II)I
istore 2
start local 2 6: aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
invokestatic org.apache.commons.lang3.math.Fraction.greatestCommonDivisor:(II)I
istore 3
start local 3 7: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
iload 2
idiv
aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
iload 3
idiv
invokestatic org.apache.commons.lang3.math.Fraction.mulAndCheck:(II)I
8: aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
iload 3
idiv
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
iload 2
idiv
invokestatic org.apache.commons.lang3.math.Fraction.mulPosAndCheck:(II)I
9: invokestatic org.apache.commons.lang3.math.Fraction.getReducedFraction:(II)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/commons/lang3/math/Fraction;
0 10 1 fraction Lorg/apache/commons/lang3/math/Fraction;
6 10 2 d1 I
7 10 3 d2 I
MethodParameters:
Name Flags
fraction final
public org.apache.commons.lang3.math.Fraction divideBy(org.apache.commons.lang3.math.Fraction);
descriptor: (Lorg/apache/commons/lang3/math/Fraction;)Lorg/apache/commons/lang3/math/Fraction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "The fraction must not be null"
iconst_0
anewarray java.lang.Object
invokestatic org.apache.commons.lang3.Validate.isTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifne 5
4: new java.lang.ArithmeticException
dup
ldc "The fraction to divide by must not be zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.commons.lang3.math.Fraction.invert:()Lorg/apache/commons/lang3/math/Fraction;
invokevirtual org.apache.commons.lang3.math.Fraction.multiplyBy:(Lorg/apache/commons/lang3/math/Fraction;)Lorg/apache/commons/lang3/math/Fraction;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/commons/lang3/math/Fraction;
0 6 1 fraction Lorg/apache/commons/lang3/math/Fraction;
MethodParameters:
Name Flags
fraction final
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.apache.commons.lang3.math.Fraction
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast org.apache.commons.lang3.math.Fraction
astore 2
start local 2 5: aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getNumerator:()I
aload 2
invokevirtual org.apache.commons.lang3.math.Fraction.getNumerator:()I
if_icmpne 6
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getDenominator:()I
aload 2
invokevirtual org.apache.commons.lang3.math.Fraction.getDenominator:()I
if_icmpne 6
iconst_1
ireturn
StackMap locals: org.apache.commons.lang3.math.Fraction
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/commons/lang3/math/Fraction;
0 7 1 obj Ljava/lang/Object;
5 7 2 other Lorg/apache/commons/lang3/math/Fraction;
MethodParameters:
Name Flags
obj final
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.hashCode:I
ifne 2
1: aload 0
bipush 37
sipush 629
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getNumerator:()I
iadd
imul
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getDenominator:()I
iadd
putfield org.apache.commons.lang3.math.Fraction.hashCode:I
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.hashCode:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/lang3/math/Fraction;
public int compareTo(org.apache.commons.lang3.math.Fraction);
descriptor: (Lorg/apache/commons/lang3/math/Fraction;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
if_icmpne 4
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
if_icmpne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
i2l
aload 1
getfield org.apache.commons.lang3.math.Fraction.denominator:I
i2l
lmul
lstore 2
start local 2 5: aload 1
getfield org.apache.commons.lang3.math.Fraction.numerator:I
i2l
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
i2l
lmul
lstore 4
start local 4 6: lload 2
lload 4
lcmp
ifne 8
7: iconst_0
ireturn
8: StackMap locals: long long
StackMap stack:
lload 2
lload 4
lcmp
ifge 10
9: iconst_m1
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/commons/lang3/math/Fraction;
0 11 1 other Lorg/apache/commons/lang3/math/Fraction;
5 11 2 first J
6 11 4 second J
MethodParameters:
Name Flags
other final
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.toString:Ljava/lang/String;
ifnonnull 2
1: aload 0
new java.lang.StringBuilder
dup
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getNumerator:()I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getDenominator:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.commons.lang3.math.Fraction.toString:Ljava/lang/String;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.toString:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/lang3/math/Fraction;
public java.lang.String toProperString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
ifnonnull 20
1: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifne 4
2: aload 0
ldc "0"
putfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
3: goto 20
StackMap locals:
StackMap stack:
4: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
if_icmpne 7
5: aload 0
ldc "1"
putfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
6: goto 20
StackMap locals:
StackMap stack:
7: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
iconst_m1
aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
imul
if_icmpne 10
8: aload 0
ldc "-1"
putfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
9: goto 20
StackMap locals:
StackMap stack:
10: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ifle 11
aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
ineg
goto 12
StackMap locals:
StackMap stack:
11: aload 0
getfield org.apache.commons.lang3.math.Fraction.numerator:I
StackMap locals:
StackMap stack: int
12: aload 0
getfield org.apache.commons.lang3.math.Fraction.denominator:I
ineg
if_icmpge 19
13: aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getProperNumerator:()I
istore 1
start local 1 14: iload 1
ifne 17
15: aload 0
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getProperWhole:()I
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
putfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
16: goto 20
17: StackMap locals: int
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getProperWhole:()I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getDenominator:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
end local 1 18: goto 20
19: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getNumerator:()I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.apache.commons.lang3.math.Fraction.getDenominator:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
20: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.commons.lang3.math.Fraction.toProperString:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/apache/commons/lang3/math/Fraction;
14 18 1 properNumerator I
public int compareTo(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast org.apache.commons.lang3.math.Fraction
invokevirtual org.apache.commons.lang3.math.Fraction.compareTo:(Lorg/apache/commons/lang3/math/Fraction;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Number;Ljava/lang/Comparable<Lorg/apache/commons/lang3/math/Fraction;>;
SourceFile: "Fraction.java"