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.0] - 2025-07-21

Added

  • Initial implementation of the Lehmer GCD algorithm
  • Main LehmerGcd.of/2 function 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 optimization
  • bit_length: ~> 1.0 - For bit length calculations
  • nstandard: ~> 0.1 - Development standards
  • ex_doc: ~> 0.31 - Documentation generation
  • dialyxir: ~> 1.0 - Type checking
  • credo: ~> 1.7 - Static analysis
  • spellweaver: ~> 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.0: First stable release with complete Lehmer GCD implementation

Contributing

When adding new features or making changes, please:

  1. Update this changelog with a new entry
  2. Follow the Keep a Changelog format
  3. Use Semantic Versioning for version numbers
  4. Include all notable changes, additions, and fixes

Release Process

  1. Update version in mix.exs
  2. Update this changelog with release notes
  3. Create a git tag for the version
  4. Publish to Hex.pm if applicable

This changelog follows the Keep a Changelog format and uses Semantic Versioning for version numbers.