Python implementation of ancient Tamil mathematical systems from the classical text Kanakkadhigaram
Project description
Kanakkadhigaram
A Python library encoding ancient Tamil mathematical systems from the classical text Kanakkadhigaram (கணக்காதிகாரம்). This package preserves and makes accessible the mathematical knowledge of medieval Tamil scholars, transforming centuries-old computational methods into modern, usable Python code.
About Kanakkadhigaram
The Kanakkadhigaram is a 10th-century Tamil mathematical text covering practical arithmetic, measurement, agriculture, trade, astronomy, and cosmology. This library systematically implements the mathematical operations, unit conversions, and calculation methods described in this classical work, enabling both cultural preservation and practical computation.
Features
7 Domain-Specific Modules:
-
enn_arithal- Fundamental arithmetic & number theory- Number scales (Peruen, Saaram systems)
- Exponential and geometric progressions
- Arithmetic sequences and summations
-
alaviyal- Units of measurement & weight- Length, weight, volume conversions
- Historical Tamil measurement standards
- Geometric calculations for measurements
-
nilam- Land area calculations- Field area computations (square, circular, triangular)
- Agricultural land measurements
- Historical Tamil land units
-
vivasaya_kanakku- Agricultural mathematics- Grain calculations (rice, millet)
- Crop yield estimates
- Harvest & storage computations
-
vaniga_kanakku- Commerce & trade mathematics- Monetary calculations
- Gold & precious metal quantifications
- Historical trade unit conversions
-
porul_alavai- Value & asset measurements- Material valuations
- Property assessments
- Economic unit conversions
-
andaviyal- Cosmology & astronomical calculations- Universe age calculations (Kali, Saka, Yugam)
- Astronomical time conversions
- Celestial period calculations
Installation
Install from PyPI:
pip install kanakkadhigaram
Or install from source:
git clone https://github.com/srinithi-karunakaran/kanakkadhigaram.git
cd kanakkadhigaram
pip install -e .
Quick Start
Basic Usage
from kanakkadhigaram import enn_arithal, nilam, vivasaya_kanakku
# Number scale conversions
units = enn_arithal.list_peru_en_units()
result = enn_arithal.convert_peru_en(1, "கற்பம்", "அணு")
# Land area calculations
area = nilam.square_area(10) # 10 x 10 field
circular_area = nilam.circular_area(radius=5)
# Agricultural computations
rice_yield = vivasaya_kanakku.arisi_calculation(quantity=100, unit="மணி")
Working with Modules
# Arithmetic sequences
from kanakkadhigaram.enn_arithal import padiyadi_sum
total = padiyadi_sum(first_term=1, common_diff=2, num_terms=10)
# Measurement conversions
from kanakkadhigaram.alaviyal import edai_alavai
weight_in_grams = edai_alavai.convert_weight(5, "வராகம்", "அணு")
# Astronomical calculations
from kanakkadhigaram.andaviyal import yugam_saka_kali
kali_year = yugam_saka_kali.convert_yugam_to_kali(year=1000)
Module Documentation
enn_arithal - Arithmetic & Number Systems
| Function | Purpose |
|---|---|
convert_peru_en() |
Convert between magnitude scales |
convert_saaram() |
Convert between length scales |
list_peru_en_units() |
List available units in Peru scale |
exponential_double() |
Compute geometric doubling |
padiyadi_ilakkam_sum() |
Sum arithmetic sequences |
enn_perukkam() |
Large number expansion |
nilam - Land & Area
| Function | Purpose |
|---|---|
square_area() |
Calculate square field area |
circular_area() |
Calculate circular field area |
triangular_area() |
Calculate triangular field area |
rectangular_area() |
Calculate rectangular field area |
convert_nilam() |
Convert between land units |
vivasaya_kanakku - Agriculture
| Function | Purpose |
|---|---|
arisi_calculation() |
Rice grain calculations |
nell_calculation() |
Millet grain calculations |
pala_sulai_kanakku() |
Fruit/crop calculations |
pusani_vidai_kanakku() |
Seeding rate calculations |
alaviyal - Measurements
| Function | Purpose |
|---|---|
edai_alavai() |
Weight conversions |
neer_kanaku() |
Liquid volume calculations |
kozh_alavu() |
Grain measure conversions |
vaniga_kanakku - Commerce
| Function | Purpose |
|---|---|
ponn_calculation() |
Gold & precious metal calculations |
kall_kannaku() |
Currency & monetary conversions |
andaviyal - Cosmology
| Function | Purpose |
|---|---|
convert_yugam_to_kali() |
Yugam to Kali conversion |
convert_saka_to_kali() |
Saka to Kali conversion |
yukam_age_calculation() |
Universe age calculations |
nakshatra_time_mapping() |
Constellation & time mappings |
porul_alavai - Values & Measures
| Function | Purpose |
|---|---|
porul_maa_maatruthal() |
Standard value calculations |
kadal_uppu_alavai() |
Salt & sea measures |
Testing
Run the test suite:
pytest tests/
Run tests with coverage:
pytest --cov=kanakkadhigaram tests/
Specific module tests:
pytest tests/test_enn_arithal.py -v
pytest tests/test_nilam.py -v
pytest tests/test_vivasaya_kanakku.py -v
Historical Context
The Kanakkadhigaram encodes computational wisdom from 10th-century Tamil scholars. Each module maps to a section of the original text relating to
- ** Basic arithmetic (
enn_arithal) - ** Measurements (
alaviyal) - ** Land calculations (
nilam) - ** Agricultural methods (
vivasaya_kanakku) - ** Trade calculations (
vaniga_kanakku) - ** Valuations (
porul_alavai) - ** Cosmological time (
andaviyal)
Unit Conversions
Example: Converting Units
from kanakkadhigaram.enn_arithal import convert_peru_en
# Convert 1 Kalpam to Anu (smallest unit)
result = convert_peru_en(1, "கற்பம்", "அணு")
print(f"1 Kalpam = {result} Anu")
# Check available units
units = list_peru_en_units()
print(f"Available units: {units}")
Use Cases
- Historical Mathematics Education: Learn authentic Tamil mathematical traditions
- Cultural Heritage Preservation: Access classical Tamil knowledge in modern form
- Computational History: Understand ancient computational methods
- Academic Research: Reference implementations for historical mathematics papers
- Educational Projects: Teach programming using cultural context
Package Structure
kanakkadhigaram/
├── kanakkadhigaram/
│ ├── __init__.py
│ ├── enn_arithal/ # Arithmetic & numbers
│ ├── alaviyal/ # Measurements
│ ├── nilam/ # Land calculations
│ ├── vivasaya_kanakku/ # Agriculture
│ ├── vaniga_kanakku/ # Commerce
│ ├── porul_alavai/ # Values
│ └── andaviyal/ # Cosmology
├── tests/
│ ├── test_enn_arithal.py
│ ├── test_alaviyal.py
│ ├── test_nilam.py
│ ├── test_vivasaya_kanakku.py
│ ├── test_vaniga_kanakku.py
│ ├── test_porul_alavai.py
│ └── test_andaviyal.py
├── README.md
├── LICENSE
└── pyproject.toml
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Add tests for new functionality
- Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2026 Srinithi Karunakaran
Acknowledgments
- The Kanakkadhigaram scholars for preserving mathematical knowledge
- The Tamil language community for maintaining classical texts
- Contributors and users who help expand and improve this library
Support & Contact
For issues, questions, or suggestions:
- Open an issue on GitHub
- Refer to test files for usage examples
- Check module docstrings for detailed function documentation
References
- Original Kanakkadhigaram text (10th century)
- Tamil mathematical history resources
- Classical computation method references
Kanakkadhigaram: Bridging ancient Tamil mathematical wisdom with modern computation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kanakkadhigaram-0.1.0.tar.gz.
File metadata
- Download URL: kanakkadhigaram-0.1.0.tar.gz
- Upload date:
- Size: 93.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
444094ba63589c4049c40f28c6773a4330b86f482b1cde352766805fb3e84d7f
|
|
| MD5 |
d6a836669c35cfe687c9b88a20ef44df
|
|
| BLAKE2b-256 |
dde89a2b077b90a4137aacd499fb566ae2448ff4a14e0c76fa8f54017b1fb76c
|
File details
Details for the file kanakkadhigaram-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kanakkadhigaram-0.1.0-py3-none-any.whl
- Upload date:
- Size: 106.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fba380e378d1a8d22ebe9ed350c34c4d0a871ef8224e362819012cc51ad26375
|
|
| MD5 |
981fcb3c4fe2062c4b95fb2e3d79491f
|
|
| BLAKE2b-256 |
49b64b4c3e695a9ba4ff90c17c4beb1e57daff47aec37d9e5be1374656360dee
|