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, and Bitwise.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 for of/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