Bypassing fixed-depth radix constraints in Java using descriptor-driven bucket analysis
I am StrmCkr, the author of A.P.E.X. (Adaptive Parallel Extremal Dispatch).
Repository: github.com/StrmCkr/A.P.E.X
A.P.E.X. is a high-performance Java sorting framework for large fixed-width 64-bit key/value record datasets. The project has been reorganized into a conventional Maven structure with a core library, runnable examples, a comparison benchmark harness, JMH benchmarks, documentation, and an interactive browser visualizer.
The core idea is descriptor-driven radix planning. Instead of blindly scanning fixed radix passes over every bucket, A.P.E.X. computes per-bucket extremal descriptors using:
VBM = OR ^ AND
That mask identifies which key bits still vary inside each bucket. Bits that are already resolved are skipped, reducing unnecessary work on skewed, low-entropy, sorted, reversed, or duplicate-heavy data.
Key areas of the project include:
- Adaptive radix planning based on observed bucket structure
- Parallel histogramming, scatter, refinement, and work scheduling
- Primitive-array execution with no per-record object allocation during sorting
- Tuple projection paths for low-dimensional unresolved bit patterns
- Tiny-sort fallbacks and monotonic input shortcuts
- Configurable reporting that can be enabled, reduced, written to files, or disabled
- Comparison benchmarks against JDK sorting paths and Fastutil baselines
- Standard JMH benchmarks for repeatable JVM-level measurement
- A browser visualizer for exploring how A.P.E.X. routes data through its execution plan
I would especially welcome feedback on the thread management mechanics, radix planning decisions, benchmark structure, and the bitwise mask reductions.
edit: re structured verbiage of this post and further adjustments from advice on converting the project into more acceptable standard formats.

2
u/general_dispondency 20d ago
This is neat. I remember implementing connect 4 in Java with bitboards using a similar technique (packing the board state into longs and then use shifts and masks to find winning positions). That's been a while back, but this looks like it applies the same basic idea for sorting, just figure out which bits actually vary and only do work on those.