Skip to main content

🦊 FoxPi

High-precision terminal π explorer — Chudnovsky, Ramanujan, Machin, and BBP spigot algorithms.

Python License PyPI Algorithms Precision

FoxPi is a pure-Python command-line toolkit for computing, exploring, benchmarking, and validating π using several classical and modern algorithms.

It supports arbitrary-precision decimal computation with Chudnovsky, Ramanujan, and Machin, plus direct hexadecimal digit extraction using the Bailey–Borwein–Plouffe (BBP) formula.

The implementation uses integer-scaled arithmetic and includes an independent test suite that checks computed decimal and hexadecimal digits against reference values rather than merely comparing algorithms against themselves.


✨ Features

  • 🧮 Arbitrary-precision decimal computation of π
  • ⚡ Chudnovsky computation with binary splitting
  • 📜 Ramanujan's rapidly convergent hypergeometric series
  • 📐 Classical Machin formula
  • 🔢 BBP hexadecimal digit extraction
  • 🔬 Term-by-term convergence exploration
  • 📊 Built-in algorithm benchmarking
  • 🧱 Integer-scaled arithmetic for high-precision calculations
  • 🧪 Automated tests against independent reference digits
  • 📦 Standard-library implementation with no runtime dependencies
  • 🐍 Python package/CLI entry point via pyproject.toml
  • 📄 MIT licensed

📋 Table of Contents


Installation

Requirements

FoxPi requires:

  • Python 3.8 or newer
  • pip for optional editable/package installation

The project declares no runtime third-party dependencies.

Clone the repository

git clone https://github.com/foxhackerzdevs/foxpi.git
cd foxpi

Run directly

python cli.py digits 100

Example output:

π (100 digits) using Chudnovsky:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Time: 0.00xxs

Install the CLI

Install from PyPI

python3 -m pip install foxpi
foxpi digits 100

Install from Source

git clone https://github.com/foxhackerzdevs/foxpi.git
cd foxpi
python -m pip install -e .

Current version: 0.1.4


Quick Start

# Compute 100 digits
python cli.py digits 100

# Use a specific method
python cli.py digits 1000 --method chudnovsky
python cli.py digits 1000 --method ramanujan
python cli.py digits 1000 --method machin

# Explore convergence
python cli.py explore --method chudnovsky --terms 15

# Benchmark
python cli.py compare

# Extract hexadecimal digits
python cli.py bbp 100

CLI Reference

FoxPi exposes four commands:

foxpi
├── digits
├── explore
├── compare
└── bbp

digits

Compute a requested number of decimal digits of π.

python cli.py digits COUNT [--method METHOD]
Argument Description
COUNT Number of decimal digits requested
--method chudnovsky (default), ramanujan, or machin

Examples

python cli.py digits 50
python cli.py digits 1000 --method chudnovsky
python cli.py digits 1000 --method ramanujan
python cli.py digits 1000 --method machin

Negative digit counts are rejected.


explore

Explore the convergence of the Ramanujan or Chudnovsky series.

python cli.py explore [--method METHOD] [--terms N]
  • Default method: ramanujan
  • Default terms: 30
python cli.py explore
python cli.py explore --method ramanujan --terms 20
python cli.py explore --method chudnovsky --terms 10

compare

Benchmark Chudnovsky and Machin at 1000 decimal digits.

python cli.py compare

bbp

Extract 16 hexadecimal digits of π starting at a given position.

python cli.py bbp POSITION

POSITION=1 is the first hexadecimal digit after the point.

python cli.py bbp 1
python cli.py bbp 25
python cli.py bbp 100

Algorithms

Algorithm Output Primary purpose
Chudnovsky Decimal High-precision computation
Ramanujan Decimal Rapid convergence / exploration
Machin Decimal Classical formula / comparison
BBP Hexadecimal Direct digit extraction

Chudnovsky

Binary-splitting implementation of the Chudnovsky series (~14 digits per term).
This is the default and recommended method for high-precision decimal computation.

python cli.py digits 10000 --method chudnovsky

Ramanujan

Ramanujan’s 1914 hypergeometric series for 1/π:

1/π = (2√2 / 9801) × Σ [ (4k)! × (1103 + 26390k) / ((k!)⁴ × 396⁴ᵏ) ]

Excellent for studying rapid convergence.

python cli.py digits 1000 --method ramanujan
python cli.py explore --method ramanujan --terms 20

Machin

Classical Machin formula:

π = 4 × (4 arctan(1/5) − arctan(1/239))
python cli.py digits 500 --method machin

BBP hexadecimal spigot

Bailey–Borwein–Plouffe formula allowing direct extraction of hexadecimal digits without computing preceding ones.

python cli.py bbp 1
# → 243F6A8885A308D3

Precision and Implementation

FoxPi uses scaled-integer arithmetic with internal guard digits.
No third-party arbitrary-precision library is required at runtime.

A custom Newton–Raphson isqrt implementation is provided and covered by the test suite.


Testing

python -m unittest discover -s tests -v

Tests verify results against independently generated reference digits (mpmath, 250 decimal digits of working precision).


Project Structure

foxpi/
├── core/
│   ├── algorithms.py
│   └── visualize.py
├── tests/
│   ├── test_algorithms.py
│   └── test_cli.py
├── .gitignore
├── LICENSE
├── README.md
├── cli.py
└── pyproject.toml

Development

git clone https://github.com/foxhackerzdevs/foxpi.git
cd foxpi

# Run directly
python cli.py --help

# Run tests
python -m unittest discover -s tests -v

# Editable install
python -m pip install -e .
foxpi --help

Performance

Chudnovsky with binary splitting is the recommended high-performance path.
Use python cli.py compare for a quick local benchmark.

Performance depends on Python version, CPU, and requested precision.


Limitations

  • Extremely large precisions consume significant time and memory.
  • BBP currently returns a fixed 16 hexadecimal digits.
  • The compare command uses a fixed 1000-digit workload.
  • Convergence exploration (explore) intentionally recomputes for visualization and is not optimized for speed.

Contributing

Contributions are welcome. Suggested areas:

  • Additional algorithms
  • Configurable BBP length
  • Expanded benchmarks
  • More tests
  • Documentation improvements
  1. Fork the repository
  2. Create a feature branch
  3. Add tests where appropriate
  4. Open a pull request

License

FoxPi is released under the MIT License.

Copyright © 2026 Fox Hackerz

See LICENSE for the full text.


Links


Compute it. Explore it. Benchmark it. Verify it. 🦊

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foxpi-0.1.4.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foxpi-0.1.4-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file foxpi-0.1.4.tar.gz.

File metadata

  • Download URL: foxpi-0.1.4.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for foxpi-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f93cd60ff200d1d0aa2541c9ee0715a067144a857335c2e147209d766374515f
MD5 f8e177aad0f2f4141c03b8ea88c1fd24
BLAKE2b-256 4090436015ee55b7a4ab87eec309ab6e8e7a75b13737455fe0128a1675c9ea85

See more details on using hashes here.

File details

Details for the file foxpi-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: foxpi-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for foxpi-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0aad1dd061baf36bbf8641cde7c9366bc7fbfc4a1ce6c0f11d2ce2c1d307b450
MD5 13b13d53c0c90d08fb86d9d2f9805243
BLAKE2b-256 c3adcb107c65c555795840d3053cdd6a7e83cfd14cd4c1f22fabc24fb6dea807

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page