ssMultiKeyIntroSort() — netty Function Reference
Architecture documentation for the ssMultiKeyIntroSort() function in Bzip2DivSufSort.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 1e0c07d3_ab29_8c77_bb12_13a34e73c315["ssMultiKeyIntroSort()"] 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba["Bzip2DivSufSort"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|defined in| 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba 6d0196f0_489e_2841_7424_79f0d208f4c9["subStringSort()"] 6d0196f0_489e_2841_7424_79f0d208f4c9 -->|calls| 1e0c07d3_ab29_8c77_bb12_13a34e73c315 3ae742b6_1714_5da6_551e_2e003765cd05["ssLog()"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|calls| 3ae742b6_1714_5da6_551e_2e003765cd05 b61e4a7c_22ee_fad9_f021_387b63f20ea1["ssInsertionSort()"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|calls| b61e4a7c_22ee_fad9_f021_387b63f20ea1 d34a90df_0d9e_75f0_92a2_6d656258f8df["ssHeapSort()"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|calls| d34a90df_0d9e_75f0_92a2_6d656258f8df 25964735_0d27_2e4b_ef37_17c6848ccf23["ssSubstringPartition()"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|calls| 25964735_0d27_2e4b_ef37_17c6848ccf23 8c543c23_a272_46a8_3a5c_8091f5ca961f["StackEntry()"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|calls| 8c543c23_a272_46a8_3a5c_8091f5ca961f d160bbb0_c87d_6d18_8679_b2d63009caeb["ssPivot()"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|calls| d160bbb0_c87d_6d18_8679_b2d63009caeb 6cd08680_5bba_3632_1ac7_b77001ad18fa["swapElements()"] 1e0c07d3_ab29_8c77_bb12_13a34e73c315 -->|calls| 6cd08680_5bba_3632_1ac7_b77001ad18fa style 1e0c07d3_ab29_8c77_bb12_13a34e73c315 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java lines 353–532
private void ssMultiKeyIntroSort(final int pa, int first, int last, int depth) {
final int[] SA = this.SA;
final byte[] T = this.T;
final StackEntry[] stack = new StackEntry[STACK_SIZE];
int Td;
int a, b, c, d, e, f;
int s, t;
int ssize;
int limit;
int v, x = 0;
for (ssize = 0, limit = ssLog(last - first);;) {
if (last - first <= INSERTIONSORT_THRESHOLD) {
if (1 < last - first) {
ssInsertionSort(pa, first, last, depth);
}
if (ssize == 0) {
return;
}
StackEntry entry = stack[--ssize];
first = entry.a;
last = entry.b;
depth = entry.c;
limit = entry.d;
continue;
}
Td = depth;
if (limit-- == 0) {
ssHeapSort(Td, pa, first, last - first);
}
if (limit < 0) {
for (a = first + 1, v = T[Td + SA[pa + SA[first]]] & 0xff; a < last; ++a) {
if ((x = T[Td + SA[pa + SA[a]]] & 0xff) != v) {
if (1 < a - first) {
break;
}
v = x;
first = a;
}
}
if ((T[Td + SA[pa + SA[first]] - 1] & 0xff) < v) {
first = ssSubstringPartition(pa, first, a, depth);
}
if (a - first <= last - a) {
if (1 < a - first) {
stack[ssize++] = new StackEntry(a, last, depth, -1);
last = a;
depth += 1;
limit = ssLog(a - first);
} else {
first = a;
limit = -1;
}
} else {
if (1 < last - a) {
stack[ssize++] = new StackEntry(first, a, depth + 1, ssLog(a - first));
first = a;
limit = -1;
} else {
last = a;
depth += 1;
limit = ssLog(a - first);
}
}
continue;
}
a = ssPivot(Td, pa, first, last);
v = T[Td + SA[pa + SA[a]]] & 0xff;
swapElements(SA, first, SA, a);
b = first + 1;
while (b < last && (x = T[Td + SA[pa + SA[b]]] & 0xff) == v) {
++b;
}
if ((a = b) < last && x < v) {
while (++b < last && (x = T[Td + SA[pa + SA[b]]] & 0xff) <= v) {
if (x == v) {
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does ssMultiKeyIntroSort() do?
ssMultiKeyIntroSort() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java.
Where is ssMultiKeyIntroSort() defined?
ssMultiKeyIntroSort() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java at line 353.
What does ssMultiKeyIntroSort() call?
ssMultiKeyIntroSort() calls 7 function(s): StackEntry, ssHeapSort, ssInsertionSort, ssLog, ssPivot, ssSubstringPartition, swapElements.
What calls ssMultiKeyIntroSort()?
ssMultiKeyIntroSort() is called by 1 function(s): subStringSort.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free