public class org.apache.commons.math3.util.KthSelector implements java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.commons.math3.util.KthSelector
super_class: java.lang.Object
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20140713
private static final int MIN_SELECT_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 15
private final org.apache.commons.math3.util.PivotingStrategyInterface pivotingStrategy;
descriptor: Lorg/apache/commons/math3/util/PivotingStrategyInterface;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // org.apache.commons.math3.util.KthSelector this
0: .line 45
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 46
aload 0 /* this */
new org.apache.commons.math3.util.MedianOf3PivotingStrategy
dup
invokespecial org.apache.commons.math3.util.MedianOf3PivotingStrategy.<init>:()V
putfield org.apache.commons.math3.util.KthSelector.pivotingStrategy:Lorg/apache/commons/math3/util/PivotingStrategyInterface;
2: .line 47
return
end local 0 // org.apache.commons.math3.util.KthSelector this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/commons/math3/util/KthSelector;
public void <init>(org.apache.commons.math3.util.PivotingStrategyInterface);
descriptor: (Lorg/apache/commons/math3/util/PivotingStrategyInterface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.apache.commons.math3.util.KthSelector this
start local 1 // org.apache.commons.math3.util.PivotingStrategyInterface pivotingStrategy
0: .line 58
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 60
aload 1 /* pivotingStrategy */
invokestatic org.apache.commons.math3.util.MathUtils.checkNotNull:(Ljava/lang/Object;)V
2: .line 61
aload 0 /* this */
aload 1 /* pivotingStrategy */
putfield org.apache.commons.math3.util.KthSelector.pivotingStrategy:Lorg/apache/commons/math3/util/PivotingStrategyInterface;
3: .line 62
return
end local 1 // org.apache.commons.math3.util.PivotingStrategyInterface pivotingStrategy
end local 0 // org.apache.commons.math3.util.KthSelector this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/commons/math3/util/KthSelector;
0 4 1 pivotingStrategy Lorg/apache/commons/math3/util/PivotingStrategyInterface;
Exceptions:
throws org.apache.commons.math3.exception.NullArgumentException
MethodParameters:
Name Flags
pivotingStrategy final
public org.apache.commons.math3.util.PivotingStrategyInterface getPivotingStrategy();
descriptor: ()Lorg/apache/commons/math3/util/PivotingStrategyInterface;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.apache.commons.math3.util.KthSelector this
0: .line 68
aload 0 /* this */
getfield org.apache.commons.math3.util.KthSelector.pivotingStrategy:Lorg/apache/commons/math3/util/PivotingStrategyInterface;
areturn
end local 0 // org.apache.commons.math3.util.KthSelector this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/commons/math3/util/KthSelector;
public double select(double[], int[], int);
descriptor: ([D[II)D
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=4
start local 0 // org.apache.commons.math3.util.KthSelector this
start local 1 // double[] work
start local 2 // int[] pivotsHeap
start local 3 // int k
0: .line 80
iconst_0
istore 4 /* begin */
start local 4 // int begin
1: .line 81
aload 1 /* work */
arraylength
istore 5 /* end */
start local 5 // int end
2: .line 82
iconst_0
istore 6 /* node */
start local 6 // int node
3: .line 83
aload 2 /* pivotsHeap */
ifnull 4
iconst_1
goto 5
StackMap locals: int int int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 7 /* usePivotsHeap */
start local 7 // boolean usePivotsHeap
6: .line 84
goto 26
7: .line 87
StackMap locals: int
StackMap stack:
iload 7 /* usePivotsHeap */
ifeq 11
iload 6 /* node */
aload 2 /* pivotsHeap */
arraylength
if_icmpge 11
8: .line 88
aload 2 /* pivotsHeap */
iload 6 /* node */
iaload
iflt 11
9: .line 91
aload 2 /* pivotsHeap */
iload 6 /* node */
iaload
istore 8 /* pivot */
start local 8 // int pivot
10: .line 92
goto 14
end local 8 // int pivot
11: .line 94
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* work */
iload 4 /* begin */
iload 5 /* end */
aload 0 /* this */
getfield org.apache.commons.math3.util.KthSelector.pivotingStrategy:Lorg/apache/commons/math3/util/PivotingStrategyInterface;
aload 1 /* work */
iload 4 /* begin */
iload 5 /* end */
invokeinterface org.apache.commons.math3.util.PivotingStrategyInterface.pivotIndex:([DII)I
invokevirtual org.apache.commons.math3.util.KthSelector.partition:([DIII)I
istore 8 /* pivot */
start local 8 // int pivot
12: .line 95
iload 7 /* usePivotsHeap */
ifeq 14
iload 6 /* node */
aload 2 /* pivotsHeap */
arraylength
if_icmpge 14
13: .line 96
aload 2 /* pivotsHeap */
iload 6 /* node */
iload 8 /* pivot */
iastore
14: .line 100
StackMap locals: int
StackMap stack:
iload 3 /* k */
iload 8 /* pivot */
if_icmpne 16
15: .line 102
aload 1 /* work */
iload 3 /* k */
daload
dreturn
16: .line 103
StackMap locals:
StackMap stack:
iload 3 /* k */
iload 8 /* pivot */
if_icmpge 22
17: .line 105
iload 8 /* pivot */
istore 5 /* end */
18: .line 106
iconst_2
iload 6 /* node */
imul
iconst_1
iadd
iload 7 /* usePivotsHeap */
ifeq 19
aload 2 /* pivotsHeap */
arraylength
goto 20
StackMap locals:
StackMap stack: int
19: iload 5 /* end */
StackMap locals: org.apache.commons.math3.util.KthSelector double[] int[] int int int int int int
StackMap stack: int int
20: invokestatic org.apache.commons.math3.util.FastMath.min:(II)I
istore 6 /* node */
21: .line 107
goto 26
22: .line 109
StackMap locals:
StackMap stack:
iload 8 /* pivot */
iconst_1
iadd
istore 4 /* begin */
23: .line 110
iconst_2
iload 6 /* node */
imul
iconst_2
iadd
iload 7 /* usePivotsHeap */
ifeq 24
aload 2 /* pivotsHeap */
arraylength
goto 25
StackMap locals:
StackMap stack: int
24: iload 5 /* end */
StackMap locals: org.apache.commons.math3.util.KthSelector double[] int[] int int int int int int
StackMap stack: int int
25: invokestatic org.apache.commons.math3.util.FastMath.min:(II)I
istore 6 /* node */
end local 8 // int pivot
26: .line 84
StackMap locals:
StackMap stack:
iload 5 /* end */
iload 4 /* begin */
isub
bipush 15
if_icmpgt 7
27: .line 113
aload 1 /* work */
iload 4 /* begin */
iload 5 /* end */
invokestatic java.util.Arrays.sort:([DII)V
28: .line 114
aload 1 /* work */
iload 3 /* k */
daload
dreturn
end local 7 // boolean usePivotsHeap
end local 6 // int node
end local 5 // int end
end local 4 // int begin
end local 3 // int k
end local 2 // int[] pivotsHeap
end local 1 // double[] work
end local 0 // org.apache.commons.math3.util.KthSelector this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/apache/commons/math3/util/KthSelector;
0 29 1 work [D
0 29 2 pivotsHeap [I
0 29 3 k I
1 29 4 begin I
2 29 5 end I
3 29 6 node I
6 29 7 usePivotsHeap Z
10 11 8 pivot I
12 26 8 pivot I
MethodParameters:
Name Flags
work final
pivotsHeap final
k final
private int partition(double[], int, int, int);
descriptor: ([DIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=5
start local 0 // org.apache.commons.math3.util.KthSelector this
start local 1 // double[] work
start local 2 // int begin
start local 3 // int end
start local 4 // int pivot
0: .line 130
aload 1 /* work */
iload 4 /* pivot */
daload
dstore 5 /* value */
start local 5 // double value
1: .line 131
aload 1 /* work */
iload 4 /* pivot */
aload 1 /* work */
iload 2 /* begin */
daload
dastore
2: .line 133
iload 2 /* begin */
iconst_1
iadd
istore 7 /* i */
start local 7 // int i
3: .line 134
iload 3 /* end */
iconst_1
isub
istore 8 /* j */
start local 8 // int j
4: .line 135
goto 14
5: .line 137
StackMap locals: double int int
StackMap stack:
iinc 8 /* j */ -1
6: .line 136
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 8 /* j */
if_icmpge 9
aload 1 /* work */
iload 8 /* j */
daload
dload 5 /* value */
dcmpl
ifgt 5
7: .line 139
goto 9
8: .line 140
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
9: .line 139
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 8 /* j */
if_icmpge 10
aload 1 /* work */
iload 7 /* i */
daload
dload 5 /* value */
dcmpg
iflt 8
10: .line 143
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 8 /* j */
if_icmpge 14
11: .line 144
aload 1 /* work */
iload 7 /* i */
daload
dstore 9 /* tmp */
start local 9 // double tmp
12: .line 145
aload 1 /* work */
iload 7 /* i */
iinc 7 /* i */ 1
aload 1 /* work */
iload 8 /* j */
daload
dastore
13: .line 146
aload 1 /* work */
iload 8 /* j */
iinc 8 /* j */ -1
dload 9 /* tmp */
dastore
end local 9 // double tmp
14: .line 135
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 8 /* j */
if_icmplt 6
15: .line 150
iload 7 /* i */
iload 3 /* end */
if_icmpge 16
aload 1 /* work */
iload 7 /* i */
daload
dload 5 /* value */
dcmpl
ifle 17
16: .line 151
StackMap locals:
StackMap stack:
iinc 7 /* i */ -1
17: .line 153
StackMap locals:
StackMap stack:
aload 1 /* work */
iload 2 /* begin */
aload 1 /* work */
iload 7 /* i */
daload
dastore
18: .line 154
aload 1 /* work */
iload 7 /* i */
dload 5 /* value */
dastore
19: .line 155
iload 7 /* i */
ireturn
end local 8 // int j
end local 7 // int i
end local 5 // double value
end local 4 // int pivot
end local 3 // int end
end local 2 // int begin
end local 1 // double[] work
end local 0 // org.apache.commons.math3.util.KthSelector this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/commons/math3/util/KthSelector;
0 20 1 work [D
0 20 2 begin I
0 20 3 end I
0 20 4 pivot I
1 20 5 value D
3 20 7 i I
4 20 8 j I
12 14 9 tmp D
MethodParameters:
Name Flags
work final
begin final
end final
pivot final
}
SourceFile: "KthSelector.java"