Skip to main content

Aryabhata

A Python implementation of Aryabhata’s digit‑pair square‑root algorithm — a classical Indian arithmetic method for extracting square roots using only integer operations.

This project provides:

  • A mathematically exact square‑root engine
  • A modern CLI
  • Optional ASCII animation of the digit‑pair extraction
  • 100% unit‑test and branch coverage

Features

  • Exact integer arithmetic — no floating point drift
  • Arbitrary precision via digit‑pair extension
  • Decimal output with proper zero‑padding
  • Debug mode exposing the invariant: N = root² + remainder
  • Optional ASCII animation showing every digit trial
  • Pytest test suite with full coverage

Installation

Install with pip:

pip install aryabhata

Local development:

git clone https://github.com/djstompzone/aryabhata
cd aryabhata
pip install -e .[dev]

Usage

Basic

python -m aryabhata 82

Or

aryabhata 82

Output:

9

With decimal precision

aryabhata 82 --digits 3

Output:

9.055

Debug mode

aryabhata 82 --digits 3 --debug

Output:

9.055
[scaled-root] 9055
[remainder]   6975
[identity]    8200000 = 9055^2 + 6975

ASCII animation

aryabhata 82 --digits 3 --animate

This plays a frame‑by‑frame digit‑pair square‑root extraction in your terminal.

Control speed with:

--fps 15

How the algorithm works

Aryabhata’s method operates by grouping digits into base‑100 pairs and extracting square‑root digits one at a time using this rule:

At each step:

Choose max x such that (20R + x)·x ≤ remainder
R := 10R + x
remainder := remainder − (20R + x)·x

Where R is the root built so far.

This is mathematically equivalent to long‑hand square‑root extraction but works entirely in integers.


Library API

from aryabhata.sqrt import sqrt_aryabhata

root, remainder = sqrt_aryabhata(82, digits=3)

Returns:

root = floor( sqrt(n) × 10^digits )
remainder = n × 10^(2·digits) − root²

Testing

Run all tests with coverage:

poetry run coverage run -m pytest
poetry run coverage report -m

All code paths are fully covered.


Why this exists

Most square‑root implementations hide the math behind floating point hardware.

This project exposes the actual arithmetic behind root extraction — the same logic used by scribes, calculators, and engineers long before digital computers existed.

It’s math you can watch happening.


License

MIT License

Metadata

Release files for aryabhata 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aryabhata 1.0.1
File Size Uploaded
aryabhata-1.0.1.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aryabhata 1.0.1
File Interpreter ABI Platform
aryabhata-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 16.1 kB

Release files / aryabhata-1.0.1.tar.gz

Download URL aryabhata-1.0.1.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
bea0fab1f1378aea7bb223a5b0169af4f55a9bbc1ebf5888005be41cca58f043
BLAKE2b-256 checksum
How to use checksums
6acaa3e9b17f939a299306d232d749259e9e80763f98073211af91199d865ba7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.13.9 Linux/6.2.1-PRoot-Distro

Release files / aryabhata-1.0.1-py3-none-any.whl

Download URL aryabhata-1.0.1-py3-none-any.whl
Size 9.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb814c7d9b10afcb29401aa5217be4681e11c559b9c5fca90822004aefddb37c
BLAKE2b-256 checksum
How to use checksums
d904125e8aa8d3a76e0f26548a430ede6132a25441b42f20dd791678290866e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.13.9 Linux/6.2.1-PRoot-Distro

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.1.2

2 release 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