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.3


🚀 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.3.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.3-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: foxpi-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 a524a7c53272a0a62d11c6b8a74850b1f6d611dbeea91761d321ce0f4ab58bfa
MD5 3769c5ed1074bf60323c1eec3be98b9b
BLAKE2b-256 c28c302b3f7c7349713ec758763ab8a9acc9d582f872b150fb1be80f80a741e0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: foxpi-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4a07fc044b5d8537ec8f794fadfd82713d9df7996ee66accf8e9c191d325b90d
MD5 e94724756b942fc8144a80ede8a83d3e
BLAKE2b-256 b378d454eaa8f7b09c67c141ba5b3b65f40ca5483d446c9dc909f4728b3cd146

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.4

2 files

This release

0.1.3 This release

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