Metadata-Version: 2.4
Name: arprax-algorithms
Version: 0.1.1
Summary: Industrial-Grade Algorithms by Arprax Lab
Author-email: Arprax Lab <lab@arprax.com>
Project-URL: Homepage, https://algorithms.arprax.com/
Project-URL: Documentation, https://algorithms.arprax.com/reference/api/
Project-URL: Source, https://github.com/arprax/arprax-algorithms
Project-URL: Tracker, https://github.com/arprax/arprax-algorithms/issues
Project-URL: Arprax, https://www.arprax.com/
Keywords: algorithms,sorting,profiler,industrial-cs,arprax
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Education
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: license-file

# Arprax Algorithms

**Industrial-grade algorithms, performance profilers, and data structures for Python.**

Built by **Arprax Lab**, this toolkit is designed for the "Applied Data Intelligence" era—where understanding how code scales is as important as the code itself.

---

## 🚀 Features

* **ArpraxProfiler:** High-precision analysis with GC control, warmup cycles, and OHPV2 (Doubling Test) complexity estimation.
* **Industrial Generators:** Data factories for random, sorted, and reversed datasets.
* **Standard Library:** High-performance implementations of classic algorithms (Merge Sort, Bubble Sort, etc.) with strict type hinting.

## 📦 Installation

```bash
pip install arprax-algorithms
```

## 🔬 Quick Start: Benchmarking

Once installed, you can immediately run a performance battle between algorithms.

```python
from arprax_algorithms import ArpraxProfiler, generators, algorithms

# 1. Initialize the industrial profiler
profiler = ArpraxProfiler(mode="min", repeats=5)

# 2. Run a doubling test (OHPV2 Analysis)
# This measures how Merge Sort scales as data size (N) doubles
results = profiler.run_doubling_test(
    algorithms.sorting.merge_sort, 
    generators.random_array,
    start_n=500,
    rounds=5
)

# 3. Print the performance analysis
profiler.print_analysis("Merge Sort", results)
```

## 🏗️ The Arprax Philosophy

> **Applied Data Intelligence requires more than just code—it requires proof.**

* **Zero-Magic:** Every algorithm is written for clarity and performance. We don't hide logic behind obscure abstractions or hidden standard library calls.
* **Empirical Evidence:** We don't just guess Big O complexity; we measure it using high-resolution timers and controlled environments.
* **Industrial Scale:** Our tools are designed to filter out background CPU noise, providing reliable benchmarks for real-world software engineering.

## 📚 Citation

**To cite the Software:**
See the "Cite this repository" button on our [GitHub](https://github.com/arprax/arprax-algorithms).

**To cite the Handbook (Documentation):**

```bibtex
@manual{arprax_handbook,
  title        = {The Algorithm Engineering Handbook},
  author       = {Chowdhury, Tanmoy},
  organization = {Arprax LLC},
  year         = {2026},
  url          = {https://algorithms.arprax.com/book},
  note         = {Accessed: 2026-02-01}
}
```

---

**© 2026 Arprax Lab** *A core division of Arprax dedicated to Applied Data Intelligence.*
