📐 rat-trig
Rational Trigonometry - A Python implementation of Wildberger’s Rational Trigonometry
What is Rational Trigonometry?
Rational Trigonometry is a revolutionary approach to classical trigonometry, developed by Norman Wildberger. It replaces the traditional notions of distance and angle with quadrance (squared distance) and spread (squared sine of angle), allowing for:
- Exact calculations using rational numbers
- No irrational numbers or transcendental functions
- Simpler algebraic relationships
- Better suited for computational geometry and computer graphics
Installation
pip install rat-trig
For development:
git clone https://github.com/luk036/rat-trig.git
cd rat-trig
pip install -e .
Quick Start
from fractions import Fraction
from rat_trig import archimedes, spread, quad
# Calculate quadrance (squared distance)
vector = [3, 4]
print(f"Quadrance: {quad(vector)}") # Output: 25
# Calculate spread between two vectors
v1 = [1, 2]
v2 = [3, 4]
print(f"Spread: {spread(v1, v2)}") # Output: 4/125
# Apply Archimedes' formula to a triangle
q1, q2, q3 = Fraction(1, 2), Fraction(1, 4), Fraction(1, 6)
A = archimedes(q1, q2, q3)
print(f"Quadrea: {A}") # Output: 23/144
Core Functions
Geometric Operations
quad(vector)- Calculate quadrance (squared distance) of a vectordot(v1, v2)- Dot product of two vectorscross(v1, v2)- Cross product of two vectors
Trigonometric Operations
spread(v1, v2)- Calculate spread between two vectors (squared sine of angle)archimedes(q1, q2, q3)- Archimedes’ formula for triangle quadreaspread_law(q1, q2, q3)- Law of spreads for trianglestriple_quad_formula(q1, q2, s3)- Triple quad formula relating quadrances and spreads
Features
- ✅ Exact arithmetic with
Fractionsupport - ✅ Multiple numeric types - works with
int,float, orFraction - ✅ 99% test coverage with comprehensive unit tests
- ✅ Type hints throughout the codebase
- ✅ Well-documented with docstrings and examples
Documentation
Full documentation is available at https://rat-trig.readthedocs.io.
Testing
Run tests:
pytest
With coverage:
pytest --cov rat_trig
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE for details.
Acknowledgments
This project was developed using PyScaffold and is based on Norman Wildberger’s work on Rational Trigonometry.