Metadata-Version: 2.4
Name: quill-fastsort-parallel
Version: 0.5.0
Summary: Parallel MSD-radix sort backend (rust_parallel_radix API) for quill-sort — portable C++ build for macOS, Linux and Windows.
Author: Isaiah Tucker
License: MIT
Keywords: sorting,radix sort,parallel,quill,quill-sort
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.21

# quill-fastsort-parallel

Parallel MSD-radix sort backend for [quill-sort](https://pypi.org/project/quill-sort/).
Portable **C++17** reimplementation of the original Windows-only compiled wheel,
building natively on **macOS (arm64/x86_64), Linux (x86_64/aarch64) and Windows**.

Provides the entry points `quill._backends.RustParallelRadixBackend` probes for:

```
parallel_sort_i64  parallel_sort_u64  parallel_sort_i32
parallel_sort_u32  parallel_sort_f64  parallel_sort_f32
```

Each sorts a contiguous, writable numpy buffer of the matching dtype **in place,
ascending**. The kernel is `quillcore::parallel_radix` — a top-byte MSD partition
across a thread pool followed by an in-bucket LSD radix, with no merge step.

* **Never-lose:** results are identical to `np.sort` on NaN-free numeric data
  (verified exhaustively against `np.sort` across dtypes, sizes and adversarial
  distributions). NaN is stripped by the Quill dispatcher before any kernel runs.
* **Speed:** measured 3–11× over single-threaded `std::sort` for int64 on 8 cores
  (scales with core count and array size).

## Build

```bash
pip install .            # needs only a C++17 compiler
```

The sort kernels are header-only (`src/quill_core.hpp`, a synced copy of
`companions/_core/quill_core.hpp` — run `companions/sync_core.sh` after editing
the canonical core). No numpy headers or third-party libraries are required.
