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