mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 16:57:58 +00:00
Remove multiply_by_rational (#11598)
* Removed multiply_by_rational Replaced with multiply_by_rational_with_rounding * fixes * Test Fixes * nightly fmt * Test Fix * Fixed fuzzer.
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
//! Decimal Fixed Point implementations for Substrate runtime.
|
||||
|
||||
use crate::{
|
||||
helpers_128bit::{multiply_by_rational, multiply_by_rational_with_rounding, sqrt},
|
||||
helpers_128bit::{multiply_by_rational_with_rounding, sqrt},
|
||||
traits::{
|
||||
Bounded, CheckedAdd, CheckedDiv, CheckedMul, CheckedNeg, CheckedSub, One,
|
||||
SaturatedConversion, Saturating, UniqueSaturatedInto, Zero,
|
||||
@@ -151,10 +151,14 @@ pub trait FixedPointNumber:
|
||||
let d: I129 = d.into();
|
||||
let negative = n.negative != d.negative;
|
||||
|
||||
multiply_by_rational(n.value, Self::DIV.unique_saturated_into(), d.value)
|
||||
.ok()
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
.map(Self::from_inner)
|
||||
multiply_by_rational_with_rounding(
|
||||
n.value,
|
||||
Self::DIV.unique_saturated_into(),
|
||||
d.value,
|
||||
Rounding::from_signed(SignedRounding::Minor, negative),
|
||||
)
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
.map(Self::from_inner)
|
||||
}
|
||||
|
||||
/// Checked multiplication for integer type `N`. Equal to `self * n`.
|
||||
@@ -165,9 +169,13 @@ pub trait FixedPointNumber:
|
||||
let rhs: I129 = n.into();
|
||||
let negative = lhs.negative != rhs.negative;
|
||||
|
||||
multiply_by_rational(lhs.value, rhs.value, Self::DIV.unique_saturated_into())
|
||||
.ok()
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
multiply_by_rational_with_rounding(
|
||||
lhs.value,
|
||||
rhs.value,
|
||||
Self::DIV.unique_saturated_into(),
|
||||
Rounding::from_signed(SignedRounding::Minor, negative),
|
||||
)
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
}
|
||||
|
||||
/// Saturating multiplication for integer type `N`. Equal to `self * n`.
|
||||
@@ -832,10 +840,14 @@ macro_rules! implement_fixed {
|
||||
// is equivalent to the `SignedRounding::NearestPrefMinor`. This means it is
|
||||
// expected to give exactly the same result as `const_checked_div` when the result
|
||||
// is positive and a result up to one epsilon greater when it is negative.
|
||||
multiply_by_rational(lhs.value, Self::DIV as u128, rhs.value)
|
||||
.ok()
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
.map(Self)
|
||||
multiply_by_rational_with_rounding(
|
||||
lhs.value,
|
||||
Self::DIV as u128,
|
||||
rhs.value,
|
||||
Rounding::from_signed(SignedRounding::Minor, negative),
|
||||
)
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
.map(Self)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -845,10 +857,14 @@ macro_rules! implement_fixed {
|
||||
let rhs: I129 = other.0.into();
|
||||
let negative = lhs.negative != rhs.negative;
|
||||
|
||||
multiply_by_rational(lhs.value, rhs.value, Self::DIV as u128)
|
||||
.ok()
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
.map(Self)
|
||||
multiply_by_rational_with_rounding(
|
||||
lhs.value,
|
||||
rhs.value,
|
||||
Self::DIV as u128,
|
||||
Rounding::from_signed(SignedRounding::Minor, negative),
|
||||
)
|
||||
.and_then(|value| from_i129(I129 { value, negative }))
|
||||
.map(Self)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user