2020-04-13 11:11:39 -07:00
|
|
|
|
<!-- Copyright © 2018–2020 Trevor Spiteri -->
|
2018-08-10 11:57:59 -07:00
|
|
|
|
|
|
|
|
|
<!-- Copying and distribution of this file, with or without
|
|
|
|
|
modification, are permitted in any medium without royalty provided the
|
|
|
|
|
copyright notice and this notice are preserved. This file is offered
|
|
|
|
|
as-is, without any warranty. -->
|
|
|
|
|
|
2020-10-20 03:10:49 -07:00
|
|
|
|
Version 1.4.0 (unreleased)
|
|
|
|
|
==========================
|
|
|
|
|
|
2020-10-20 12:23:14 -07:00
|
|
|
|
* The following methods were added to all fixed-point types, to the
|
|
|
|
|
[`Fixed`][tf-1-4] trait, and to the [`Wrapping`][w-1-4] wrapper:
|
|
|
|
|
* [`recip`][f-rec-1-4], [`checked_recip`][f-crec-1-4],
|
|
|
|
|
[`saturating_recip`][f-srec-1-4],
|
|
|
|
|
[`wrapping_recip`][f-wrec-1-4],
|
|
|
|
|
[`overflowing_recip`][f-orec-1-4]
|
2020-10-20 07:02:43 -07:00
|
|
|
|
* For the experimental feature [`num-traits`][feat-exp-1-4], the
|
|
|
|
|
following traits were implemented where applicable ([issue 23]):
|
|
|
|
|
* [`Num`][nt-0-2-num]
|
|
|
|
|
* [`Signed`][nt-0-2-signed], [`Unsigned`][nt-0-2-unsigned]
|
|
|
|
|
* [`Inv`][nt-0-2-inv]
|
|
|
|
|
* [`MulAdd`][nt-0-2-ma], [`MulAddAssign`][nt-0-2-maa]
|
|
|
|
|
* [`FloatConst`][nt-0-2-fc]
|
|
|
|
|
* [`ToPrimitive`][nt-0-2-tp], [`FromPrimitive`][nt-0-2-fp]
|
2020-10-20 03:10:49 -07:00
|
|
|
|
* For the experimental feature [`serde-str`][feat-exp-1-4],
|
|
|
|
|
serialization in human-readable formats was made more convenient
|
2020-10-20 07:02:43 -07:00
|
|
|
|
to write manually ([issue 24]). This makes it incompatible with
|
|
|
|
|
the version in 1.3.0.
|
2020-10-20 03:10:49 -07:00
|
|
|
|
|
2020-10-20 12:23:14 -07:00
|
|
|
|
[f-crec-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/struct.FixedI32.html#method.checked_recip
|
|
|
|
|
[f-orec-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/struct.FixedI32.html#method.overflowing_recip
|
|
|
|
|
[f-rec-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/struct.FixedI32.html#method.recip
|
|
|
|
|
[f-srec-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/struct.FixedI32.html#method.saturating_recip
|
|
|
|
|
[f-wrec-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/struct.FixedI32.html#method.wrapping_recip
|
2020-10-20 03:10:49 -07:00
|
|
|
|
[feat-exp-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/#experimental-optional-features
|
2020-10-20 07:02:43 -07:00
|
|
|
|
[issue 23]: https://gitlab.com/tspiteri/fixed/-/issues/23
|
|
|
|
|
[issue 24]: https://gitlab.com/tspiteri/fixed/-/issues/24
|
|
|
|
|
[nt-0-2-fc]: https://docs.rs/num-traits/^0.2/num_traits/float/trait.FloatConst.html
|
|
|
|
|
[nt-0-2-fp]: https://docs.rs/num-traits/^0.2/num_traits/cast/trait.FromPrimitive.html
|
|
|
|
|
[nt-0-2-inv]: https://docs.rs/num-traits/^0.2/num_traits/ops/inv/trait.Inv.html
|
|
|
|
|
[nt-0-2-ma]: https://docs.rs/num-traits/^0.2/num_traits/ops/mul_add/trait.MulAdd.html
|
|
|
|
|
[nt-0-2-maa]: https://docs.rs/num-traits/^0.2/num_traits/ops/mul_add/trait.MulAddAssign.html
|
|
|
|
|
[nt-0-2-num]: https://docs.rs/num-traits/^0.2/num_traits/trait.Num.html
|
|
|
|
|
[nt-0-2-signed]: https://docs.rs/num-traits/^0.2/num_traits/sign/trait.Signed.html
|
|
|
|
|
[nt-0-2-tp]: https://docs.rs/num-traits/^0.2/num_traits/cast/trait.ToPrimitive.html
|
|
|
|
|
[nt-0-2-unsigned]: https://docs.rs/num-traits/^0.2/num_traits/sign/trait.Unsigned.html
|
2020-10-20 12:23:14 -07:00
|
|
|
|
[tf-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/traits/trait.Fixed.html
|
|
|
|
|
[w-1-4]: https://tspiteri.gitlab.io/fixed/dev/fixed/struct.Wrapping.html
|
2020-10-20 03:10:49 -07:00
|
|
|
|
|
2020-10-15 09:48:04 -07:00
|
|
|
|
Version 1.3.0 (2020-10-15)
|
2020-09-17 07:58:26 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-09-22 10:09:41 -07:00
|
|
|
|
* The [`MulAssign`] implementation on fixed-point numbers now
|
|
|
|
|
accepts an rhs fixed-point number with a different number of
|
|
|
|
|
fractional bits from `self`.
|
2020-09-22 08:20:13 -07:00
|
|
|
|
* The following methods were added to all fixed-point types, to the
|
|
|
|
|
[`Fixed`][tf-1-3] trait, and to the [`Wrapping`][w-1-3] wrapper:
|
2020-09-22 06:47:13 -07:00
|
|
|
|
* [`mul_add`][f-ma-1-3], [`checked_mul_add`][f-cma-1-3],
|
|
|
|
|
[`saturating_mul_add`][f-sma-1-3],
|
|
|
|
|
[`wrapping_mul_add`][f-wma-1-3],
|
|
|
|
|
[`overflowing_mul_add`][f-oma-1-3]
|
2020-10-09 05:41:10 -07:00
|
|
|
|
* The new experimental feature [`unwrapped`][feat-exp-1-3] was
|
|
|
|
|
added, providing arithmetic methods that panic on overflow even
|
|
|
|
|
when debug assertions are disabled.
|
|
|
|
|
* The new experimental feature [`serde-str`][feat-exp-1-3] was
|
|
|
|
|
added, which makes serialization use the number’s value in
|
|
|
|
|
human-readable formats.
|
2020-09-17 07:58:26 -07:00
|
|
|
|
|
2020-10-15 09:48:04 -07:00
|
|
|
|
[f-cma-1-3]: https://docs.rs/fixed/~1.3/fixed/struct.FixedI32.html#method.checked_mul_add
|
|
|
|
|
[f-ma-1-3]: https://docs.rs/fixed/~1.3/fixed/struct.FixedI32.html#method.mul_add
|
|
|
|
|
[f-oma-1-3]: https://docs.rs/fixed/~1.3/fixed/struct.FixedI32.html#method.overflowing_mul_add
|
|
|
|
|
[f-sma-1-3]: https://docs.rs/fixed/~1.3/fixed/struct.FixedI32.html#method.saturating_mul_add
|
|
|
|
|
[f-wma-1-3]: https://docs.rs/fixed/~1.3/fixed/struct.FixedI32.html#method.wrapping_mul_add
|
|
|
|
|
[feat-exp-1-3]: https://docs.rs/fixed/~1.3/fixed/#experimental-optional-features
|
|
|
|
|
[tf-1-3]: https://docs.rs/fixed/~1.3/fixed/traits/trait.Fixed.html
|
|
|
|
|
[w-1-3]: https://docs.rs/fixed/~1.3/fixed/struct.Wrapping.html
|
2020-09-17 07:58:26 -07:00
|
|
|
|
|
2020-09-02 04:50:04 -07:00
|
|
|
|
Version 1.2.0 (2020-09-02)
|
2020-08-28 09:27:23 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* The [`const_fixed_from_int!`][cffi-1-2] macro was added to make it
|
|
|
|
|
easy to define constant fixed-point numbers using integer
|
2020-09-02 04:50:04 -07:00
|
|
|
|
expressions ([issue 20]).
|
2020-08-28 09:27:23 -07:00
|
|
|
|
|
2020-09-02 04:50:04 -07:00
|
|
|
|
[cffi-1-2]: https://docs.rs/fixed/~1.2/fixed/macro.const_fixed_from_int.html
|
|
|
|
|
[issue 20]: https://gitlab.com/tspiteri/fixed/-/issues/20
|
2020-08-28 09:27:23 -07:00
|
|
|
|
|
2020-07-20 23:42:56 -07:00
|
|
|
|
Version 1.1.0 (2020-07-21)
|
2020-07-16 03:37:46 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-07-20 23:42:56 -07:00
|
|
|
|
* The new experimental feature [`num-traits`][feat-nt-1-1] was added
|
|
|
|
|
to implement some traits, and to also add the relevant traits as
|
|
|
|
|
supertraits to the [`FixedOptionalFeatures`][fof-1-1] trait
|
|
|
|
|
([issue 18]).
|
2020-07-16 03:37:46 -07:00
|
|
|
|
|
2020-07-20 23:42:56 -07:00
|
|
|
|
[issue 18]: https://gitlab.com/tspiteri/fixed/-/issues/18
|
|
|
|
|
[feat-nt-1-1]: https://docs.rs/fixed/~1.1/fixed/#experimental-optional-features
|
|
|
|
|
[fof-1-1]: https://docs.rs/fixed/~1.1/fixed/traits/trait.FixedOptionalFeatures.html
|
2020-07-16 03:37:46 -07:00
|
|
|
|
|
2020-06-04 09:59:55 -07:00
|
|
|
|
Version 1.0.0 (2020-06-04)
|
2020-05-01 09:28:17 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-06-04 09:18:01 -07:00
|
|
|
|
* The crate now requires rustc version 1.44.0 or later.
|
|
|
|
|
* The following methods are now `const` functions:
|
|
|
|
|
* [`from_be_bytes`][f-fbb-1-0], [`from_le_bytes`][f-flb-1-0],
|
|
|
|
|
[`from_ne_bytes`][f-fnb-1-0]
|
|
|
|
|
* [`to_be_bytes`][f-tbb-1-0], [`to_le_bytes`][f-tlb-1-0],
|
|
|
|
|
[`to_ne_bytes`][f-tnb-1-0]
|
2020-05-08 03:41:35 -07:00
|
|
|
|
* All deprecated items were removed.
|
2020-05-07 14:36:35 -07:00
|
|
|
|
|
2020-06-04 09:59:55 -07:00
|
|
|
|
[f-fbb-1-0]: https://docs.rs/fixed/~1.0/fixed/struct.FixedI32.html#method.from_be_bytes
|
|
|
|
|
[f-flb-1-0]: https://docs.rs/fixed/~1.0/fixed/struct.FixedI32.html#method.from_le_bytes
|
|
|
|
|
[f-fnb-1-0]: https://docs.rs/fixed/~1.0/fixed/struct.FixedI32.html#method.from_ne_bytes
|
|
|
|
|
[f-tbb-1-0]: https://docs.rs/fixed/~1.0/fixed/struct.FixedI32.html#method.to_be_bytes
|
|
|
|
|
[f-tlb-1-0]: https://docs.rs/fixed/~1.0/fixed/struct.FixedI32.html#method.to_le_bytes
|
|
|
|
|
[f-tnb-1-0]: https://docs.rs/fixed/~1.0/fixed/struct.FixedI32.html#method.to_ne_bytes
|
2020-06-04 09:18:01 -07:00
|
|
|
|
|
2020-05-11 11:13:11 -07:00
|
|
|
|
Version 0.5.7 (2020-05-11)
|
2020-05-07 14:36:35 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-05-08 03:41:35 -07:00
|
|
|
|
* The `LosslessTryFrom` and `LosslessTryInto` traits were added.
|
2020-05-09 16:09:41 -07:00
|
|
|
|
* The following methods were added to all fixed-point types, to the
|
|
|
|
|
`Fixed` trait, and to the `Wrapping` wrapper:
|
|
|
|
|
* `leading_ones`, `trailing_ones`
|
2020-05-09 16:13:24 -07:00
|
|
|
|
* The following method was added to unsigned fixed-point types and
|
|
|
|
|
to the `FixedUnsigned` trait:
|
|
|
|
|
* `wrapping_next_power_of_two`
|
2020-05-07 15:37:14 -07:00
|
|
|
|
* The `PHI` and `FRAC_1_PHI` constants were added to the `consts`
|
|
|
|
|
module and as associated constants for fixed-point types.
|
2020-05-01 09:28:17 -07:00
|
|
|
|
|
2020-05-01 09:15:40 -07:00
|
|
|
|
Version 0.5.6 (2020-05-01)
|
2020-04-17 17:21:17 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-05-09 16:09:41 -07:00
|
|
|
|
* The following methods were added to signed fixed-point types and to
|
2020-05-01 08:40:53 -07:00
|
|
|
|
the `FixedSigned` trait:
|
2020-05-01 09:28:17 -07:00
|
|
|
|
* `checked_signum`, `saturating_signum`, `wrapping_signum`,
|
2020-05-01 08:40:53 -07:00
|
|
|
|
`overflowing_signum`
|
|
|
|
|
* The `LossyFrom` and `LossyInto` traits were added to the prelude.
|
|
|
|
|
* Casts deprecated in version 0.3.1 of the *az* crate were marked as
|
|
|
|
|
deprecated.
|
2020-04-18 09:15:22 -07:00
|
|
|
|
|
2020-04-16 14:29:50 -07:00
|
|
|
|
Version 0.5.5 (2020-04-16)
|
2020-04-11 08:44:09 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-04-16 14:29:50 -07:00
|
|
|
|
* Bug fix: an incorrect result could be given when comparing a
|
|
|
|
|
signed fixed-point number of type `FixedI` to a number that would
|
|
|
|
|
overflow by exactly one bit when converting to `FixedI`.
|
2020-04-12 18:17:21 -07:00
|
|
|
|
* The following associated constants were added to all fixed-point
|
|
|
|
|
types, to the `Fixed` trait, and to the `Wrapping` wrapper:
|
|
|
|
|
* `MIN`, `MAX`
|
|
|
|
|
* The following associated constants were added to the `Fixed` trait
|
|
|
|
|
and to the `Wrapping` wrapper:
|
|
|
|
|
* `INT_NBITS`, `FRAC_NBITS`
|
|
|
|
|
* The following methods were added to all fixed-point types and to
|
|
|
|
|
the `Fixed` trait:
|
|
|
|
|
* `int_log2`, `int_log10`
|
|
|
|
|
* `checked_int_log2`, `checked_int_log10`
|
|
|
|
|
* The following methods were added to the `Wrapping` wrapper:
|
|
|
|
|
* `int_log2`, `int_log10`
|
2020-04-16 14:29:50 -07:00
|
|
|
|
* The constants in the `consts` module were also added as associated
|
|
|
|
|
constants to fixed-point types that can represent them.
|
2020-04-11 09:31:31 -07:00
|
|
|
|
* The following methods were deprecated:
|
|
|
|
|
* `min_value`, `max_value`
|
2020-04-11 09:50:26 -07:00
|
|
|
|
* `int_nbits`, `frac_nbits`
|
2020-04-11 08:44:09 -07:00
|
|
|
|
|
2020-02-21 07:34:27 -08:00
|
|
|
|
Version 0.5.4 (2020-02-21)
|
2020-02-21 06:39:02 -08:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Bug fix: `rem_euclid_int` and its checked versions were handling
|
|
|
|
|
overflow incorrectly.
|
|
|
|
|
|
2020-02-13 03:18:22 -08:00
|
|
|
|
Version 0.5.3 (2020-02-13)
|
2020-02-12 04:15:12 -08:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-02-12 15:07:53 -08:00
|
|
|
|
* Bug fix: `round_to_zero` was returning incorrect results for
|
|
|
|
|
negative whole number operands.
|
2020-02-12 08:32:34 -08:00
|
|
|
|
* Bug fix: all remainder operations with a fixed-point LHS and an
|
|
|
|
|
integer RHS were giving an incorrect answer
|
|
|
|
|
(https://gitlab.com/tspiteri/fixed/issues/13).
|
2020-02-12 14:18:24 -08:00
|
|
|
|
* Bug fix: Euclidean division operations by integers were giving an
|
|
|
|
|
incorrect answer.
|
2020-02-12 04:15:12 -08:00
|
|
|
|
* `Rem` and `RemAssign` were implemented for fixed-point numbers.
|
2020-02-12 04:48:35 -08:00
|
|
|
|
* The following methods were added to all fixed-point types and to
|
|
|
|
|
the `Fixed` trait:
|
2020-04-12 18:17:21 -07:00
|
|
|
|
* `checked_rem`
|
|
|
|
|
* `div_euclid`, `rem_euclid`
|
|
|
|
|
* `checked_div_euclid`, `checked_rem_euclid`
|
|
|
|
|
* `saturating_div_euclid`
|
|
|
|
|
* `wrapping_div_euclid`
|
2020-02-12 05:48:10 -08:00
|
|
|
|
* `overflowing_div_euclid`
|
2020-02-12 14:51:31 -08:00
|
|
|
|
* The following methods were added to the `Wrapping` wrapper:
|
2020-04-12 18:17:21 -07:00
|
|
|
|
* `div_euclid`, `rem_euclid`
|
|
|
|
|
* `div_euclid_int`, `rem_euclid_int`
|
2020-02-21 06:39:02 -08:00
|
|
|
|
* The following methods were deprecated:
|
|
|
|
|
* `wrapping_rem_int`, `overflowing_rem_int`
|
2020-02-12 04:15:12 -08:00
|
|
|
|
|
2020-02-02 12:02:14 -08:00
|
|
|
|
Version 0.5.2 (2020-02-02)
|
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* `Wrapping` now supports serialization. (Thanks: Shane Pearman)
|
|
|
|
|
|
2019-12-23 09:15:31 -08:00
|
|
|
|
Version 0.5.1 (2019-12-22)
|
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* `ParseFixedError` implements `Error` when the new `std` feature is
|
|
|
|
|
enabled.
|
|
|
|
|
|
2019-12-06 02:46:41 -08:00
|
|
|
|
Version 0.5.0 (2019-12-06)
|
2019-10-17 06:28:41 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-05-03 07:08:11 -07:00
|
|
|
|
* The crate now requires rustc version 1.39.0 or later.
|
2019-11-24 11:20:46 -08:00
|
|
|
|
* The following methods were added to all fixed-point types and to
|
|
|
|
|
the `Fixed` trait:
|
|
|
|
|
* `from_be_bytes`, `from_le_bytes`, `from_ne_bytes`
|
2020-04-12 18:17:21 -07:00
|
|
|
|
* `to_be_bytes`, `to_le_bytes`, `to_ne_bytes`
|
|
|
|
|
* `div_euclid_int`, `rem_euclid_int`
|
|
|
|
|
* `checked_div_euclid_int`, `checked_rem_euclid_int`
|
|
|
|
|
* `wrapping_div_euclid_int`, `wrapping_rem_euclid_int`
|
|
|
|
|
* `overflowing_div_euclid_int`, `overflowing_rem_euclid_int`
|
2020-04-18 10:28:05 -07:00
|
|
|
|
* Casts deprecated in version 0.3.1 of the *az* crate were marked as
|
|
|
|
|
deprecated.
|
2019-10-17 06:28:41 -07:00
|
|
|
|
|
2019-11-24 09:26:42 -08:00
|
|
|
|
Incompatible changes
|
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
|
|
* Deprecated methods and modules were removed.
|
|
|
|
|
|
2019-11-24 09:47:06 -08:00
|
|
|
|
Version 0.4.6 (2019-10-16)
|
2019-10-10 08:13:36 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2019-10-16 02:32:53 -07:00
|
|
|
|
* Conversions to/from `bf16` are now provided when the `f16` option
|
|
|
|
|
is enabled.
|
2019-10-11 05:55:08 -07:00
|
|
|
|
* The following methods are now `const` functions: `saturating_neg`,
|
|
|
|
|
`saturating_add`, `saturating_sub`, `saturating_mul_int`,
|
|
|
|
|
`saturating_abs`
|
2019-10-10 08:13:36 -07:00
|
|
|
|
* Support for casts using the *az* crate was added.
|
|
|
|
|
|
2019-08-30 13:32:17 -07:00
|
|
|
|
Version 0.4.5 (2019-08-30)
|
2019-08-29 01:12:17 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2019-08-29 02:50:18 -07:00
|
|
|
|
* Bug fix: display of many decimal numbers was panicking in debug
|
|
|
|
|
mode or including a leading zero in release mode.
|
2019-08-30 03:48:31 -07:00
|
|
|
|
* Many methods were added to `Wrapping` for convenience, even if
|
|
|
|
|
they do not involve wrapping.
|
2019-08-29 01:12:17 -07:00
|
|
|
|
|
2019-08-24 04:15:28 -07:00
|
|
|
|
Version 0.4.4 (2019-08-24)
|
2019-08-21 04:30:49 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Bug fix: rounding could produce bad output for `Binary`, `Octal`,
|
|
|
|
|
`LowerHex` and `UpperHex`.
|
2019-08-21 13:15:36 -07:00
|
|
|
|
* The following methods are now `const` functions:
|
2019-08-22 05:21:19 -07:00
|
|
|
|
`is_power_of_two`, `abs`, `wrapping_abs`, `overflowing_abs`
|
2019-08-22 04:33:23 -07:00
|
|
|
|
* The method `round_to_zero` was added.
|
2019-08-23 01:02:50 -07:00
|
|
|
|
* The method `round_ties_to_even` and its checked versions were
|
2019-08-22 04:01:28 -07:00
|
|
|
|
added.
|
2019-08-21 04:30:49 -07:00
|
|
|
|
|
2019-08-20 10:40:53 -07:00
|
|
|
|
Version 0.4.3 (2019-08-20)
|
2019-08-17 07:45:09 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-05-03 07:08:11 -07:00
|
|
|
|
* The crate now requires rustc version 1.34.0 or later.
|
2019-08-20 10:40:53 -07:00
|
|
|
|
* The precision argument is no longer ignored when formatting
|
|
|
|
|
fixed-point numbers; precision should now be handled the same as
|
|
|
|
|
for primitive floating-point numbers in the standard library.
|
|
|
|
|
* Parsing strings now rounds to the nearest with ties rounded to
|
|
|
|
|
even.
|
2019-08-18 15:30:02 -07:00
|
|
|
|
* Checked versions of string parsing methods are now available as
|
2019-08-18 16:16:53 -07:00
|
|
|
|
inherent methods to all fixed-point numbers, and as methods in the
|
|
|
|
|
`Fixed` trait.
|
|
|
|
|
* `Wrapping` now has methods for parsing with wrapping, including
|
|
|
|
|
an implementation of `FromStr`.
|
2019-08-17 07:45:09 -07:00
|
|
|
|
* The following methods are now `const` functions:
|
|
|
|
|
* `min_value`, `max_value`, `from_bits`, `to_bits`
|
2019-08-21 13:15:36 -07:00
|
|
|
|
* `count_ones`, `count_zeros`, `leading_zeros`, `trailing_zeros`
|
2019-08-17 08:10:55 -07:00
|
|
|
|
`rotate_left`, `rotate_right`
|
2019-08-21 13:15:36 -07:00
|
|
|
|
* `wrapping_neg`, `wrapping_add`, `wrapping_sub`,
|
2019-08-17 08:10:55 -07:00
|
|
|
|
`wrapping_mul_int`, `wrapping_shl`, `wrapping_shr`
|
2019-08-21 13:15:36 -07:00
|
|
|
|
* `overflowing_neg`, `overflowing_add`, `overflowing_sub`,
|
2019-08-17 08:10:55 -07:00
|
|
|
|
`overflowing_mul_int`, `overflowing_shl`, `overflowing_shr`
|
|
|
|
|
* `is_positive`, `is_negative`
|
2019-08-17 08:55:50 -07:00
|
|
|
|
* The associated constants `INT_NBITS` and `FRAC_NBITS` were added.
|
2019-08-20 10:40:53 -07:00
|
|
|
|
* The reexports in the `frac` module and the `LeEqU*` traits were
|
|
|
|
|
moved into the new `types::extra` module.
|
2019-08-17 07:45:09 -07:00
|
|
|
|
|
2019-08-16 14:25:19 -07:00
|
|
|
|
Version 0.4.2 (2019-08-16)
|
2019-08-13 10:01:01 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-02-12 14:51:31 -08:00
|
|
|
|
* The new methods `from_num` and `to_num` together with their
|
add {from,to}_num, deprecate sealed::{Int,Float,Fixed}
* new methods from_num, to_num, and their checked versions
* deprecate all other from_* and to_*, except for the FromFixed and
ToFixed traits
* deprecate sealed::{Fixed,Int,Float}
* removed SealedFixed, replace Sealed{Int,Float} with
{Int,Float}Helper
2019-08-16 06:45:26 -07:00
|
|
|
|
checked versions were added to all fixed-point numbers.
|
|
|
|
|
* The methods `from_fixed`, `to_fixed`, `from_int`, `to_int`,
|
|
|
|
|
`from_float`, and `to_float`, and their checked versions, were
|
|
|
|
|
deprecated.
|
2020-02-12 14:51:31 -08:00
|
|
|
|
* The new method `from_num` was added to the `Wrapping` wrapper.
|
2019-08-13 10:01:01 -07:00
|
|
|
|
* Bug fix: parsing of decimal fractions was fixed to give correctly
|
|
|
|
|
rounded results for long decimal fraction strings, for example
|
|
|
|
|
with four fractional bits, 0.96874999… (just below 31⁄32) and
|
|
|
|
|
0.96875 (31⁄32) are now parsed correctly as 0.9375 (15⁄16) and 1.0.
|
|
|
|
|
|
2019-08-12 04:20:13 -07:00
|
|
|
|
Version 0.4.1 (2019-08-12)
|
2019-08-09 13:38:09 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* All fixed-point types now implement `FromStr`.
|
2019-08-10 10:14:15 -07:00
|
|
|
|
* The methods `from_str_binary`, `from_str_octal` and `from_str_hex`
|
|
|
|
|
were added.
|
2019-08-09 13:38:09 -07:00
|
|
|
|
|
2019-08-08 14:25:05 -07:00
|
|
|
|
Version 0.4.0 (2019-08-08)
|
2019-08-02 06:40:22 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2020-05-03 07:08:11 -07:00
|
|
|
|
* The crate now requires rustc version 1.31.0 or later.
|
2019-08-06 05:14:15 -07:00
|
|
|
|
* The `traits` module was added, with its traits `Fixed`,
|
2019-08-06 07:43:39 -07:00
|
|
|
|
`FixedSigned`, `FixedUnsigned`, `FromFixed`, `ToFixed`,
|
|
|
|
|
`LossyFrom` and `LossyInto`.
|
2019-08-06 07:35:58 -07:00
|
|
|
|
* The `saturating_neg` method was added to all fixed-point numbers,
|
|
|
|
|
and the `saturating_abs` method was added to signed fixed-point
|
|
|
|
|
numbers.
|
2019-08-06 09:53:41 -07:00
|
|
|
|
* The `consts` module was added.
|
2019-08-08 14:25:05 -07:00
|
|
|
|
* The `signum` method now wraps instead of panics in release mode.
|
2019-08-06 09:53:41 -07:00
|
|
|
|
|
|
|
|
|
Incompatible changes
|
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
|
|
* The sealed traits `Int` and `Float` now have no provided methods;
|
|
|
|
|
the methods in the old implementation are now provided by
|
|
|
|
|
`FromFixed` and `ToFixed`.
|
2019-08-08 13:47:49 -07:00
|
|
|
|
* Deprecated methods were removed.
|
2019-08-02 06:40:22 -07:00
|
|
|
|
|
2019-08-08 14:25:05 -07:00
|
|
|
|
Contributors
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
* @jean-airoldie
|
|
|
|
|
* @tspiteri
|
|
|
|
|
|
2019-06-27 14:54:28 -07:00
|
|
|
|
Version 0.3.3 (2019-06-27)
|
2019-06-27 14:31:34 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Conversions to/from `isize` and `usize` were added.
|
|
|
|
|
|
2019-02-27 13:52:15 -08:00
|
|
|
|
Version 0.3.2 (2019-02-27)
|
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* The `Wrapping` wrapper was added.
|
|
|
|
|
|
2019-02-06 15:59:41 -08:00
|
|
|
|
Version 0.3.1 (2019-02-07)
|
2019-02-04 03:46:42 -08:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Reimplement `From<bool>` for all fixed-point types which can
|
|
|
|
|
represent the integer 1. This was inadvertently removed in 0.3.0.
|
|
|
|
|
|
2019-02-03 12:37:17 -08:00
|
|
|
|
Version 0.3.0 (2019-02-03)
|
2019-01-29 14:15:38 -08:00
|
|
|
|
==========================
|
|
|
|
|
|
2019-02-03 11:25:37 -08:00
|
|
|
|
* Incompatible change: the return type of `to_int` is now generic.
|
2019-08-02 06:40:22 -07:00
|
|
|
|
* Incompatible change: the `Int` trait implementation for `bool` was
|
|
|
|
|
removed.
|
2019-02-01 11:46:51 -08:00
|
|
|
|
* The new method `to_fixed` was added.
|
|
|
|
|
* The new methods `checked_to_fixed`, `checked_to_int`,
|
|
|
|
|
`saturating_to_fixed`, `saturating_to_int`, `wrapping_to_fixed`,
|
|
|
|
|
`wrapping_to_int`, `overflowing_to_fixed` and `overflowing_to_int`
|
|
|
|
|
were added.
|
|
|
|
|
* The methods `from_fixed`, `to_fixed`, `checked_from_fixed`,
|
|
|
|
|
`checked_to_fixed`, `saturating_from_fixed`,
|
|
|
|
|
`saturating_to_fixed`, `wrapping_from_fixed`, `wrapping_to_fixed`,
|
|
|
|
|
`overflowing_from_fixed` and `overflowing_to_fixed` were added to
|
|
|
|
|
the `Int` trait.
|
|
|
|
|
* The methods `from_fixed`, `to_fixed`, `checked_to_fixed`,
|
|
|
|
|
`saturating_to_fixed`, `wrapping_to_fixed` and
|
|
|
|
|
`overflowing_to_fixed` were added to the `Float` trait.
|
2019-02-02 14:45:03 -08:00
|
|
|
|
* `PartialEq` and `PartialCmp` are now implemented for all
|
|
|
|
|
combinations of fixed-point numbers and primitive integers.
|
2019-02-03 11:36:08 -08:00
|
|
|
|
* The methods `int_bits` and `frac_bits` were deprecated and
|
|
|
|
|
replaced by the methods `int_nbits` and `frac_nbits`.
|
2019-01-29 14:15:38 -08:00
|
|
|
|
|
2019-01-29 13:08:50 -08:00
|
|
|
|
Version 0.2.1 (2019-01-29)
|
2019-01-29 09:34:12 -08:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Bug fix: the `from_fixed` and `from_int` methods (and their
|
|
|
|
|
checked counterparts) could return wrong values for negative
|
|
|
|
|
values.
|
2019-01-29 12:47:55 -08:00
|
|
|
|
* Bug fix: display was using one fractional digit less than
|
|
|
|
|
required, thus yielding the same output for diffent fixed-point
|
|
|
|
|
numbers.
|
2019-01-29 09:34:12 -08:00
|
|
|
|
|
2019-01-28 18:35:42 -08:00
|
|
|
|
Version 0.2.0 (2019-01-29)
|
2019-01-27 18:41:44 -08:00
|
|
|
|
==========================
|
|
|
|
|
|
2019-02-03 11:25:37 -08:00
|
|
|
|
* Incompatible change: The method `from_int` was change to accept a
|
|
|
|
|
generic parameter.
|
2019-01-28 13:43:43 -08:00
|
|
|
|
* The new methods `from_fixed`, `checked_from_fixed`,
|
|
|
|
|
`saturating_from_fixed`, `wrapping_from_fixed` and
|
|
|
|
|
`overflowing_from_fixed` were added.
|
2019-02-03 11:25:37 -08:00
|
|
|
|
* The new methods `checked_from_int`, `saturating_from_int`,
|
|
|
|
|
`wrapping_from_int` and `overflowing_from_int` were added.
|
2019-01-28 10:45:33 -08:00
|
|
|
|
* The new methods `from_float`, `checked_from_float`,
|
|
|
|
|
`saturating_from_float`, `wrapping_from_float` and
|
|
|
|
|
`overflowing_from_float` were added.
|
2019-01-28 18:35:42 -08:00
|
|
|
|
* The new method `to_float` was added.
|
2019-01-28 13:43:43 -08:00
|
|
|
|
* The methods `from_f16`, `from_f32`, `from_f64`, `to_f16`, `to_f32`
|
|
|
|
|
and `to_f64` were deprecated.
|
2019-01-28 18:04:02 -08:00
|
|
|
|
* The `to_int` method was fixed to truncate fractional bits as
|
|
|
|
|
documented for negative values.
|
2019-01-28 17:13:19 -08:00
|
|
|
|
* The new methods `ceil`, `floor`, `round`, `checked_ceil`,
|
|
|
|
|
`checked_floor`, `checked_round`, `saturating_ceil`,
|
|
|
|
|
`saturating_floor`, `saturating_round`, `wrapping_ceil`,
|
|
|
|
|
`wrapping_floor`, `wrapping_round`, `overflowing_ceil`,
|
2019-01-28 18:35:42 -08:00
|
|
|
|
`overflowing_floor` and `overflowing_round` were added.
|
2019-01-28 18:04:02 -08:00
|
|
|
|
* The methods `to_int_ceil`, `to_int_floor` and `to_int_round` were
|
|
|
|
|
deprecated.
|
2019-01-27 18:41:44 -08:00
|
|
|
|
|
2019-01-26 15:39:24 -08:00
|
|
|
|
Version 0.1.6 (2019-01-27)
|
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Optional serde support was added.
|
|
|
|
|
|
2019-01-26 13:02:58 -08:00
|
|
|
|
Version 0.1.5 (2019-01-26)
|
2019-01-26 12:16:20 -08:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Lossless infallible conversions between fixed-point numbers and
|
2019-01-26 12:44:34 -08:00
|
|
|
|
numeric primitives are now supported using `From` and `Into`.
|
2019-01-26 13:22:18 -08:00
|
|
|
|
* A new module `types` is available with aliases for all supported
|
|
|
|
|
fixed-point numbers.
|
2019-01-26 12:16:20 -08:00
|
|
|
|
|
2018-11-29 00:55:39 -08:00
|
|
|
|
Version 0.1.4 (2018-11-29)
|
2018-11-03 09:23:18 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* Division is now implemented for `FixedI128` and `FixedU128`.
|
|
|
|
|
|
2018-08-23 04:32:59 -07:00
|
|
|
|
Version 0.1.3 (2018-08-23)
|
2018-08-23 04:12:32 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2018-08-23 04:32:59 -07:00
|
|
|
|
* The `f16` feature was added, and new methods `from_f16` and
|
|
|
|
|
`to_f16` were added.
|
2018-08-23 04:12:32 -07:00
|
|
|
|
|
2018-08-15 11:14:36 -07:00
|
|
|
|
Version 0.1.2 (2018-08-15)
|
2018-08-12 03:11:28 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* The crate can now be used without the standard library `std`.
|
2018-08-13 15:21:29 -07:00
|
|
|
|
* New methods `from_f32` and `from_f64` were added.
|
2018-08-14 08:47:29 -07:00
|
|
|
|
* New methods `is_positive` and `is_negative` were added to signed
|
|
|
|
|
fixed-point numbers.
|
2018-08-12 03:11:28 -07:00
|
|
|
|
|
2018-08-11 12:10:03 -07:00
|
|
|
|
Version 0.1.1 (2018-08-11)
|
2018-08-10 12:28:24 -07:00
|
|
|
|
==========================
|
|
|
|
|
|
2018-08-11 11:21:29 -07:00
|
|
|
|
* Comparisons are now supported between all fixed-point numbers with
|
|
|
|
|
the same underlying integer type.
|
2018-08-10 12:28:24 -07:00
|
|
|
|
* New static methods `int_bits` and `frac_bits` were added.
|
2018-08-11 08:19:17 -07:00
|
|
|
|
* New methods `from_int`, `to_int`, `to_int_ceil`, `to_int_floor`
|
2018-08-11 12:10:03 -07:00
|
|
|
|
and `to_int_round` were added.
|
2018-08-11 08:19:17 -07:00
|
|
|
|
* New methods `int` and `frac` were added.
|
2018-08-10 15:28:31 -07:00
|
|
|
|
* Support for multiplication and division by integers was added.
|
2018-08-10 12:28:24 -07:00
|
|
|
|
|
2018-08-10 11:57:59 -07:00
|
|
|
|
Version 0.1.0 (2018-08-10)
|
|
|
|
|
==========================
|
|
|
|
|
|
|
|
|
|
* `Unsigned` constants provided by the *typenum* crate are now used
|
|
|
|
|
for the number of fractional bits.
|
|
|
|
|
* Many methods and trait implementations available for primitive
|
|
|
|
|
integers are now also supported by the fixed-point numbers.
|
2020-09-22 10:09:41 -07:00
|
|
|
|
|
|
|
|
|
[`MulAssign`]: https://doc.rust-lang.org/nightly/core/ops/trait.MulAssign.html
|