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.1.0] - 2025-07-21
### Changed
- **Algorithm Enhancement**: Switched from BinaryGcd to LehmerGcd for more efficient GCD calculations
- **Performance Documentation**: Updated with more realistic performance limits and practical guidelines
- **Dependency Update**: Changed from binary_gcd ~> 1.1 to lehmer_gcd ~> 1.0
### Added
- **Comprehensive Performance Guidelines**: Added detailed performance estimates for different number sizes
- **Interactive vs Batch Processing Limits**: Distinguished between interactive use (10^10) and batch processing (10^12)
- **Practical Time Estimates**:
- 10^6: Very fast (< 1 second)
- 10^8: Fast (seconds)
- 10^10: Moderate (minutes) - recommended interactive limit
- 10^12: Slow (hours) - batch processing limit
- 10^14: Very slow (days) - not recommended
### Technical Improvements
- **More Accurate Performance Claims**: Updated documentation to reflect realistic algorithm performance
- **Enhanced User Guidance**: Clear recommendations on when to use alternative algorithms
- **Spell Checker Configuration**: Added "Lehmer" to user words for documentation quality
---
## [1.0.0] - 2025-07-20
### Added
- Initial release of PrimeFactorization library
- `PrimeFactorization.of/1` - Main function for prime factorization
- `PrimeFactorization.trial_division/1` - Direct trial division implementation
- Comprehensive type specifications for all functions
- Full documentation with interactive examples
- KaTeX math rendering support for mathematical notation
- Complete test coverage with doctests
- Development tooling integration (Credo, Dialyzer, SpellWeaver)
### Features
- **Efficient Trial Division Algorithm**: Optimized implementation with early termination
- **Type Safety**: Full type specifications for all functions
- **Mathematical Notation**: LaTeX support for complex mathematical expressions
- **Interactive Documentation**: All examples are doctest-compatible
- **Performance Optimizations**:
- Tail recursion for memory efficiency
- Early termination when divisor squared exceeds remaining number
- Binary GCD calculations for efficiency
- Sorted output for consistency
### Technical Details
- **Time Complexity**: O(√n) in the worst case
- **Memory Usage**: Constant space due to tail recursion
- **Suitable For**: Integers up to approximately 10^12
- **Dependencies**:
- binary_gcd ~> 1.1 for efficient GCD calculations
- nstandard ~> 0.1 for development standards
- ex_doc ~> 0.31 for documentation generation
- dialyxir ~> 1.0 for type checking
- credo ~> 1.7 for code analysis
- spellweaver ~> 0.1 for spell checking
### Documentation
- Complete module documentation with algorithm explanation
- Comprehensive function documentation with examples
- Performance notes and limitations
- Usage examples for common scenarios
- Development setup and contribution guidelines
### Development Tools
- **Code Quality**: Credo for static analysis
- **Type Checking**: Dialyzer for type safety
- **Documentation**: ExDoc with KaTeX math rendering
- **Spell Checking**: SpellWeaver for documentation quality
- **Formatting**: Mix format with migration support
- **Testing**: Comprehensive test suite with doctests
### License
- Apache License 2.0
- Copyright (c) 2025 University of Kitakyushu
---
## Version History
- **1.1.0**: Algorithm enhancement with LehmerGcd and improved performance documentation
- **1.0.0**: Initial public release with complete documentation and tooling
## Contributing
When contributing to this project, please update this changelog by adding a new entry under the `[Unreleased]` section. The format should follow the existing structure.
### Changelog Entry Format
```markdown
## [Unreleased]
### Added
- New features
### Changed
- Changes in existing functionality
### Deprecated
- Soon-to-be removed features
### Removed
- Removed features
### Fixed
- Bug fixes
### Security
- Vulnerability fixes
```