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-18
Added
- Development tooling configuration
- Initial project setup with development tooling
- Comprehensive documentation and README
- Quality assurance tools (Credo, Dialyzer, Spellweaver)
- Core Algorithm: Implemented
CommonTwos.of/2
function for finding common factors of 2 - Bitwise Operations: Efficient algorithm using
Bitwise.bor
,Bitwise.band
, andBitwise.bsr
- Type Safety: Comprehensive type specs for all functions
- Edge Case Handling: Proper handling of zero values and edge conditions
Documentation
- Module Documentation: Complete
@moduledoc
with algorithm explanation and examples - Function Documentation: Detailed
@doc
forof/2
with parameters, returns, and examples - README.md: Comprehensive project documentation with usage examples
- API Reference: Complete documentation of public functions and their behavior
Development
- Project Configuration: Full development tooling setup
- Quality Tools: Credo for static analysis, Dialyzer for type checking
- Documentation Tools: ExDoc for HTML documentation generation
- Spell Checking: Spellweaver integration with custom word list
- Code Standards: nstandard for formatting and standards enforcement
Infrastructure
- License: Apache 2.0 license with University of Kitakyushu copyright
- Package Configuration: Hex.pm package configuration for distribution
- Development Aliases:
mix check
for comprehensive quality assurance - Dependencies: Production and development dependencies properly configured
Technical Details
- Algorithm: Recursive implementation counting trailing zeros in binary representation
- Return Format: Tuple
{shift, reduced_a, reduced_b}
with shift count and reduced values - Performance: Efficient bitwise operations avoiding division
- Compatibility: Supports Elixir ~> 1.14 and later
Version History
- 1.0.0: Production release with complete implementation and documentation
Contributing
When contributing to this project, please update this changelog with your changes following the format above. Include:
- Added: New features
- Changed: Changes in existing functionality
- Deprecated: Soon-to-be removed features
- Removed: Removed features
- Fixed: Bug fixes
- Security: Vulnerability fixes