# Changelog

This is the changelog of [Multilane](https://crates.io/crates/Multilane/).
See `README.md` for more information.

## 0.4.1

* Add readme (fix changelog)
* Update crate description
* Add logo
* Add docs logo

## 0.4.0

* Add `leading_ones`, `leading_zeros`, `trailing_ones`, and `trailing_zeros` methods to `Uint` and `Int`
* Add `from_fn` constructor to `Array`
* Update docs
* Add `map` method to `Array`
* Add `get`, `get_mut`, `get_unchecked`, and `get_unchecked_mut` methods to `Array`
* Add `each_ref` and `each_mut` methods to `Array`
* Add `div_ceil` method to `Uint`
* Add `is_multiple_of` and `is_power_of_two` methods to `Uint`
* Add `next_multiple_of` and `next_power_of_two` methods to `Uint`
* Add `checked_next_multiple_of` and `checked_next_power_of_two` methods to `Uint`
* Add `rem_euclid`, `checked_rem_euclid`, `strict_rem_euclid`, `overflowing_rem_euclid`, and `wrapping_rem_euclid` methods to `Uint` and `Int`
* Add `div_euclid`, `checked_div_euclid`, `strict_div_euclid`, `overflowing_div_euclid`, and `wrapping_div_euclid` methods to `Uint` and `Int`
* Add `midpoint` and `abs_diff` methods to `Uint` and `Int`
* Add `count_zeros` and `count_ones` methods to `Uint` and `Int`
* Add `reverse_bits` and `swap_bytes` methods to `Uint` and `Int`
* Add `rotate_left` and `rotate_right` methods to `Uint` and `Int`
* Add `from_le` and `from_be` constructors to `Uint` and `Int`
* Add `to_le` and `to_be` destructors to `Uint` and `Int`
* Add `recip` method to `Float`
* Add `to_radians` and `to_degrees` methods to `Float`
* Add `next_down` and `next_up` methods to `Float`
* Move `round`, `floor`, `ceil`, `trunc`, and `fract` methods from `StdFloat` to `Float`
* Add `round_ties_even` method to `Float`
* Add `total_cmp` method to `Float`
* Add `is_nan`, `is_finite`, `is_infinite`, `is_normal`, `is_subnormal`, `is_sign_negative`, and `is_sign_positive` methods to `Float`
* Require `Copy` for `Least16`

## 0.3.0

* Add `checked_add`, `checked_sub`, `checked_mul`, `checked_div`, `checked_rem`, `checked_shl`, and `checked_shr` methods to `Uint` and `Int`
* Add `checked_add_signed` and `checked_sub_signed` methods to `Uint`
* Add `checked_add_unsigned` and `checked_sub_unsigned` methods to `Int`
* Add `from_str_radix` constructor to `Uint` and `Int`
* Add `ilog` and `checked_ilog` methods to `Uint` and `Int`
* Add `ilog2` and `checked_ilog2` methods to `Uint` and `Int`
* Add `ilog10` and `checked_ilog10` methods to `Uint` and `Int`
* Add `overflowing_add`, `overflowing_sub`, `overflowing_mul`, `overflowing_div`, `overflowing_rem`, `overflowing_shl`, and `overflowing_shr` methods to `Uint` and `Int`
* Add `overflowing_add_signed` and `overflowing_sub_signed` methods to `Uint`
* Add `overflowing_add_unsigned` and `overflowing_sub_unsigned` methods to `Int`
* Add `strict_add`, `strict_sub`, `strict_mul`, `strict_div`, `strict_rem`, `strict_shl`, and `strict_shr` methods to `Uint` and `Int`
* Add `saturating_add`, `saturating_sub`, `saturating_mul`, and `saturating_div` methods to `Uint` and `Int`
* Add `saturating_add_signed` and `saturating_sub_signed` methods to `Uint`
* Add `saturating_add_unsigned` and `saturating_sub_unsigned` methods to `Int`
* Add `strict_add_signed` and `strict_sub_signed` methods to `Uint`
* Add `strict_add_unsigned` and `strict_sub_unsigned` methods to `Int`
* Bump MSRV to 1.91
* Add `wrapping_add`, `wrapping_sub`, `wrapping_mul`, `wrapping_div`, `wrapping_rem`, `wrapping_shl`, and `wrapping_shr` methods to `Uint` and `Int`
* Add `wrapping_add_signed` and `wrapping_sub_signed` methods to `Uint`
* Add `wrapping_add_unsigned` and `wrapping_sub_unsigned` methods to `Int`
* Add `unchecked_add`, `unchecked_sub`, and `unchecked_mul` methods to `Uint` and `Int`
* Add `unbounded_shl` and `unbounded_shr` methods to `Uint` and `Int`
* Track callers
* Add `signum` method to `Int`
* Add `is_negative` and `is_positive` methods to `Int`
* Add `abs`, `checked_abs`, `overflowing_abs`, `saturating_abs`, `strict_abs`, and `unsigned_abs` methods to `Int`
* Add `pow`, `checked_pow`, `overflowing_pow`, `saturating_pow`, `strict_pow`, and `wrapping_pow` methods to `Int`
* Add `isqrt` method to `Uint` and `Int`
* Add `checked_neg`, `overflowing_neg`, `saturating_neg`, `strict_neg`, and `wrapping_neg` methods to `Int`
* Add `BITS` constant to `Uint` and `Int`
* Add `MIN_POSITIVE`, `RADIX`, `EPSILON`, `MANTISSA_DIGITS`, and `DIGITS` constant to `Float`
* Update docs

## 0.2.0

* Remove `ptr` module and items
* Remove `num` module
* Add tests
* Add `Bytes` type to `Uint`, `Int`, and `Float`
* Add `from_ne_bytes`, `from_le_bytes`, and `from_be_bytes` constructors to `Uint`, `Int`, and `Float`
* Add `to_ne_bytes`, `to_le_bytes`, and `to_be_bytes` destructors to `Uint`, `Int`, and `Float`
* Add `Array` trait
* Add `Scalar` type to `Array`
* Add `iter` and `iter_mut` methods to `Array`
* Add `as_slice` and `as_mut_slice` methods to `Array`
* Add `LEN` constant to `Array`
* Add `Least16`, `Least32`, `Least64`, and `Least128` traits
* Add `from_u16_unchecked`, `from_u32_unchecked`, `from_u64_unchecked`, and `from_u128_unchecked` constructors to `Uint`
* Add `from_i16_unchecked`, `from_i32_unchecked`, `from_i64_unchecked`, and `from_i128_unchecked` constructors to `Int`
* Add `from_u16` and `from_i16` constructors to `Least16`
* Add `from_u32` and `from_i32` constructors to `Least32`
* Add `from_u64` and `from_i64` constructors to `Least64`
* Add `from_u128` and `from_i128` constructors to `Least128`
* Add `MIN` and `MAX` constants to `Uint`, `Int`, and `Float`
* Add `NAN`, `INFINITY`, and `NEG_INFINITY` constants to `Float`

## 0.1.0

* Add `ptr` module
* Add `ConstPtr` and `MutPtr` traits to `ptr`
* Add `Target` type to `ConstPtr` and `MutPtr`
* Add `null` constructor to `ConstPtr` and `MutPtr`
* Add `is_null` method to `ConstPtr` and `MutPtr`
* Relicense under MIT or Apache 2.0
* Add `ConstPtr` type to `MutPtr`
* Add `MutPtr` type to `ConstPtr`
* Add `cast_const` method to `MutPtr`
* Add `cast_mut` method to `ConstPtr`
* Require bitwise operations for traits
* Add `from_i8` constructor to `Int`
* Add `from_u8` constructor to `Uint`
* Add `from_f16`, `from_f64_lossy`, and `from_f128_lossy` constructors to `Float`
* Add `unstable-docs` feature
* Require comparison operations for traits
* Remove `Num` trait
* Simplify operator requirements
* Add `addr` method to `ConstPtr` and `MutPtr`
* Add mathematical constants to `Float`
* Require `Neg` for traits
* Require `Default` and `Debug` for all traits
* Require `Display` for traits
* Require `Sum` and `Product` for traits
* Require `Pointer`, `Binary`, `LowerExp`, `LowerHex`, `Octal`, `UpperExp`, and `UpperHex` for traits

## 0.0.0

* Add changelog
* Add gitignore
* Add Cargo manifest
* License under MPL 2.0
* Set MSRV to 1.87 and edition to 2024
* Configure lints
* Add `std` and `alloc` features
* Add `num` module
* Add `Num`, `Int`, `Uint`, `Float`, and `StdFloat` traits to `num`
* Add `f16` and `f128` features
* Add `cast_signed` method to `Uint`
* Add `cast_unsigned` method to `Int`
* Add `sqrt`, `cbrt`, `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `atan2`, `sinh`, `cosh`, `tanh`, `asinh`, `acosh`, `atanh`, `exp`, `exp2`, `log`, `ln`, `log2`, `log10`, `round`, `fract`, `ceil`, `floor`, and `trunc` methods to `StdFloat`
* Add `mul_add` method to `Float`
* Add `Bits` type to `Float`
* Add `from_bits` constructor and `to_bits` destructor to `Float`
* Add `Signed` type to `Uint`
* Add `Unsigned` type to `Int`
