Metadata-Version: 2.4
Name: arprax-algorithms
Version: 0.3.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: pytest-cov; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Provides-Extra: research
Requires-Dist: numpy>=1.26.0; extra == "research"
Provides-Extra: visuals
Requires-Dist: matplotlib>=3.8.0; extra == "visuals"
Requires-Dist: networkx>=3.0; extra == "visuals"
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 Utils:** High-performance data factories (random_array, sorted_array) for robust benchmarking.
* **Standard Library:** High-performance implementations of classic algorithms (Merge Sort, Bubble Sort, etc.) with strict type hinting.

## 📦 Installation

```bash
# Core only
pip install arprax-algorithms

# With visual tools
pip install arprax-algorithms[visuals]

# With research tools
pip install arprax-algorithms[research]
```

## 🔬 Quick Start: Benchmarking

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

```python
from arprax.algos import Profiler
from arprax.algos.utils import random_array  # Clean import from your new 'utils'
from arprax.algos.algorithms import merge_sort # Using the 'lifted' API

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

# 2. Run a doubling test (OHPV2 Analysis)
results = profiler.run_doubling_test(
    merge_sort,
    random_array,
    start_n=500,
    rounds=5
)

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

We provide high-fidelity demonstrations to show the library in action. These are located in the `examples/` directory to maintain a decoupled, industrial-grade production environment.

### Performance Profiling
Measure execution time, memory usage, and operation counts across different input sizes ($N$):
```bash
python examples/demo_profiler.py
```

### Algorithm Visualization
View real-time, frame-by-frame animations of sorting and search logic:
```bash
python examples/visualizer.py
```
> [!TIP]
> For detailed instructions on running these demos and setting up the visualization environment, see our [**Examples Guide**](./examples/GETTING_STARTED.md).

## 🏗️ 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.*
