Repository navigation
0.2
Full Changelog: 0.1...0.2
🚀 ginger v0.2 Release Notes
📌 Overview
ginger is a pure Python library for finding polynomial roots, featuring implementations of the Aberth-Ehrlich method and a parallelized Bairstow's method. This release includes significant improvements in documentation, code quality, testing, and functionality.
✨ What's New
📚 Documentation & Comments
- Added comprehensive documentation via
GEMINI.md, including:- Project overview and features
- Build, test, and publish instructions using
tox - Development conventions (code style, typing, CI/CD)
- Improved code comments across multiple modules for better clarity and maintainability
- Updated module and function docstrings with detailed explanations and examples
🧹 Code Quality & Formatting
- Applied
ruff check --fixandruff formatfor consistent code style - Performed code cleanup using GEMINI CLI
- Enhanced type hints across the codebase
- Removed unused imports and legacy code
✅ Testing & Reliability
- Added extensive unit tests for:
aberth.py(including edge cases and non-convergence scenarios)autocorr.py(complex, real, and edge-case root extraction)matrix2.py(matrix operations and properties)vector2.py(vector operations and mathematical properties)
- Improved test coverage for root-finding algorithms
- Added documentation tests
🔧 Functionality Improvements
- Root Finding Algorithms:
- Enhanced Aberth method implementations with better initial guess generation
- Improved handling of autocorrelation polynomials with symmetric root structures
- Added multithreaded versions for better performance on high-degree polynomials
- Vector & Matrix Operations:
- Completely refactored
Vector2class with proper operator overloading and comprehensive documentation - Added
Matrix2class with determinant calculation and matrix-vector multiplication
- Completely refactored
- Root Suppression:
- Added back
suppress_old()function for zero suppression in Bairstow's method - Improved numerical stability in root refinement
- Added back
📦 Dependencies & Build
- Added new dependencies:
lds_genandmywheel - Updated
setup.cfgwith proper testing and runtime dependencies - Improved build process using
toxenvironments
🗑️ Cleanup & Removal
- Removed outdated benchmark files (
benchmark_*.svg) - Deleted unused modules (
ginger.aberth_ai) - Cleaned up documentation files and removed redundant RST files
🐛 Bug Fixes & Minor Changes
- Fixed import order and math function imports
- Corrected string representations in vector classes
- Improved error handling in vector and matrix operations
- Fixed convergence checking in iterative methods
🔄 Compatibility
- Maintains pure Python implementation with no external dependencies
- Compatible with Python 3.9+
- Continued support for low memory footprint (O(N) storage)
📈 Performance
- Parallelized implementations of Aberth's method for better performance on multi-core systems
- Optimized root refinement algorithms
- Improved memory efficiency in polynomial evaluations
This release represents a significant step forward in code quality, documentation, and testing coverage while maintaining the core functionality of efficient polynomial root-finding in pure Python.