[−][src]Struct sp_arithmetic::Fixed128
A signed fixed-point number. Can hold any value in the range [-170_141_183_460_469_231_731, 170_141_183_460_469_231_731] with fixed-point accuracy of 10 ** 18.
Methods
impl Fixed128[src]
pub fn from_natural(int: i128) -> Self[src]
Create self from a natural number.
Note that this might be lossy.
pub const fn accuracy() -> i128[src]
Accuracy of Fixed128.
pub const fn from_parts(parts: i128) -> Self[src]
Raw constructor. Equal to parts / DIV.
pub fn from_rational<N: UniqueSaturatedInto<i128>>(n: N, d: NonZeroI128) -> Self[src]
Creates self from a rational number. Equal to n/d.
Note that this might be lossy. Only use this if you are sure that n * DIV can fit into an
i128.
pub fn deconstruct(self) -> i128[src]
Consume self and return the inner raw i128 value.
Note this is a low level function, as the returned value is represented with accuracy.
pub fn recip(&self) -> Option<Self>[src]
Takes the reciprocal(inverse) of Fixed128, 1/x
pub fn checked_add(&self, rhs: &Self) -> Option<Self>[src]
Checked add. Same semantic to num_traits::CheckedAdd.
pub fn checked_sub(&self, rhs: &Self) -> Option<Self>[src]
Checked sub. Same semantic to num_traits::CheckedSub.
pub fn checked_mul(&self, rhs: &Self) -> Option<Self>[src]
Checked mul. Same semantic to num_traits::CheckedMul.
pub fn checked_div(&self, rhs: &Self) -> Option<Self>[src]
Checked div. Same semantic to num_traits::CheckedDiv.
pub fn checked_mul_int<N>(&self, other: &N) -> Option<N> where
N: Copy + TryFrom<i128> + TryInto<i128>, [src]
N: Copy + TryFrom<i128> + TryInto<i128>,
Checked mul for int type N.
pub fn saturating_mul_int<N>(&self, other: &N) -> N where
N: Copy + TryFrom<i128> + TryInto<i128> + Bounded, [src]
N: Copy + TryFrom<i128> + TryInto<i128> + Bounded,
Checked mul for int type N.
pub fn checked_div_int<N>(&self, other: &N) -> Option<N> where
N: Copy + TryFrom<i128> + TryInto<i128>, [src]
N: Copy + TryFrom<i128> + TryInto<i128>,
Checked div for int type N.
pub fn zero() -> Self[src]
pub fn is_zero(&self) -> bool[src]
pub fn saturating_abs(&self) -> Self[src]
Saturating absolute value. Returning MAX if parts == i128::MIN instead of overflowing.
pub fn is_positive(&self) -> bool[src]
pub fn is_negative(&self) -> bool[src]
pub fn saturated_multiply_accumulate<N>(self, int: N) -> N where
N: TryFrom<u128> + From<u64> + UniqueSaturatedInto<u64> + Bounded + Clone + Saturating + Rem<N, Output = N> + Div<N, Output = N> + Mul<N, Output = N> + Add<N, Output = N>, [src]
N: TryFrom<u128> + From<u64> + UniqueSaturatedInto<u64> + Bounded + Clone + Saturating + Rem<N, Output = N> + Div<N, Output = N> + Mul<N, Output = N> + Add<N, Output = N>,
Performs a saturated multiply and accumulate by unsigned number.
Returns a saturated int + (self * int).
Trait Implementations
impl Add<Fixed128> for Fixed128[src]
Note that this is a standard, potentially-panicking, implementation. Use Saturating trait
for safe addition.
type Output = Self
The resulting type after applying the + operator.
fn add(self, rhs: Self) -> Self::Output[src]
impl Bounded for Fixed128[src]
impl Clone for Fixed128[src]
impl Copy for Fixed128[src]
impl Debug for Fixed128[src]
impl Decode for Fixed128[src]
impl Default for Fixed128[src]
impl<'de> Deserialize<'de> for Fixed128[src]
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> where
D: Deserializer<'de>, [src]
D: Deserializer<'de>,
impl Encode for Fixed128[src]
fn encode_to<EncOut: Output>(&self, dest: &mut EncOut)[src]
fn encode(&self) -> Vec<u8>[src]
fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R[src]
fn size_hint(&self) -> usize[src]
impl EncodeLike<Fixed128> for Fixed128[src]
impl Eq for Fixed128[src]
impl<P: PerThing> From<P> for Fixed128[src]
impl Ord for Fixed128[src]
fn cmp(&self, other: &Fixed128) -> Ordering[src]
#[must_use]fn max(self, other: Self) -> Self1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self[src]
impl PartialEq<Fixed128> for Fixed128[src]
impl PartialOrd<Fixed128> for Fixed128[src]
fn partial_cmp(&self, other: &Fixed128) -> Option<Ordering>[src]
fn lt(&self, other: &Fixed128) -> bool[src]
fn le(&self, other: &Fixed128) -> bool[src]
fn gt(&self, other: &Fixed128) -> bool[src]
fn ge(&self, other: &Fixed128) -> bool[src]
impl Saturating for Fixed128[src]
fn saturating_add(self, rhs: Self) -> Self[src]
fn saturating_sub(self, rhs: Self) -> Self[src]
fn saturating_mul(self, rhs: Self) -> Self[src]
fn saturating_pow(self, exp: usize) -> Self[src]
impl Serialize for Fixed128[src]
impl StructuralEq for Fixed128[src]
impl StructuralPartialEq for Fixed128[src]
impl Sub<Fixed128> for Fixed128[src]
Note that this is a standard, potentially-panicking, implementation. Use Saturating trait
for safe subtraction.
Auto Trait Implementations
impl RefUnwindSafe for Fixed128
impl Send for Fixed128
impl Sync for Fixed128
impl Unpin for Fixed128
impl UnwindSafe for Fixed128
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<S> Codec for S where
S: Encode + Decode, [src]
S: Encode + Decode,
impl<T, X> Decode for X where
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>, [src]
T: Decode + Into<X>,
X: WrapperTypeDecode<Wrapped = T>,
impl<T> DecodeAll for T where
T: Decode, [src]
T: Decode,
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>, [src]
T: for<'de> Deserialize<'de>,
impl<T, X> Encode for X where
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>, [src]
T: Encode + ?Sized,
X: WrapperTypeEncode<Target = T>,
fn size_hint(&self) -> usize[src]
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R, [src]
F: FnOnce(&[u8]) -> R,
fn encode(&self) -> Vec<u8>[src]
fn encode_to<W>(&self, dest: &mut W) where
W: Output, [src]
W: Output,
impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
T: Encode, [src]
T: Encode,
impl<'_, T> EncodeLike<&'_ T> for T where
T: Encode, [src]
T: Encode,
impl<'_, T> EncodeLike<&'_ mut T> for T where
T: Encode, [src]
T: Encode,
impl<T> EncodeLike<Arc<T>> for T where
T: Encode, [src]
T: Encode,
impl<T> EncodeLike<Box<T>> for T where
T: Encode, [src]
T: Encode,
impl<'a, T> EncodeLike<Cow<'a, T>> for T where
T: Encode + ToOwned, [src]
T: Encode + ToOwned,
impl<T> EncodeLike<Rc<T>> for T where
T: Encode, [src]
T: Encode,
impl<T> From<T> for T[src]
impl<S> FullCodec for S where
S: Decode + FullEncode, [src]
S: Decode + FullEncode,
impl<S> FullEncode for S where
S: Encode + EncodeLike<S>, [src]
S: Encode + EncodeLike<S>,
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> KeyedVec for T where
T: Codec, [src]
T: Codec,
impl<T> SaturatedConversion for T[src]
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>, [src]
Self: UniqueSaturatedFrom<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>, [src]
Self: UniqueSaturatedInto<T>,
impl<T> Saturating for T where
T: Clone + Bounded + One + CheckedMul + Saturating, [src]
T: Clone + Bounded + One + CheckedMul + Saturating,
fn saturating_add(Self, T) -> T[src]
fn saturating_sub(Self, T) -> T[src]
fn saturating_mul(Self, T) -> T[src]
fn saturating_pow(Self, usize) -> T[src]
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T, S> UniqueSaturatedFrom<T> for S where
S: TryFrom<T> + Bounded, [src]
S: TryFrom<T> + Bounded,
fn unique_saturated_from(T) -> S[src]
impl<T, S> UniqueSaturatedInto<T> for S where
S: TryInto<T>,
T: Bounded, [src]
S: TryInto<T>,
T: Bounded,
fn unique_saturated_into(Self) -> T[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,