public abstract class org.apache.lucene.util.IntroSelector extends org.apache.lucene.util.Selector
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.lucene.util.IntroSelector
super_class: org.apache.lucene.util.Selector
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 26
ldc Lorg/apache/lucene/util/IntroSelector;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.apache.lucene.util.IntroSelector.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.apache.lucene.util.IntroSelector this
0: .line 26
aload 0 /* this */
invokespecial org.apache.lucene.util.Selector.<init>:()V
return
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/util/IntroSelector;
public final void select(int, int, int);
descriptor: (III)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=5, args_size=4
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int from
start local 2 // int to
start local 3 // int k
0: .line 30
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iload 3 /* k */
invokevirtual org.apache.lucene.util.IntroSelector.checkArgs:(III)V
1: .line 31
iconst_2
iload 2 /* to */
iload 1 /* from */
isub
i2l
iconst_2
invokestatic org.apache.lucene.util.MathUtil.log:(JI)I
imul
istore 4 /* maxDepth */
start local 4 // int maxDepth
2: .line 32
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iload 3 /* k */
iload 4 /* maxDepth */
invokevirtual org.apache.lucene.util.IntroSelector.quickSelect:(IIII)V
3: .line 33
return
end local 4 // int maxDepth
end local 3 // int k
end local 2 // int to
end local 1 // int from
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/lucene/util/IntroSelector;
0 4 1 from I
0 4 2 to I
0 4 3 k I
2 4 4 maxDepth I
MethodParameters:
Name Flags
from
to
k
int slowSelect(int, int, int);
descriptor: (III)I
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int from
start local 2 // int to
start local 3 // int k
0: .line 36
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iconst_1
isub
iload 3 /* k */
invokevirtual org.apache.lucene.util.IntroSelector.medianOfMediansSelect:(III)I
ireturn
end local 3 // int k
end local 2 // int to
end local 1 // int from
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/lucene/util/IntroSelector;
0 1 1 from I
0 1 2 to I
0 1 3 k I
MethodParameters:
Name Flags
from
to
k
int medianOfMediansSelect(int, int, int);
descriptor: (III)I
flags: (0x0000)
Code:
stack=5, locals=5, args_size=4
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int left
start local 2 // int right
start local 3 // int k
0: .line 44
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmpne 2
1: .line 45
iload 1 /* left */
ireturn
2: .line 47
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* left */
iload 2 /* right */
invokevirtual org.apache.lucene.util.IntroSelector.pivot:(II)I
istore 4 /* pivotIndex */
start local 4 // int pivotIndex
3: .line 48
aload 0 /* this */
iload 1 /* left */
iload 2 /* right */
iload 3 /* k */
iload 4 /* pivotIndex */
invokevirtual org.apache.lucene.util.IntroSelector.partition:(IIII)I
istore 4 /* pivotIndex */
4: .line 49
iload 3 /* k */
iload 4 /* pivotIndex */
if_icmpne 6
5: .line 50
iload 3 /* k */
ireturn
6: .line 51
StackMap locals: int
StackMap stack:
iload 3 /* k */
iload 4 /* pivotIndex */
if_icmpge 9
7: .line 52
iload 4 /* pivotIndex */
iconst_1
isub
istore 2 /* right */
8: .line 53
goto 10
9: .line 54
StackMap locals:
StackMap stack:
iload 4 /* pivotIndex */
iconst_1
iadd
istore 1 /* left */
end local 4 // int pivotIndex
10: .line 56
StackMap locals:
StackMap stack:
iload 1 /* left */
iload 2 /* right */
if_icmpne 0
11: .line 57
iload 1 /* left */
ireturn
end local 3 // int k
end local 2 // int right
end local 1 // int left
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/lucene/util/IntroSelector;
0 12 1 left I
0 12 2 right I
0 12 3 k I
3 10 4 pivotIndex I
MethodParameters:
Name Flags
left
right
k
private int partition(int, int, int, int);
descriptor: (IIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=5
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int left
start local 2 // int right
start local 3 // int k
start local 4 // int pivotIndex
0: .line 61
aload 0 /* this */
iload 4 /* pivotIndex */
invokevirtual org.apache.lucene.util.IntroSelector.setPivot:(I)V
1: .line 62
aload 0 /* this */
iload 4 /* pivotIndex */
iload 2 /* right */
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
2: .line 63
iload 1 /* left */
istore 5 /* storeIndex */
start local 5 // int storeIndex
3: .line 64
iload 1 /* left */
istore 6 /* i */
start local 6 // int i
4: goto 9
5: .line 65
StackMap locals: int int
StackMap stack:
aload 0 /* this */
iload 6 /* i */
invokevirtual org.apache.lucene.util.IntroSelector.comparePivot:(I)I
ifle 8
6: .line 66
aload 0 /* this */
iload 5 /* storeIndex */
iload 6 /* i */
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
7: .line 67
iinc 5 /* storeIndex */ 1
8: .line 64
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 6 /* i */
iload 2 /* right */
if_icmplt 5
end local 6 // int i
10: .line 70
iload 5 /* storeIndex */
istore 6 /* storeIndexEq */
start local 6 // int storeIndexEq
11: .line 71
iload 5 /* storeIndex */
istore 7 /* i */
start local 7 // int i
12: goto 17
13: .line 72
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 7 /* i */
invokevirtual org.apache.lucene.util.IntroSelector.comparePivot:(I)I
ifne 16
14: .line 73
aload 0 /* this */
iload 6 /* storeIndexEq */
iload 7 /* i */
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
15: .line 74
iinc 6 /* storeIndexEq */ 1
16: .line 71
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
17: iload 7 /* i */
iload 2 /* right */
if_icmplt 13
end local 7 // int i
18: .line 77
aload 0 /* this */
iload 2 /* right */
iload 6 /* storeIndexEq */
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
19: .line 78
iload 3 /* k */
iload 5 /* storeIndex */
if_icmpge 21
20: .line 79
iload 5 /* storeIndex */
ireturn
21: .line 80
StackMap locals:
StackMap stack:
iload 3 /* k */
iload 6 /* storeIndexEq */
if_icmpgt 23
22: .line 81
iload 3 /* k */
ireturn
23: .line 83
StackMap locals:
StackMap stack:
iload 6 /* storeIndexEq */
ireturn
end local 6 // int storeIndexEq
end local 5 // int storeIndex
end local 4 // int pivotIndex
end local 3 // int k
end local 2 // int right
end local 1 // int left
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/apache/lucene/util/IntroSelector;
0 24 1 left I
0 24 2 right I
0 24 3 k I
0 24 4 pivotIndex I
3 24 5 storeIndex I
4 10 6 i I
11 24 6 storeIndexEq I
12 18 7 i I
MethodParameters:
Name Flags
left
right
k
pivotIndex
private int pivot(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int left
start local 2 // int right
0: .line 87
iload 2 /* right */
iload 1 /* left */
isub
iconst_5
if_icmpge 3
1: .line 88
aload 0 /* this */
iload 1 /* left */
iload 2 /* right */
invokevirtual org.apache.lucene.util.IntroSelector.partition5:(II)I
istore 3 /* pivotIndex */
start local 3 // int pivotIndex
2: .line 89
iload 3 /* pivotIndex */
ireturn
end local 3 // int pivotIndex
3: .line 92
StackMap locals:
StackMap stack:
iload 1 /* left */
istore 3 /* i */
start local 3 // int i
4: goto 11
5: .line 93
StackMap locals: int
StackMap stack:
iload 3 /* i */
iconst_4
iadd
istore 4 /* subRight */
start local 4 // int subRight
6: .line 94
iload 4 /* subRight */
iload 2 /* right */
if_icmple 8
7: .line 95
iload 2 /* right */
istore 4 /* subRight */
8: .line 97
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 3 /* i */
iload 4 /* subRight */
invokevirtual org.apache.lucene.util.IntroSelector.partition5:(II)I
istore 5 /* median5 */
start local 5 // int median5
9: .line 98
aload 0 /* this */
iload 5 /* median5 */
iload 1 /* left */
iload 3 /* i */
iload 1 /* left */
isub
iconst_5
idiv
iadd
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
end local 5 // int median5
end local 4 // int subRight
10: .line 92
iinc 3 /* i */ 5
StackMap locals:
StackMap stack:
11: iload 3 /* i */
iload 2 /* right */
if_icmple 5
end local 3 // int i
12: .line 100
iload 2 /* right */
iload 1 /* left */
isub
bipush 10
idiv
iload 1 /* left */
iadd
iconst_1
iadd
istore 3 /* mid */
start local 3 // int mid
13: .line 101
iload 1 /* left */
iload 2 /* right */
iload 1 /* left */
isub
iconst_5
idiv
iadd
istore 4 /* to */
start local 4 // int to
14: .line 102
aload 0 /* this */
iload 1 /* left */
iload 4 /* to */
iload 3 /* mid */
invokevirtual org.apache.lucene.util.IntroSelector.medianOfMediansSelect:(III)I
ireturn
end local 4 // int to
end local 3 // int mid
end local 2 // int right
end local 1 // int left
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/lucene/util/IntroSelector;
0 15 1 left I
0 15 2 right I
2 3 3 pivotIndex I
4 12 3 i I
6 10 4 subRight I
9 10 5 median5 I
13 15 3 mid I
14 15 4 to I
MethodParameters:
Name Flags
left
right
private int partition5(int, int);
descriptor: (II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int left
start local 2 // int right
0: .line 109
iload 1 /* left */
iconst_1
iadd
istore 3 /* i */
start local 3 // int i
1: .line 110
goto 8
2: .line 111
StackMap locals: int
StackMap stack:
iload 3 /* i */
istore 4 /* j */
start local 4 // int j
3: .line 112
goto 6
4: .line 113
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 4 /* j */
iconst_1
isub
iload 4 /* j */
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
5: .line 114
iinc 4 /* j */ -1
6: .line 112
StackMap locals:
StackMap stack:
iload 4 /* j */
iload 1 /* left */
if_icmple 7
aload 0 /* this */
iload 4 /* j */
iconst_1
isub
iload 4 /* j */
invokevirtual org.apache.lucene.util.IntroSelector.compare:(II)I
ifgt 4
7: .line 116
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
end local 4 // int j
8: .line 110
StackMap locals:
StackMap stack:
iload 3 /* i */
iload 2 /* right */
if_icmple 2
9: .line 118
iload 1 /* left */
iload 2 /* right */
iadd
iconst_1
iushr
ireturn
end local 3 // int i
end local 2 // int right
end local 1 // int left
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/lucene/util/IntroSelector;
0 10 1 left I
0 10 2 right I
1 10 3 i I
3 8 4 j I
MethodParameters:
Name Flags
left
right
private void quickSelect(int, int, int, int);
descriptor: (IIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int from
start local 2 // int to
start local 3 // int k
start local 4 // int maxDepth
0: .line 122
getstatic org.apache.lucene.util.IntroSelector.$assertionsDisabled:Z
ifne 1
iload 1 /* from */
iload 3 /* k */
if_icmple 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 123
StackMap locals:
StackMap stack:
getstatic org.apache.lucene.util.IntroSelector.$assertionsDisabled:Z
ifne 2
iload 3 /* k */
iload 2 /* to */
if_icmplt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 124
StackMap locals:
StackMap stack:
iload 2 /* to */
iload 1 /* from */
isub
iconst_1
if_icmpne 4
3: .line 125
return
4: .line 127
StackMap locals:
StackMap stack:
iinc 4 /* maxDepth */ -1
iload 4 /* maxDepth */
ifge 7
5: .line 128
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iload 3 /* k */
invokevirtual org.apache.lucene.util.IntroSelector.slowSelect:(III)I
pop
6: .line 129
return
7: .line 132
StackMap locals:
StackMap stack:
iload 1 /* from */
iload 2 /* to */
iadd
iconst_1
iushr
istore 5 /* mid */
start local 5 // int mid
8: .line 134
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iconst_1
isub
invokevirtual org.apache.lucene.util.IntroSelector.compare:(II)I
ifle 10
9: .line 135
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iconst_1
isub
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
10: .line 137
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 2 /* to */
iconst_1
isub
iload 5 /* mid */
invokevirtual org.apache.lucene.util.IntroSelector.compare:(II)I
ifle 14
11: .line 138
aload 0 /* this */
iload 2 /* to */
iconst_1
isub
iload 5 /* mid */
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
12: .line 139
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iconst_1
isub
invokevirtual org.apache.lucene.util.IntroSelector.compare:(II)I
ifle 14
13: .line 140
aload 0 /* this */
iload 1 /* from */
iload 2 /* to */
iconst_1
isub
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
14: .line 144
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 2 /* to */
iconst_1
isub
invokevirtual org.apache.lucene.util.IntroSelector.setPivot:(I)V
15: .line 146
iload 1 /* from */
iconst_1
iadd
istore 6 /* left */
start local 6 // int left
16: .line 147
iload 2 /* to */
iconst_2
isub
istore 7 /* right */
start local 7 // int right
17: .line 150
goto 19
18: .line 151
StackMap locals: int int
StackMap stack:
iinc 6 /* left */ 1
19: .line 150
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* left */
invokevirtual org.apache.lucene.util.IntroSelector.comparePivot:(I)I
ifgt 18
20: .line 154
goto 22
21: .line 155
StackMap locals:
StackMap stack:
iinc 7 /* right */ -1
22: .line 154
StackMap locals:
StackMap stack:
iload 6 /* left */
iload 7 /* right */
if_icmpge 23
aload 0 /* this */
iload 7 /* right */
invokevirtual org.apache.lucene.util.IntroSelector.comparePivot:(I)I
ifle 21
23: .line 158
StackMap locals:
StackMap stack:
iload 6 /* left */
iload 7 /* right */
if_icmpge 27
24: .line 159
aload 0 /* this */
iload 6 /* left */
iload 7 /* right */
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
25: .line 160
iinc 7 /* right */ -1
26: .line 149
goto 19
27: .line 165
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* left */
iload 2 /* to */
iconst_1
isub
invokevirtual org.apache.lucene.util.IntroSelector.swap:(II)V
28: .line 167
iload 6 /* left */
iload 3 /* k */
if_icmpne 30
29: .line 168
return
30: .line 169
StackMap locals:
StackMap stack:
iload 6 /* left */
iload 3 /* k */
if_icmpge 33
31: .line 170
aload 0 /* this */
iload 6 /* left */
iconst_1
iadd
iload 2 /* to */
iload 3 /* k */
iload 4 /* maxDepth */
invokevirtual org.apache.lucene.util.IntroSelector.quickSelect:(IIII)V
32: .line 171
goto 34
33: .line 172
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* from */
iload 6 /* left */
iload 3 /* k */
iload 4 /* maxDepth */
invokevirtual org.apache.lucene.util.IntroSelector.quickSelect:(IIII)V
34: .line 174
StackMap locals:
StackMap stack:
return
end local 7 // int right
end local 6 // int left
end local 5 // int mid
end local 4 // int maxDepth
end local 3 // int k
end local 2 // int to
end local 1 // int from
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/apache/lucene/util/IntroSelector;
0 35 1 from I
0 35 2 to I
0 35 3 k I
0 35 4 maxDepth I
8 35 5 mid I
16 35 6 left I
17 35 7 right I
MethodParameters:
Name Flags
from
to
k
maxDepth
protected int compare(int, int);
descriptor: (II)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 // org.apache.lucene.util.IntroSelector this
start local 1 // int i
start local 2 // int j
0: .line 180
aload 0 /* this */
iload 1 /* i */
invokevirtual org.apache.lucene.util.IntroSelector.setPivot:(I)V
1: .line 181
aload 0 /* this */
iload 2 /* j */
invokevirtual org.apache.lucene.util.IntroSelector.comparePivot:(I)I
ireturn
end local 2 // int j
end local 1 // int i
end local 0 // org.apache.lucene.util.IntroSelector this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/lucene/util/IntroSelector;
0 2 1 i I
0 2 2 j I
MethodParameters:
Name Flags
i
j
protected abstract void setPivot(int);
descriptor: (I)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
i
protected abstract int comparePivot(int);
descriptor: (I)I
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
j
}
SourceFile: "IntroSelector.java"