add {div,rem}_euclid_int to Wrapping
This commit is contained in:
parent
873bdfa128
commit
e3e17341f2
|
@ -86,6 +86,9 @@ The conversions supported cover the following cases.
|
|||
* [`saturating_div_euclid`]
|
||||
* [`wrapping_div_euclid`]
|
||||
* [`overflowing_div_euclid`]
|
||||
* The following methods were added to the [`Wrapping`] wrapper:
|
||||
* [`div_euclid`][wde], [`rem_euclid`][wre]
|
||||
* [`div_euclid_int`][wdei], [`rem_euclid_int`][wrei]
|
||||
|
||||
[`RemAssign`]: https://doc.rust-lang.org/nightly/core/ops/trait.RemAssign.html
|
||||
[`Rem`]: https://doc.rust-lang.org/nightly/core/ops/trait.Rem.html
|
||||
|
@ -99,6 +102,10 @@ The conversions supported cover the following cases.
|
|||
[`saturating_div_euclid`]: https://docs.rs/fixed/0.5.3/fixed/struct.FixedI32.html#method.saturating_div_euclid
|
||||
[`wrapping_div_euclid`]: https://docs.rs/fixed/0.5.3/fixed/struct.FixedI32.html#method.wrapping_div_euclid
|
||||
[issue 13]: https://gitlab.com/tspiteri/fixed/issues/13
|
||||
[wde]: https://docs.rs/fixed/0.5.3/fixed/struct.Wrapping.html#method.div_euclid
|
||||
[wdei]: https://docs.rs/fixed/0.5.3/fixed/struct.Wrapping.html#method.div_euclid_int
|
||||
[wre]: https://docs.rs/fixed/0.5.3/fixed/struct.Wrapping.html#method.rem_euclid
|
||||
[wrei]: https://docs.rs/fixed/0.5.3/fixed/struct.Wrapping.html#method.rem_euclid_int
|
||||
|
||||
### Version 0.5.2 news (2020-02-02)
|
||||
|
||||
|
|
|
@ -24,6 +24,9 @@ Version 0.5.3 (unreleased)
|
|||
* `saturating_div_euclid`
|
||||
* `wrapping_div_euclid`
|
||||
* `overflowing_div_euclid`
|
||||
* The following methods were added to the `Wrapping` wrapper:
|
||||
* `div_euclid`, `rem_euclid`
|
||||
* `div_euclid_int`, `rem_euclid_int`
|
||||
|
||||
Version 0.5.2 (2020-02-02)
|
||||
==========================
|
||||
|
@ -113,13 +116,12 @@ Version 0.4.3 (2019-08-20)
|
|||
Version 0.4.2 (2019-08-16)
|
||||
==========================
|
||||
|
||||
* The new methods [`from_num`] and [`to_num`] together with their
|
||||
* The new methods `from_num` and `to_num` together with their
|
||||
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.
|
||||
* The new method [`from_num`][`Wrapping::from_num`] was added to the
|
||||
[`Wrapping`] wrapper.
|
||||
* The new method `from_num` was added to the `Wrapping` wrapper.
|
||||
* 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
|
||||
|
|
|
@ -566,6 +566,45 @@ impl<F: Fixed> Wrapping<F> {
|
|||
pub fn rem_euclid(self, divisor: Wrapping<F>) -> Wrapping<F> {
|
||||
Wrapping(self.0.rem_euclid(divisor.0))
|
||||
}
|
||||
|
||||
/// Euclidean division by an integer.
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics if the divisor is zero.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// use fixed::{types::I16F16, Wrapping};
|
||||
/// let num = Wrapping(I16F16::from_num(7.5));
|
||||
/// assert_eq!(num.div_euclid_int(2), Wrapping(I16F16::from_num(3)));
|
||||
/// let min = Wrapping(I16F16::min_value());
|
||||
/// assert_eq!(min.div_euclid_int(-1), min);
|
||||
/// ```
|
||||
#[inline]
|
||||
pub fn div_euclid_int(self, divisor: F::Bits) -> Wrapping<F> {
|
||||
Wrapping(self.0.wrapping_div_euclid_int(divisor))
|
||||
}
|
||||
|
||||
/// Remainder for Euclidean division.
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics if the divisor is zero.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// use fixed::{types::I16F16, Wrapping};
|
||||
/// let num = Wrapping(I16F16::from_num(7.5));
|
||||
/// assert_eq!(num.rem_euclid_int(2), Wrapping(I16F16::from_num(1.5)));
|
||||
/// assert_eq!((-num).rem_euclid_int(2), Wrapping(I16F16::from_num(0.5)));
|
||||
/// ```
|
||||
#[inline]
|
||||
pub fn rem_euclid_int(self, divisor: F::Bits) -> Wrapping<F> {
|
||||
Wrapping(self.0.rem_euclid_int(divisor))
|
||||
}
|
||||
}
|
||||
|
||||
impl<F: FixedSigned> Wrapping<F> {
|
||||
|
|
Loading…
Reference in New Issue