# 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 ```