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-21

### Added
- `BitLength.of/1` function for calculating bit length of integers
- Comprehensive module and function documentation
- Mathematical algorithm explanation with LaTeX notation
- Performance characteristics documentation
- Type specifications with `@spec` annotations

### Features
- Calculates minimum bits required to represent integers in binary
- Handles special case for 0 (returns 0)
- Uses mathematical approach: `floor(log₂(n)) + 1` for positive integers
- O(1) performance using `:math.log2/1`

### Documentation
- Complete module documentation with examples
- Detailed function documentation with parameters and return types
- Algorithm explanation with mathematical formulas
- Performance analysis and characteristics
- Binary representation examples for clarity

### Development
- Credo static code analysis configuration
- Dialyzer type checking setup
- ExDoc documentation generation
- Spellweaver spell checking integration
- Comprehensive `mix check` alias for quality assurance
- Apache 2.0 license
- Professional project structure

### Examples
```elixir
BitLength.of(0)    # Returns: 0
BitLength.of(1)    # Returns: 1
BitLength.of(2)    # Returns: 2
BitLength.of(3)    # Returns: 2
BitLength.of(7)    # Returns: 3
BitLength.of(8)    # Returns: 4
BitLength.of(255)  # Returns: 8
BitLength.of(256)  # Returns: 9
BitLength.of(1023) # Returns: 10
BitLength.of(1024) # Returns: 11
```

---

## Version History

- **1.0.0** - First stable release with complete functionality

## Contributing

When contributing to this project, please update this changelog by adding a new entry under the `[Unreleased]` section. Follow the format established in this file.

### Changelog Entry Types

- **Added** - New features
- **Changed** - Changes in existing functionality
- **Deprecated** - Soon-to-be removed features
- **Removed** - Removed features
- **Fixed** - Bug fixes
- **Security** - Vulnerability fixes