Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.1] - 2025-01-27
Changed
- Performance Optimization: Refactored quotient comparison logic in the Lehmer GCD algorithm
- Algorithm Enhancement: Replaced redundant division operations with efficient cross-multiplication comparison
- Code Quality: Improved readability and maintainability of the inner loop logic
- Test Coverage: Extended randomized testing range from 1 billion to 1 trillion for better stress testing
Technical Improvements
- Added
same_quotient_without_div/4helper function for efficient quotient comparison - Eliminated redundant division operations in the critical path
- Enhanced algorithm performance for very large integers
- Improved mathematical precision using cross-multiplication property
[1.0.0] - 2025-07-21
Added
- Initial implementation of the Lehmer GCD algorithm
- Main
LehmerGcd.of/2function with type specifications - Efficient handling of large integers using matrix operations
- Automatic fallback to BinaryGcd for smaller numbers (< 2^32)
- Comprehensive randomized testing with 1000 test cases
- Integration with BinaryGcd and BitLength dependencies
Features
- Lehmer Algorithm Implementation: Core algorithm using matrix operations for large integers
- Adaptive Performance: Automatically chooses optimal algorithm based on input size
- Type Safety: Complete type specifications for all public functions
- Mathematical Precision: Maintains correctness for very large integers
- Memory Efficiency: O(1) additional space complexity
Documentation
- Comprehensive module documentation with algorithm overview
- Detailed function documentation with examples and edge cases
- Mathematical notation support with LaTeX rendering
- Professional README with usage examples and performance analysis
- API documentation with interactive examples
Development
- Modern Elixir development tooling setup
- Comprehensive quality assurance with multiple static analysis tools
- Automated testing with randomized validation
- Code formatting and style enforcement
- Spell checking and type checking integration
Dependencies
binary_gcd: ~> 1.1 - For small number optimizationbit_length: ~> 1.0 - For bit length calculationsnstandard: ~> 0.1 - Development standardsex_doc: ~> 0.31 - Documentation generationdialyxir: ~> 1.0 - Type checkingcredo: ~> 1.7 - Static analysisspellweaver: ~> 0.1 - Spell checking
Configuration
- Credo configuration with custom checks
- Dialyzer configuration with ignore file
- Spell checker configuration with custom words
- Documentation configuration with LaTeX math support
- Project metadata and package configuration
Version History
- 1.0.1: Performance optimization and enhanced test coverage
- 1.0.0: First stable release with complete Lehmer GCD implementation
Contributing
When adding new features or making changes, please:
- Update this changelog with a new entry
- Follow the Keep a Changelog format
- Use Semantic Versioning for version numbers
- Include all notable changes, additions, and fixes
Release Process
- Update version in
mix.exs - Update this changelog with release notes
- Create a git tag for the version
- Publish to Hex.pm if applicable
This changelog follows the Keep a Changelog format and uses Semantic Versioning for version numbers.
Release version 1.0.1 with performance optimizations and enhanced documentation
This commit prepares the release of version 1.0.1 with the following changes:
Version Update (mix.exs):
- Bumped version from 1.0.0 to 1.0.1 to reflect the performance improvements
Documentation Updates (CHANGELOG.md):
- Added comprehensive changelog entry for version 1.0.1
- Documented performance optimizations in the Lehmer GCD algorithm
- Listed technical improvements including the new same_quotient_without_div/4 function
- Updated version history section to include the new release
- Followed Keep a Changelog format with proper categorization
Key Improvements Documented:
- Performance optimization through refactored quotient comparison logic
- Algorithm enhancement by replacing redundant division operations
- Code quality improvements for better readability and maintainability
- Extended test coverage from 1 billion to 1 trillion for stress testing
- Technical improvements including efficient cross-multiplication comparison
This release focuses on performance optimizations and enhanced test coverage while maintaining backward compatibility and mathematical correctness.