Packages
binary_lehmer_gcd
1.0.0
A high-performance implementation of the greatest common divisor (GCD) algorithm that combines binary GCD with Lehmer's algorithm for optimal performance on large integers.
Current section
Files
Jump to
Current section
Files
binary_lehmer_gcd
CHANGELOG.md
CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-07-21
### Added
- Initial release of BinaryLehmerGcd library
- High-performance GCD implementation combining binary GCD with Lehmer's algorithm
- Support for both small (≤ 32 bits) and large (> 32 bits) integers
- Optimized trailing zero removal and bit-level operations
- Division avoidance in Lehmer reduction for improved performance
- Comprehensive test suite with randomized test cases
- Full documentation with mathematical notation support
- KaTeX integration for rendering mathematical expressions
- Type specifications for better static analysis
- Quality assurance tools integration (Credo, Dialyzer, SpellWeaver)
### Features
- **Binary GCD Algorithm**: Efficient implementation for small numbers
- **Lehmer's Algorithm**: Advanced reduction for large numbers
- **Hybrid Approach**: Automatic switching between algorithms based on input size
- **Performance Optimizations**:
- O(log² n) time complexity for n-bit numbers
- O(log n) space complexity
- Efficient bit operations
- Early termination conditions
- **Production Ready**: Thoroughly tested and documented
### Technical Details
- **Dependencies**: BitLength, TrailingZeros, Bitwise for efficient operations
- **Documentation**: Comprehensive API documentation with examples
- **Testing**: Randomized test suite covering trillion-scale numbers
- **Quality**: Static analysis, code formatting, and spell checking
- **License**: Apache License 2.0
### Documentation
- Complete README with usage examples and algorithm explanations
- Comprehensive API documentation with mathematical notation
- Performance analysis and complexity explanations
- Installation and development instructions
- Academic references and algorithm details
### Development Tools
- ExDoc for documentation generation
- Credo for code quality analysis
- Dialyzer for static type checking
- SpellWeaver for spell checking
- NStandard for development standards
---
## Version History
- **1.0.0**: First stable release with complete implementation
## Contributing
When contributing to this project, please update this changelog to reflect your changes. Follow the existing format and include:
- **Added**: for new features
- **Changed**: for changes in existing functionality
- **Deprecated**: for soon-to-be removed features
- **Removed**: for now removed features
- **Fixed**: for any bug fixes
- **Security**: in case of vulnerabilities
## Links
- [GitHub Repository](https://github.com/zacky1972/binary_lehmer_gcd)
- [Documentation](https://hexdocs.pm/binary_lehmer_gcd)
- [Hex Package](https://hex.pm/packages/binary_lehmer_gcd)