Packages

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
binary_lehmer_gcd CHANGELOG.md
Raw

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)