Packages

A fast and efficient Elixir library for prime factorization of integers.

Current section

Files

Jump to
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-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.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
```