Struct fixed::FixedI128

source ·
pub struct FixedI128<Frac> { /* private fields */ }
Expand description

A 128-bit signed number with Frac fractional bits.

The number has 128 bits, of which f = Frac are fractional bits and 128 − f are integer bits. The value x can lie in the range −2127/2f ≤ x < 2127/2f. The difference between successive numbers is constant throughout the range: Δ = 1/2f.

For FixedI128<U0>, f = 0 and Δ = 1, and the fixed-point number behaves like an i128 with the value lying in the range −2127 ≤ x < 2127. For FixedI128<U128>, f = 128 and Δ = 1/2128, and the value lies in the range −1/2 ≤ x < 1/2.

Frac is an Unsigned as provided by the typenum crate; the plan is to to have a major version 2 where Frac is replaced by FRAC of type i32 when the Rust compiler’s generic_const_exprs feature is ready and stabilized. An alpha version is already available.

FixedI128<Frac> has the same size, alignment and ABI as i128; it is #[repr(transparent)] with i128 as the only non-zero-sized field.

§Examples

use fixed::{types::extra::U3, FixedI128};
let eleven = FixedI128::<U3>::from_num(11);
assert_eq!(eleven, FixedI128::<U3>::from_bits(11 << 3));
assert_eq!(eleven, 11);
assert_eq!(eleven.to_string(), "11");
let two_point_75 = eleven / 4;
assert_eq!(two_point_75, FixedI128::<U3>::from_bits(11 << 1));
assert_eq!(two_point_75, 2.75);
assert_eq!(two_point_75.to_string(), "2.8");

Implementations§

source§

impl<Frac> FixedI128<Frac>

The implementation of items in this block is independent of the number of fractional bits Frac.

source

pub const ZERO: FixedI128<Frac> = _

Zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ZERO, Fix::from_bits(0));
source

pub const DELTA: FixedI128<Frac> = _

The difference between any two successive representable numbers, Δ.

If the number has f = Frac fractional bits, then Δ = 1/2f.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::DELTA, Fix::from_bits(1));
// binary 0.0001 is decimal 0.0625
assert_eq!(Fix::DELTA, 0.0625);
source

pub const MIN: FixedI128<Frac> = _

The smallest value that can be represented.

If the number has f = Frac fractional bits, then the minimum is −2127/2f.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::MIN, Fix::from_bits(i128::MIN));
source

pub const MAX: FixedI128<Frac> = _

The largest value that can be represented.

If the number has f = Frac fractional bits, then the maximum is (2127 − 1)/2f.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::MAX, Fix::from_bits(i128::MAX));
source

pub const IS_SIGNED: bool = true

true because the FixedI128 type is signed.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert!(Fix::IS_SIGNED);
source

pub const fn from_bits(bits: i128) -> FixedI128<Frac>

Creates a fixed-point number that has a bitwise representation identical to the given integer.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 0010.0000 = 2
assert_eq!(Fix::from_bits(0b10_0000), 2);
source

pub const fn to_bits(self) -> i128

Creates an integer that has a bitwise representation identical to the given fixed-point number.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 2 is 0010.0000
assert_eq!(Fix::from_num(2).to_bits(), 0b10_0000);
source

pub const fn from_be(f: FixedI128<Frac>) -> FixedI128<Frac>

Converts a fixed-point number from big endian to the target’s endianness.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
if cfg!(target_endian = "big") {
    assert_eq!(Fix::from_be(f), f);
} else {
    assert_eq!(Fix::from_be(f), f.swap_bytes());
}
source

pub const fn from_le(f: FixedI128<Frac>) -> FixedI128<Frac>

Converts a fixed-point number from little endian to the target’s endianness.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
if cfg!(target_endian = "little") {
    assert_eq!(Fix::from_le(f), f);
} else {
    assert_eq!(Fix::from_le(f), f.swap_bytes());
}
source

pub const fn to_be(self) -> FixedI128<Frac>

Converts self to big endian from the target’s endianness.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
if cfg!(target_endian = "big") {
    assert_eq!(f.to_be(), f);
} else {
    assert_eq!(f.to_be(), f.swap_bytes());
}
source

pub const fn to_le(self) -> FixedI128<Frac>

Converts self to little endian from the target’s endianness.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
if cfg!(target_endian = "little") {
    assert_eq!(f.to_le(), f);
} else {
    assert_eq!(f.to_le(), f.swap_bytes());
}
source

pub const fn swap_bytes(self) -> FixedI128<Frac>

Reverses the byte order of the fixed-point number.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
let swapped = Fix::from_bits(0x0807_0605_0403_0201_F0DE_BC9A_7856_3412);
assert_eq!(f.swap_bytes(), swapped);
source

pub const fn from_be_bytes(bytes: [u8; 16]) -> FixedI128<Frac>

Creates a fixed-point number from its representation as a byte array in big endian.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_be_bytes([0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]),
    Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708)
);
source

pub const fn from_le_bytes(bytes: [u8; 16]) -> FixedI128<Frac>

Creates a fixed-point number from its representation as a byte array in little endian.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_le_bytes([0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0xF0, 0xDE, 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12]),
    Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708)
);
source

pub const fn from_ne_bytes(bytes: [u8; 16]) -> FixedI128<Frac>

Creates a fixed-point number from its representation as a byte array in native endian.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    if cfg!(target_endian = "big") {
        Fix::from_ne_bytes([0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08])
    } else {
        Fix::from_ne_bytes([0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0xF0, 0xDE, 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12])
    },
    Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708)
);
source

pub const fn to_be_bytes(self) -> [u8; 16]

Returns the memory representation of this fixed-point number as a byte array in big-endian byte order.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let val = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
assert_eq!(
    val.to_be_bytes(),
    [0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
);
source

pub const fn to_le_bytes(self) -> [u8; 16]

Returns the memory representation of this fixed-point number as a byte array in little-endian byte order.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let val = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
assert_eq!(
    val.to_le_bytes(),
    [0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0xF0, 0xDE, 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12]
);
source

pub const fn to_ne_bytes(self) -> [u8; 16]

Returns the memory representation of this fixed-point number as a byte array in native byte order.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let val = Fix::from_bits(0x1234_5678_9ABC_DEF0_0102_0304_0506_0708);
assert_eq!(
    val.to_ne_bytes(),
    if cfg!(target_endian = "big") {
        [0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
    } else {
        [0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0xF0, 0xDE, 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12]
    }
);
source

pub const fn count_ones(self) -> u32

Returns the number of ones in the binary representation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0b11_0010);
assert_eq!(f.count_ones(), 3);
source

pub const fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(!0b11_0010);
assert_eq!(f.count_zeros(), 3);
source

pub const fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let all_ones = !Fix::ZERO;
let f = all_ones - Fix::from_bits(0b10_0000);
assert_eq!(f.leading_ones(), 128 - 6);
source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0b10_0000);
assert_eq!(f.leading_zeros(), 128 - 6);
source

pub const fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0b101_1111);
assert_eq!(f.trailing_ones(), 5);
source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let f = Fix::from_bits(0b10_0000);
assert_eq!(f.trailing_zeros(), 5);
source

pub const fn signed_bits(self) -> u32

Returns the number of bits required to represent the value.

The number of bits required includes an initial one for negative numbers, and an initial zero for non-negative numbers.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(-3).signed_bits(), 7);      // “_101.0000”
assert_eq!(Fix::from_num(-1).signed_bits(), 5);      // “___1.0000”
assert_eq!(Fix::from_num(-0.0625).signed_bits(), 1); // “____.___1”
assert_eq!(Fix::from_num(0).signed_bits(), 1);       // “____.___0”
assert_eq!(Fix::from_num(0.0625).signed_bits(), 2);  // “____.__01”
assert_eq!(Fix::from_num(1).signed_bits(), 6);       // “__01.0000”
assert_eq!(Fix::from_num(3).signed_bits(), 7);       // “_011.0000”
source

pub const fn reverse_bits(self) -> FixedI128<Frac>

Reverses the order of the bits of the fixed-point number.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let bits = 0x1234_5678_9ABC_DEF0_0102_0304_0506_0708_i128;
let rev_bits = bits.reverse_bits();
assert_eq!(Fix::from_bits(bits).reverse_bits(), Fix::from_bits(rev_bits));
source

pub const fn rotate_left(self, n: u32) -> FixedI128<Frac>

Shifts to the left by n bits, wrapping the truncated bits to the right end.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let bits: i128 = (0b111 << (128 - 3)) | 0b1010;
let rot = 0b1010111;
assert_eq!(bits.rotate_left(3), rot);
assert_eq!(Fix::from_bits(bits).rotate_left(3), Fix::from_bits(rot));
source

pub const fn rotate_right(self, n: u32) -> FixedI128<Frac>

Shifts to the right by n bits, wrapping the truncated bits to the left end.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let bits: i128 = 0b1010111;
let rot = (0b111 << (128 - 3)) | 0b1010;
assert_eq!(bits.rotate_right(3), rot);
assert_eq!(Fix::from_bits(bits).rotate_right(3), Fix::from_bits(rot));
source

pub const fn is_zero(self) -> bool

Returns true if the number is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert!(Fix::ZERO.is_zero());
assert!(!Fix::from_num(5).is_zero());
source

pub const fn is_positive(self) -> bool

Returns true if the number is > 0.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert!(Fix::from_num(5).is_positive());
assert!(!Fix::ZERO.is_positive());
assert!(!Fix::from_num(-5).is_positive());
source

pub const fn is_negative(self) -> bool

Returns true if the number is < 0.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert!(!Fix::from_num(5).is_negative());
assert!(!Fix::ZERO.is_negative());
assert!(Fix::from_num(-5).is_negative());
source

pub const fn mul_add<MulFrac: LeEqU128>( self, mul: FixedI128<MulFrac>, add: FixedI128<Frac>, ) -> FixedI128<Frac>

Multiply and add. Returns self × mul + add.

For some cases, the product self × mul would overflow on its own, but the final result self × mul + add is representable; in these cases this method returns the correct result without overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_mul_add instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);
// MAX × 1.5 - MAX = MAX / 2, which does not overflow
assert_eq!(Fix::MAX.mul_add(Fix::from_num(1.5), -Fix::MAX), Fix::MAX / 2);
source

pub const fn rem_euclid(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Remainder for Euclidean division.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).rem_euclid(Fix::from_num(2)), Fix::from_num(1.5));
assert_eq!(Fix::from_num(-7.5).rem_euclid(Fix::from_num(2)), Fix::from_num(0.5));
source

pub const fn abs(self) -> FixedI128<Frac>

Returns the absolute value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let five = Fix::from_num(5);
let minus_five = Fix::from_num(-5);
assert_eq!(five.abs(), five);
assert_eq!(minus_five.abs(), five);
source

pub const fn unsigned_abs(self) -> FixedU128<Frac>

Returns the absolute value using an unsigned type without any wrapping or panicking.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(-5).unsigned_abs(), UFix::from_num(5));
// min_as_unsigned has only highest bit set
let min_as_unsigned = UFix::ONE << (UFix::INT_NBITS - 1);
assert_eq!(Fix::MIN.unsigned_abs(), min_as_unsigned);
source

pub const fn dist(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Returns the distance from self to other.

The distance is the absolute value of the difference.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_dist instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ONE.dist(Fix::from_num(5)), Fix::from_num(4));
assert_eq!(Fix::NEG_ONE.dist(Fix::from_num(2)), Fix::from_num(3));
source

pub const fn unsigned_dist(self, other: FixedI128<Frac>) -> FixedU128<Frac>

Returns the distance from self to other using an unsigned type without any wrapping or panicking.

The distance is the absolute value of the difference.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::NEG_ONE.unsigned_dist(Fix::from_num(2)), UFix::from_num(3));
assert_eq!(Fix::MIN.unsigned_dist(Fix::MAX), UFix::MAX);
source

pub const fn abs_diff(self, other: FixedI128<Frac>) -> FixedU128<Frac>

Returns the absolute value of the difference between self and other using an unsigned type without any wrapping or panicking.

This method is the same as unsigned_dist for signed fixed-point numbers.

source

pub const fn mean(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Returns the mean of self and other.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).mean(Fix::from_num(4)), Fix::from_num(3.5));
assert_eq!(Fix::from_num(-3).mean(Fix::from_num(4)), Fix::from_num(0.5));
source

pub const fn hypot(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Compute the hypotenuse of a right triange.

The hypotenuse is equal to the square root of the sum of the squares of the operands.

This method uses an iterative method for its square root, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √(self² + other²) < result + DELTA.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_hypot instead.

§Examples
use fixed::types::extra::U124;
use fixed::FixedI128;
type Fix = FixedI128<U124>;

// hypot(3, 4) == 5
assert_eq!(Fix::from_num(3).hypot(Fix::from_num(4)), Fix::from_num(5));
source

pub const fn next_multiple_of(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Returns the smallest multiple of other that is ≥ self if other is positive, and the largest multiple of other that is ≤ self if other is negative.

§Panics

Panics if other is zero.

When debug assertions are enabled, this method also panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_next_multiple_of instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).next_multiple_of(Fix::from_num(1.5)),
    Fix::from_num(4.5)
);
assert_eq!(
    Fix::from_num(4).next_multiple_of(Fix::from_num(-1.5)),
    Fix::from_num(3)
);
source

pub const fn inv_lerp<RetFrac: LeEqU128>( self, start: FixedI128<Frac>, end: FixedI128<Frac>, ) -> FixedI128<RetFrac>

Inverse linear interpolation between start and end.

The computed value can have a fixed-point type like self but with a different number of fractional bits.

Returns (self − start) / (end − start). This is 0 when self = start, and 1 when self = end.

§Panics

Panics when start = end.

When debug assertions are enabled, this method also panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_inv_lerp instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let start = Fix::from_num(2);
let end = Fix::from_num(3.5);
assert_eq!(Fix::from_num(0.5).inv_lerp::<U4>(start, end), -1);
assert_eq!(Fix::from_num(2).inv_lerp::<U4>(start, end), 0);
assert_eq!(Fix::from_num(2.75).inv_lerp::<U4>(start, end), 0.5);
assert_eq!(Fix::from_num(3.5).inv_lerp::<U4>(start, end), 1);
assert_eq!(Fix::from_num(5).inv_lerp::<U4>(start, end), 2);
source

pub const fn add_unsigned(self, rhs: FixedU128<Frac>) -> FixedI128<Frac>

Addition with an unsigned fixed-point number.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_add_unsigned instead.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(-5).add_unsigned(UFix::from_num(3)), -2);
source

pub const fn sub_unsigned(self, rhs: FixedU128<Frac>) -> FixedI128<Frac>

Subtraction with an unsigned fixed-point number.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_sub_unsigned instead.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(3).sub_unsigned(UFix::from_num(5)), -2);
source

pub const fn const_not(self) -> FixedI128<Frac>

Bitwise NOT. Usable in constant context.

This is equivalent to the ! operator and Not::not, but can also be used in constant context. Unless required in constant context, use the operator or trait instead.

§Planned deprecation

This method will be deprecated when the ! operator and the Not trait are usable in constant context.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
const A: Fix = Fix::from_bits(0x3E);
const NOT_A: Fix = A.const_not();
assert_eq!(NOT_A, !A);
source

pub const fn const_bitand(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Bitwise AND. Usable in constant context.

This is equivalent to the & operator and BitAnd::bitand, but can also be used in constant context. Unless required in constant context, use the operator or trait instead.

§Planned deprecation

This method will be deprecated when the & operator and the BitAnd trait are usable in constant context.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
const A: Fix = Fix::from_bits(0x3E);
const B: Fix = Fix::from_bits(0x55);
const A_BITAND_B: Fix = A.const_bitand(B);
assert_eq!(A_BITAND_B, A & B);
source

pub const fn const_bitor(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Bitwise OR. Usable in constant context.

This is equivalent to the | operator and BitOr::bitor, but can also be used in constant context. Unless required in constant context, use the operator or trait instead.

§Planned deprecation

This method will be deprecated when the | operator and the BitOr trait are usable in constant context.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
const A: Fix = Fix::from_bits(0x3E);
const B: Fix = Fix::from_bits(0x55);
const A_BITOR_B: Fix = A.const_bitor(B);
assert_eq!(A_BITOR_B, A | B);
source

pub const fn const_bitxor(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Bitwise XOR. Usable in constant context.

This is equivalent to the ^ operator and BitXor::bitxor, but can also be used in constant context. Unless required in constant context, use the operator or trait instead.

§Planned deprecation

This method will be deprecated when the ^ operator and the BitXor trait are usable in constant context.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
const A: Fix = Fix::from_bits(0x3E);
const B: Fix = Fix::from_bits(0x55);
const A_BITXOR_B: Fix = A.const_bitxor(B);
assert_eq!(A_BITXOR_B, A ^ B);
source

pub const fn checked_neg(self) -> Option<FixedI128<Frac>>

Checked negation. Returns the negated value, or None on overflow.

Overflow can only occur when negating the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).checked_neg(), Some(Fix::from_num(-5)));
assert_eq!(Fix::MIN.checked_neg(), None);
source

pub const fn checked_add(self, rhs: FixedI128<Frac>) -> Option<FixedI128<Frac>>

Checked addition. Returns the sum, or None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::MAX - Fix::ONE).checked_add(Fix::ONE), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_add(Fix::ONE), None);
source

pub const fn checked_sub(self, rhs: FixedI128<Frac>) -> Option<FixedI128<Frac>>

Checked subtraction. Returns the difference, or None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::MIN + Fix::ONE).checked_sub(Fix::ONE), Some(Fix::MIN));
assert_eq!(Fix::MIN.checked_sub(Fix::ONE), None);
source

pub const fn checked_rem(self, rhs: FixedI128<Frac>) -> Option<FixedI128<Frac>>

Checked remainder. Returns the remainder, or None if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(1.5).checked_rem(Fix::ONE), Some(Fix::from_num(0.5)));
assert_eq!(Fix::from_num(1.5).checked_rem(Fix::ZERO), None);
source

pub const fn checked_mul_add<MulFrac: LeEqU128>( self, mul: FixedI128<MulFrac>, add: FixedI128<Frac>, ) -> Option<FixedI128<Frac>>

Checked multiply and add. Returns self × mul + add, or None on overflow.

For some cases, the product self × mul would overflow on its own, but the final result self × mul + add is representable; in these cases this method returns the correct result without overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).checked_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Some(Fix::from_num(5))
);
assert_eq!(Fix::MAX.checked_mul_add(Fix::ONE, Fix::ZERO), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_mul_add(Fix::ONE, Fix::DELTA), None);
// MAX × 1.5 - MAX = MAX / 2, which does not overflow
assert_eq!(Fix::MAX.checked_mul_add(Fix::from_num(1.5), -Fix::MAX), Some(Fix::MAX / 2));
source

pub const fn checked_mul_int(self, rhs: i128) -> Option<FixedI128<Frac>>

Checked multiplication by an integer. Returns the product, or None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::MAX.checked_mul_int(1), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_mul_int(2), None);
source

pub const fn checked_div_int(self, rhs: i128) -> Option<FixedI128<Frac>>

Checked division by an integer. Returns the quotient, or None if the divisor is zero or if the division results in overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::MAX.checked_div_int(1), Some(Fix::MAX));
assert_eq!(Fix::ONE.checked_div_int(0), None);
assert_eq!(Fix::MIN.checked_div_int(-1), None);
source

pub const fn checked_rem_euclid( self, rhs: FixedI128<Frac>, ) -> Option<FixedI128<Frac>>

Checked remainder for Euclidean division. Returns the remainder, or None if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let num = Fix::from_num(7.5);
assert_eq!(num.checked_rem_euclid(Fix::from_num(2)), Some(Fix::from_num(1.5)));
assert_eq!(num.checked_rem_euclid(Fix::ZERO), None);
assert_eq!((-num).checked_rem_euclid(Fix::from_num(2)), Some(Fix::from_num(0.5)));
source

pub const fn checked_shl(self, rhs: u32) -> Option<FixedI128<Frac>>

Checked shift left. Returns the shifted number, or None if rhs ≥ 128.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::ONE / 2).checked_shl(3), Some(Fix::from_num(4)));
assert_eq!((Fix::ONE / 2).checked_shl(128), None);
source

pub const fn checked_shr(self, rhs: u32) -> Option<FixedI128<Frac>>

Checked shift right. Returns the shifted number, or None if rhs ≥ 128.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(4).checked_shr(3), Some(Fix::ONE / 2));
assert_eq!(Fix::from_num(4).checked_shr(128), None);
source

pub const fn checked_abs(self) -> Option<FixedI128<Frac>>

Checked absolute value. Returns the absolute value, or None on overflow.

Overflow can only occur when trying to find the absolute value of the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(-5).checked_abs(), Some(Fix::from_num(5)));
assert_eq!(Fix::MIN.checked_abs(), None);
source

pub const fn checked_dist( self, other: FixedI128<Frac>, ) -> Option<FixedI128<Frac>>

Checked distance. Returns the distance from self to other, or None on overflow.

The distance is the absolute value of the difference.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ONE.checked_dist(Fix::from_num(5)), Some(Fix::from_num(4)));
assert_eq!(Fix::MIN.checked_dist(Fix::ZERO), None);
source

pub const fn checked_hypot( self, other: FixedI128<Frac>, ) -> Option<FixedI128<Frac>>

Compute the hypotenuse of a right triange, returning None on overflow.

The hypotenuse is equal to the square root of the sum of the squares of the operands.

This method uses an iterative method for its square root, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √(self² + other²) < result + DELTA.

§Examples
use fixed::types::extra::U124;
use fixed::FixedI128;
type Fix = FixedI128<U124>;

// hypot(3, 4) == 5
assert_eq!(
    Fix::from_num(3).checked_hypot(Fix::from_num(4)),
    Some(Fix::from_num(5))
);

// hypot(2, 7.875) == 8.125, which does not fit
assert_eq!(
    Fix::from_num(2).checked_hypot(Fix::from_num(7.875)),
    None
);
source

pub const fn checked_next_multiple_of( self, other: FixedI128<Frac>, ) -> Option<FixedI128<Frac>>

Checked next multiple of other. Returns the next multiple, or None if other is zero or on overflow.

The next multiple is the smallest multiple of other that is ≥ self if other is positive, and the largest multiple of other that is ≤ self if other is negative.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).checked_next_multiple_of(Fix::from_num(1.5)),
    Some(Fix::from_num(4.5))
);
assert_eq!(Fix::from_num(4).checked_next_multiple_of(Fix::ZERO), None);
assert_eq!(Fix::MAX.checked_next_multiple_of(Fix::from_num(2)), None);
source

pub const fn checked_inv_lerp<RetFrac: LeEqU128>( self, start: FixedI128<Frac>, end: FixedI128<Frac>, ) -> Option<FixedI128<RetFrac>>

Checked inverse linear interpolation between start and end. Returns None on overflow or when start = end.

The computed value can have a fixed-point type like self but with a different number of fractional bits.

Returns (self − start) / (end − start). This is 0 when self = start, and 1 when self = end.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let two = Fix::from_num(2);
let four = Fix::from_num(4);
assert_eq!(Fix::from_num(3).checked_inv_lerp::<U4>(two, four), Some(Fix::from_num(0.5)));
assert_eq!(Fix::from_num(2).checked_inv_lerp::<U4>(two, two), None);
assert_eq!(Fix::MAX.checked_inv_lerp::<U4>(Fix::ZERO, Fix::from_num(0.5)), None);
source

pub const fn checked_add_unsigned( self, rhs: FixedU128<Frac>, ) -> Option<FixedI128<Frac>>

Checked addition with an unsigned fixed-point number. Returns the sum, or None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(
    Fix::from_num(-5).checked_add_unsigned(UFix::from_num(3)),
    Some(Fix::from_num(-2))
);
assert_eq!(Fix::MAX.checked_add_unsigned(UFix::DELTA), None);
source

pub const fn checked_sub_unsigned( self, rhs: FixedU128<Frac>, ) -> Option<FixedI128<Frac>>

Checked subtraction with an unsigned fixed-point number. Returns the difference, or None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(
    Fix::from_num(3).checked_sub_unsigned(UFix::from_num(5)),
    Some(Fix::from_num(-2))
);
assert_eq!(Fix::MIN.checked_sub_unsigned(UFix::DELTA), None);
source

pub const fn saturating_neg(self) -> FixedI128<Frac>

Saturating negation. Returns the negated value, saturating on overflow.

Overflow can only occur when negating the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).saturating_neg(), Fix::from_num(-5));
assert_eq!(Fix::MIN.saturating_neg(), Fix::MAX);
source

pub const fn saturating_add(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Saturating addition. Returns the sum, saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).saturating_add(Fix::from_num(2)), Fix::from_num(5));
assert_eq!(Fix::MAX.saturating_add(Fix::ONE), Fix::MAX);
source

pub const fn saturating_sub(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Saturating subtraction. Returns the difference, saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ONE.saturating_sub(Fix::from_num(3)), Fix::from_num(-2));
assert_eq!(Fix::MIN.saturating_sub(Fix::ONE), Fix::MIN);
source

pub const fn saturating_mul_add<MulFrac: LeEqU128>( self, mul: FixedI128<MulFrac>, add: FixedI128<Frac>, ) -> FixedI128<Frac>

Saturating multiply and add. Returns self × mul + add, saturating on overflow.

For some cases, the product self × mul would overflow on its own, but the final result self × mul + add is representable; in these cases this method returns the correct result without overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).saturating_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);
let half_max = Fix::MAX / 2;
assert_eq!(half_max.saturating_mul_add(Fix::from_num(3), half_max), Fix::MAX);
assert_eq!(half_max.saturating_mul_add(Fix::from_num(-5), half_max), Fix::MIN);
// MAX × 1.5 - MAX = MAX / 2, which does not overflow
assert_eq!(Fix::MAX.saturating_mul_add(Fix::from_num(1.5), -Fix::MAX), half_max);
source

pub const fn saturating_mul_int(self, rhs: i128) -> FixedI128<Frac>

Saturating multiplication by an integer. Returns the product, saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).saturating_mul_int(2), Fix::from_num(6));
assert_eq!(Fix::MAX.saturating_mul_int(2), Fix::MAX);
source

pub const fn saturating_div_int(self, rhs: i128) -> FixedI128<Frac>

Saturating division by an integer. Returns the quotient, saturating on overflow.

Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.5 is binary 1.1
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).saturating_div_int(2), one_point_5);
assert_eq!(Fix::MIN.saturating_div_int(-1), Fix::MAX);
source

pub const fn saturating_abs(self) -> FixedI128<Frac>

Saturating absolute value. Returns the absolute value, saturating on overflow.

Overflow can only occur when trying to find the absolute value of the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(-5).saturating_abs(), Fix::from_num(5));
assert_eq!(Fix::MIN.saturating_abs(), Fix::MAX);
source

pub const fn saturating_dist(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Saturating distance. Returns the distance from self to other, saturating on overflow.

The distance is the absolute value of the difference.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ONE.saturating_dist(Fix::from_num(5)), Fix::from_num(4));
assert_eq!(Fix::MIN.saturating_dist(Fix::MAX), Fix::MAX);
source

pub const fn saturating_hypot(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Compute the hypotenuse of a right triange, saturating on overflow.

The hypotenuse is equal to the square root of the sum of the squares of the operands.

This method uses an iterative method for its square root, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √(self² + other²) < result + DELTA.

§Examples
use fixed::types::extra::U124;
use fixed::FixedI128;
type Fix = FixedI128<U124>;

// hypot(3, 4) == 5
assert_eq!(
    Fix::from_num(3).saturating_hypot(Fix::from_num(4)),
    Fix::from_num(5)
);

// hypot(2, 7.875) == 8.125, which does not fit
assert_eq!(
    Fix::from_num(2).saturating_hypot(Fix::from_num(7.875)),
    Fix::MAX
);
source

pub const fn saturating_next_multiple_of( self, other: FixedI128<Frac>, ) -> FixedI128<Frac>

Saturating next multiple of other.

The next multiple is the smallest multiple of other that is ≥ self if other is positive, and the largest multiple of other that is ≤ self if other is negative.

§Panics

Panics if other is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).saturating_next_multiple_of(Fix::from_num(1.5)),
    Fix::from_num(4.5)
);
assert_eq!(Fix::MAX.saturating_next_multiple_of(Fix::from_num(2)), Fix::MAX);
source

pub const fn saturating_inv_lerp<RetFrac: LeEqU128>( self, start: FixedI128<Frac>, end: FixedI128<Frac>, ) -> FixedI128<RetFrac>

Inverse linear interpolation between start and end, saturating on overflow.

The computed value can have a fixed-point type like self but with a different number of fractional bits.

Returns (self − start) / (end − start). This is 0 when self = start, and 1 when self = end.

§Panics

Panics when start = end.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let two = Fix::from_num(2);
let four = Fix::from_num(4);
assert_eq!(Fix::from_num(3).saturating_inv_lerp::<U4>(two, four), 0.5);
assert_eq!(Fix::MAX.saturating_inv_lerp::<U4>(Fix::ZERO, Fix::from_num(0.5)), Fix::MAX);
assert_eq!(Fix::MAX.saturating_inv_lerp::<U4>(Fix::from_num(0.5), Fix::ZERO), Fix::MIN);
source

pub const fn saturating_add_unsigned( self, rhs: FixedU128<Frac>, ) -> FixedI128<Frac>

Saturating addition with an unsigned fixed-point number. Returns the sum, saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(-5).saturating_add_unsigned(UFix::from_num(3)), -2);
assert_eq!(Fix::from_num(-5).saturating_add_unsigned(UFix::MAX), Fix::MAX);
source

pub const fn saturating_sub_unsigned( self, rhs: FixedU128<Frac>, ) -> FixedI128<Frac>

Saturating subtraction with an unsigned fixed-point number. Returns the difference, saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(3).saturating_sub_unsigned(UFix::from_num(5)), -2);
assert_eq!(Fix::from_num(5).saturating_sub_unsigned(UFix::MAX), Fix::MIN);
source

pub const fn wrapping_neg(self) -> FixedI128<Frac>

Wrapping negation. Returns the negated value, wrapping on overflow.

Overflow can only occur when negating the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).wrapping_neg(), Fix::from_num(-5));
assert_eq!(Fix::MIN.wrapping_neg(), Fix::MIN);
source

pub const fn wrapping_add(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Wrapping addition. Returns the sum, wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_minus_delta = Fix::ONE - Fix::DELTA;
assert_eq!(Fix::from_num(3).wrapping_add(Fix::from_num(2)), Fix::from_num(5));
assert_eq!(Fix::MAX.wrapping_add(Fix::ONE), Fix::MIN + one_minus_delta);
source

pub const fn wrapping_sub(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Wrapping subtraction. Returns the difference, wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_minus_delta = Fix::ONE - Fix::DELTA;
assert_eq!(Fix::from_num(3).wrapping_sub(Fix::from_num(5)), Fix::from_num(-2));
assert_eq!(Fix::MIN.wrapping_sub(Fix::ONE), Fix::MAX - one_minus_delta);
source

pub const fn wrapping_mul_add<MulFrac: LeEqU128>( self, mul: FixedI128<MulFrac>, add: FixedI128<Frac>, ) -> FixedI128<Frac>

Wrapping multiply and add. Returns self × mul + add, wrapping on overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).wrapping_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);
assert_eq!(Fix::MAX.wrapping_mul_add(Fix::ONE, Fix::from_num(0)), Fix::MAX);
assert_eq!(Fix::MAX.wrapping_mul_add(Fix::ONE, Fix::from_bits(1)), Fix::MIN);
let wrapped = Fix::MAX.wrapping_mul_int(4);
assert_eq!(Fix::MAX.wrapping_mul_add(Fix::from_num(3), Fix::MAX), wrapped);
source

pub const fn wrapping_mul_int(self, rhs: i128) -> FixedI128<Frac>

Wrapping multiplication by an integer. Returns the product, wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).wrapping_mul_int(2), Fix::from_num(6));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.wrapping_mul_int(4), wrapped);
source

pub const fn wrapping_div_int(self, rhs: i128) -> FixedI128<Frac>

Wrapping division by an integer. Returns the quotient, wrapping on overflow.

Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.5 is binary 1.1
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).wrapping_div_int(2), one_point_5);
assert_eq!(Fix::MIN.wrapping_div_int(-1), Fix::MIN);
source

pub const fn wrapping_shl(self, rhs: u32) -> FixedI128<Frac>

Wrapping shift left. Wraps rhs if rhs ≥ 128, then shifts and returns the number.

Unlike most other methods which wrap the result, this method (as well as wrapping_shr) wraps the input operand rhs.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::ONE / 2).wrapping_shl(3), Fix::from_num(4));
assert_eq!((Fix::ONE / 2).wrapping_shl(3 + 128), Fix::from_num(4));
source

pub const fn wrapping_shr(self, rhs: u32) -> FixedI128<Frac>

Wrapping shift right. Wraps rhs if rhs ≥ 128, then shifts and returns the number.

Unlike most other methods which wrap the result, this method (as well as wrapping_shl) wraps the input operand rhs.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::from_num(4)).wrapping_shr(3), Fix::ONE / 2);
assert_eq!((Fix::from_num(4)).wrapping_shr(3 + 128), Fix::ONE / 2);
source

pub const fn wrapping_abs(self) -> FixedI128<Frac>

Wrapping absolute value. Returns the absolute value, wrapping on overflow.

Overflow can only occur when trying to find the absolute value of the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(-5).wrapping_abs(), Fix::from_num(5));
assert_eq!(Fix::MIN.wrapping_abs(), Fix::MIN);
source

pub const fn wrapping_dist(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Wrapping distance. Returns the distance from self to other, wrapping on overflow.

The distance is the absolute value of the difference.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ONE.wrapping_dist(Fix::from_num(5)), Fix::from_num(4));
assert_eq!(Fix::MIN.wrapping_dist(Fix::MAX), -Fix::DELTA);
source

pub const fn wrapping_hypot(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Compute the hypotenuse of a right triange, wrapping on overflow.

The hypotenuse is equal to the square root of the sum of the squares of the operands.

This method uses an iterative method for its square root, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √(self² + other²) < result + DELTA.

§Examples
use fixed::types::extra::U124;
use fixed::FixedI128;
type Fix = FixedI128<U124>;

// hypot(3, 4) == 5
assert_eq!(
    Fix::from_num(3).wrapping_hypot(Fix::from_num(4)),
    Fix::from_num(5)
);

// hypot(2, 7.875) == 8.125, which wraps to -7.875
assert_eq!(
    Fix::from_num(2).wrapping_hypot(Fix::from_num(7.875)),
    Fix::from_num(-7.875)
);
source

pub const fn wrapping_next_multiple_of( self, other: FixedI128<Frac>, ) -> FixedI128<Frac>

Wrapping next multiple of other.

The next multiple is the smallest multiple of other that is ≥ self if other is positive, and the largest multiple of other that is ≤ self if other is negative.

§Panics

Panics if other is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).wrapping_next_multiple_of(Fix::from_num(1.5)),
    Fix::from_num(4.5)
);
let max_minus_delta = Fix::MAX - Fix::DELTA;
assert_eq!(
    Fix::MAX.wrapping_next_multiple_of(max_minus_delta),
    max_minus_delta.wrapping_mul_int(2)
);
source

pub const fn wrapping_inv_lerp<RetFrac: LeEqU128>( self, start: FixedI128<Frac>, end: FixedI128<Frac>, ) -> FixedI128<RetFrac>

Inverse linear interpolation between start and end, wrapping on overflow.

The computed value can have a fixed-point type like self but with a different number of fractional bits.

Returns (self − start) / (end − start). This is 0 when self = start, and 1 when self = end.

§Panics

Panics when start = end.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let two = Fix::from_num(2);
let four = Fix::from_num(4);
assert_eq!(Fix::from_num(3).wrapping_inv_lerp::<U4>(two, four), 0.5);
assert_eq!(
    Fix::MAX.wrapping_inv_lerp::<U4>(Fix::ZERO, Fix::from_num(0.5)),
    Fix::MAX.wrapping_mul_int(2)
);
source

pub const fn wrapping_add_unsigned( self, rhs: FixedU128<Frac>, ) -> FixedI128<Frac>

Wrapping addition with an unsigned fixed-point number. Returns the sum, wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(-5).wrapping_add_unsigned(UFix::from_num(3)), -2);
assert_eq!(Fix::ZERO.wrapping_add_unsigned(UFix::MAX), -Fix::DELTA);
source

pub const fn wrapping_sub_unsigned( self, rhs: FixedU128<Frac>, ) -> FixedI128<Frac>

Wrapping subtraction with an unsigned fixed-point number. Returns the difference, wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(3).wrapping_sub_unsigned(UFix::from_num(5)), -2);
assert_eq!(Fix::ZERO.wrapping_sub_unsigned(UFix::MAX), Fix::DELTA);
source

pub const fn unwrapped_neg(self) -> FixedI128<Frac>

Unwrapped negation. Returns the negated value, panicking on overflow.

Overflow can only occur when negating the minimum value.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).unwrapped_neg(), Fix::from_num(-5));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MIN.unwrapped_neg();
source

pub const fn unwrapped_add(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped addition. Returns the sum, panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).unwrapped_add(Fix::from_num(2)), Fix::from_num(5));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_add(Fix::DELTA);
source

pub const fn unwrapped_sub(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped subtraction. Returns the difference, panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).unwrapped_sub(Fix::from_num(5)), Fix::from_num(-2));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MIN.unwrapped_sub(Fix::DELTA);
source

pub const fn unwrapped_rem(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped remainder. Returns the remainder, panicking if the divisor is zero.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(1.5).unwrapped_rem(Fix::ONE), Fix::from_num(0.5));

The following panics because the divisor is zero.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _divisor_is_zero = Fix::from_num(1.5).unwrapped_rem(Fix::ZERO);
source

pub const fn unwrapped_mul_add<MulFrac: LeEqU128>( self, mul: FixedI128<MulFrac>, add: FixedI128<Frac>, ) -> FixedI128<Frac>

Unwrapped multiply and add. Returns self × mul + add, panicking on overflow.

For some cases, the product self × mul would overflow on its own, but the final result self × mul + add is representable; in these cases this method returns the correct result without overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).unwrapped_mul_add(Fix::from_num(0.5), Fix::from_num(3)),
    Fix::from_num(5)
);
// MAX × 1.5 - MAX = MAX / 2, which does not overflow
assert_eq!(Fix::MAX.unwrapped_mul_add(Fix::from_num(1.5), -Fix::MAX), Fix::MAX / 2);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_mul_add(Fix::ONE, Fix::DELTA);
source

pub const fn unwrapped_mul_int(self, rhs: i128) -> FixedI128<Frac>

Unwrapped multiplication by an integer. Returns the product, panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).unwrapped_mul_int(2), Fix::from_num(6));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_mul_int(4);
source

pub const fn unwrapped_div_int(self, rhs: i128) -> FixedI128<Frac>

Unwrapped division by an integer. Returns the quotient, panicking on overflow.

Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero or if the division results in overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.5 is binary 1.1
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).unwrapped_div_int(2), one_point_5);

The following panics because the divisor is zero.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _divisor_is_zero = Fix::from_num(3).unwrapped_div_int(0);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MIN.unwrapped_div_int(-1);
source

pub const fn unwrapped_rem_euclid(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped remainder for Euclidean division. Returns the remainder, panicking if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let num = Fix::from_num(7.5);
assert_eq!(num.unwrapped_rem_euclid(Fix::from_num(2)), Fix::from_num(1.5));

The following panics because the divisor is zero.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _divisor_is_zero = Fix::from_num(3).unwrapped_rem_euclid(Fix::ZERO);
source

pub const fn unwrapped_shl(self, rhs: u32) -> FixedI128<Frac>

Unwrapped shift left. Panics if rhs ≥ 128.

§Panics

Panics if rhs ≥ 128.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::ONE / 2).unwrapped_shl(3), Fix::from_num(4));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::ONE.unwrapped_shl(128);
source

pub const fn unwrapped_shr(self, rhs: u32) -> FixedI128<Frac>

Unwrapped shift right. Panics if rhs ≥ 128.

§Panics

Panics if rhs ≥ 128.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::from_num(4)).unwrapped_shr(3), Fix::ONE / 2);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::ONE.unwrapped_shr(128);
source

pub const fn unwrapped_abs(self) -> FixedI128<Frac>

Unwrapped absolute value. Returns the absolute value, panicking on overflow.

Overflow can only occur when trying to find the absolute value of the minimum value.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(-5).unwrapped_abs(), Fix::from_num(5));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MIN.unwrapped_abs();
source

pub const fn unwrapped_dist(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped distance. Returns the distance from self to other, panicking on overflow.

The distance is the absolute value of the difference.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ONE.unwrapped_dist(Fix::from_num(5)), Fix::from_num(4));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MIN.unwrapped_dist(Fix::ZERO);
source

pub const fn unwrapped_hypot(self, other: FixedI128<Frac>) -> FixedI128<Frac>

Compute the hypotenuse of a right triange, panicking on overflow.

The hypotenuse is equal to the square root of the sum of the squares of the operands.

This method uses an iterative method for its square root, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √(self² + other²) < result + DELTA.

§Panics

Panics if the result does not fit.

§Examples
use fixed::types::extra::U124;
use fixed::FixedI128;
type Fix = FixedI128<U124>;

// hypot(3, 4) == 5
assert_eq!(
    Fix::from_num(3).overflowing_hypot(Fix::from_num(4)),
    (Fix::from_num(5), false)
);

The following panics because of overflow.

use fixed::types::extra::U124;
use fixed::FixedI128;
type Fix = FixedI128<U124>;

// hypot(2, 7.875) == 8.125, which does not fit
let _overflow = Fix::from_num(2).unwrapped_hypot(Fix::from_num(7.875));
source

pub const fn unwrapped_next_multiple_of( self, other: FixedI128<Frac>, ) -> FixedI128<Frac>

Returns the next multiple of other, panicking on overflow.

The next multiple is the smallest multiple of other that is ≥ self if other is positive, and the largest multiple of other that is ≤ self if other is negative.

§Panics

Panics if other is zero or on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).unwrapped_next_multiple_of(Fix::from_num(1.5)),
    Fix::from_num(4.5)
);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_next_multiple_of(Fix::from_num(2));
source

pub const fn unwrapped_inv_lerp<RetFrac: LeEqU128>( self, start: FixedI128<Frac>, end: FixedI128<Frac>, ) -> FixedI128<RetFrac>

Inverse linear interpolation between start and end, panicking on overflow.

The computed value can have a fixed-point type like self but with a different number of fractional bits.

Returns (self − start) / (end − start). This is 0 when self = start, and 1 when self = end.

§Panics

Panics when start = end or when the results overflows.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let two = Fix::from_num(2);
let four = Fix::from_num(4);
assert_eq!(Fix::from_num(3).unwrapped_inv_lerp::<U4>(two, four), 0.5);

The following panics because start = end.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let two = Fix::from_num(2);
let _zero_range = two.unwrapped_inv_lerp::<U4>(two, two);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_inv_lerp::<U4>(Fix::ZERO, Fix::from_num(0.5));
source

pub const fn unwrapped_add_unsigned( self, rhs: FixedU128<Frac>, ) -> FixedI128<Frac>

Unwrapped addition with an unsigned fixed-point number. Returns the sum, panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(-5).unwrapped_add_unsigned(UFix::from_num(3)), -2);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
let _overflow = Fix::MAX.unwrapped_add_unsigned(UFix::DELTA);
source

pub const fn unwrapped_sub_unsigned( self, rhs: FixedU128<Frac>, ) -> FixedI128<Frac>

Unwrapped subtraction with an unsigned fixed-point number. Returns the difference, panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(Fix::from_num(3).unwrapped_sub_unsigned(UFix::from_num(5)), -2);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
let _overflow = Fix::MIN.unwrapped_sub_unsigned(UFix::DELTA);
source

pub const fn overflowing_neg(self) -> (FixedI128<Frac>, bool)

Overflowing negation.

Returns a tuple of the negated value and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Overflow can only occur when negating the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).overflowing_neg(), (Fix::from_num(-5), false));
assert_eq!(Fix::MIN.overflowing_neg(), (Fix::MIN, true));
source

pub const fn overflowing_add( self, rhs: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing addition.

Returns a tuple of the sum and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_minus_delta = Fix::ONE - Fix::DELTA;
assert_eq!(Fix::from_num(3).overflowing_add(Fix::from_num(2)), (Fix::from_num(5), false));
assert_eq!(Fix::MAX.overflowing_add(Fix::ONE), (Fix::MIN + one_minus_delta, true));
source

pub const fn overflowing_sub( self, rhs: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing subtraction.

Returns a tuple of the difference and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_minus_delta = Fix::ONE - Fix::DELTA;
assert_eq!(Fix::from_num(3).overflowing_sub(Fix::from_num(5)), (Fix::from_num(-2), false));
assert_eq!(Fix::MIN.overflowing_sub(Fix::ONE), (Fix::MAX - one_minus_delta, true));
source

pub const fn overflowing_mul_add<MulFrac: LeEqU128>( self, mul: FixedI128<MulFrac>, add: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing multiply and add.

Returns a tuple of self × mul + add and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

For some cases, the product self × mul would overflow on its own, but the final result self × mul + add is representable; in these cases this method returns the correct result without overflow.

The mul parameter can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::MAX.overflowing_mul_add(Fix::ONE, Fix::ZERO),
    (Fix::MAX, false)
);
assert_eq!(
    Fix::MAX.overflowing_mul_add(Fix::ONE, Fix::DELTA),
    (Fix::MIN, true)
);
assert_eq!(
    Fix::MAX.overflowing_mul_add(Fix::from_num(3), Fix::MAX),
    Fix::MAX.overflowing_mul_int(4)
);
// MAX × 1.5 - MAX = MAX / 2, which does not overflow
assert_eq!(
    Fix::MAX.overflowing_mul_add(Fix::from_num(1.5), -Fix::MAX),
    (Fix::MAX / 2, false)
);
source

pub const fn overflowing_mul_int(self, rhs: i128) -> (FixedI128<Frac>, bool)

Overflowing multiplication by an integer.

Returns a tuple of the product and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).overflowing_mul_int(2), (Fix::from_num(6), false));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.overflowing_mul_int(4), (wrapped, true));
source

pub const fn overflowing_div_int(self, rhs: i128) -> (FixedI128<Frac>, bool)

Overflowing division by an integer.

Returns a tuple of the quotient and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned. Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.5 is binary 1.1
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).overflowing_div_int(2), (one_point_5, false));
assert_eq!(Fix::MIN.overflowing_div_int(-1), (Fix::MIN, true));
source

pub const fn overflowing_shl(self, rhs: u32) -> (FixedI128<Frac>, bool)

Overflowing shift left.

Returns a tuple of the shifted value and a bool indicating whether an overflow has occurred. Overflow occurs when rhs ≥ 128. On overflow rhs is wrapped before the shift operation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::ONE / 2).overflowing_shl(3), (Fix::from_num(4), false));
assert_eq!((Fix::ONE / 2).overflowing_shl(3 + 128), (Fix::from_num(4), true));
source

pub const fn overflowing_shr(self, rhs: u32) -> (FixedI128<Frac>, bool)

Overflowing shift right.

Returns a tuple of the shifted value and a bool indicating whether an overflow has occurred. Overflow occurs when rhs ≥ 128. On overflow rhs is wrapped before the shift operation.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!((Fix::from_num(4)).overflowing_shr(3), (Fix::ONE / 2, false));
assert_eq!((Fix::from_num(4)).overflowing_shr(3 + 128), (Fix::ONE / 2, true));
source

pub const fn overflowing_abs(self) -> (FixedI128<Frac>, bool)

Overflowing absolute value.

Returns a tuple of the absolute value and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Overflow can only occur when trying to find the absolute value of the minimum value.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(-5).overflowing_abs(), (Fix::from_num(5), false));
assert_eq!(Fix::MIN.overflowing_abs(), (Fix::MIN, true));
source

pub const fn overflowing_dist( self, other: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing distance.

Returns a tuple of the distance from self to other and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

The distance is the absolute value of the difference.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::ONE.overflowing_dist(Fix::from_num(5)),
    (Fix::from_num(4), false)
);
assert_eq!(
    Fix::MIN.overflowing_dist(Fix::MAX),
    (-Fix::DELTA, true)
);
source

pub const fn overflowing_hypot( self, other: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Compute the hypotenuse of a right triange.

Returns a tuple of the hypotenuse and a bool, indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

The hypotenuse is equal to the square root of the sum of the squares of the operands.

This method uses an iterative method for its square root, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √(self² + other²) < result + DELTA.

§Examples
use fixed::types::extra::U124;
use fixed::FixedI128;
type Fix = FixedI128<U124>;

// hypot(3, 4) == 5
assert_eq!(
    Fix::from_num(3).overflowing_hypot(Fix::from_num(4)),
    (Fix::from_num(5), false)
);

// hypot(2, 7.875) == 8.125, which wraps to -7.875
assert_eq!(
    Fix::from_num(2).overflowing_hypot(Fix::from_num(7.875)),
    (Fix::from_num(-7.875), true)
);
source

pub const fn overflowing_next_multiple_of( self, other: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing next multiple of other.

Returns a tuple of the next multiple and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

The next multiple is the smallest multiple of other that is ≥ self if other is positive, and the largest multiple of other that is ≤ self if other is negative.

§Panics

Panics if other is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(4).overflowing_next_multiple_of(Fix::from_num(1.5)),
    (Fix::from_num(4.5), false)
);
let max_minus_delta = Fix::MAX - Fix::DELTA;
assert_eq!(
    Fix::MAX.overflowing_next_multiple_of(max_minus_delta),
    (max_minus_delta.wrapping_mul_int(2), true)
);
source

pub const fn overflowing_inv_lerp<RetFrac: LeEqU128>( self, start: FixedI128<Frac>, end: FixedI128<Frac>, ) -> (FixedI128<RetFrac>, bool)

Overflowing inverse linear interpolation between start and end.

Returns a tuple of the result and a bool indicationg whether an overflow has occurred. On overflow, the wrapped value is returned.

The computed value can have a fixed-point type like self but with a different number of fractional bits.

Computes (self − start) / (end − start). This is 0 when self = start, and 1 when self = end.

§Panics

Panics when start = end.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let two = Fix::from_num(2);
let four = Fix::from_num(4);
assert_eq!(
    Fix::from_num(3).overflowing_inv_lerp::<U4>(two, four),
    (Fix::from_num(0.5), false)
);
assert_eq!(
    Fix::MAX.overflowing_inv_lerp::<U4>(Fix::ZERO, Fix::from_num(0.5)),
    (Fix::MAX.wrapping_mul_int(2), true)
);
source

pub const fn overflowing_add_unsigned( self, rhs: FixedU128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing addition with an unsigned fixed-point number.

Returns a tuple of the sum and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(
    Fix::from_num(-5).overflowing_add_unsigned(UFix::from_num(3)),
    (Fix::from_num(-2), false)
);
assert_eq!(
    Fix::ZERO.overflowing_add_unsigned(UFix::MAX),
    (-Fix::DELTA, true)
);
source

pub const fn overflowing_sub_unsigned( self, rhs: FixedU128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing subtraction with an unsigned fixed-point number.

Returns a tuple of the difference and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128, FixedU128};
type Fix = FixedI128<U4>;
type UFix = FixedU128<U4>;
assert_eq!(
    Fix::from_num(3).overflowing_sub_unsigned(UFix::from_num(5)),
    (Fix::from_num(-2), false)
);
assert_eq!(
    Fix::ZERO.overflowing_sub_unsigned(UFix::MAX),
    (Fix::DELTA, true)
);
source

pub const unsafe fn unchecked_add(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unchecked addition. Computes self + rhs, assuming overflow cannot occur.

Calling x.unchecked_add(y) is semantically equivalent to calling x.checked_add(y).unwrap_unchecked().

If you’re just trying to avoid the panic in debug mode, then do not use this. Instead, you’re looking for wrapping_add.

§Safety

This results in undefined behavior when self + rhs > MAX or self + rhs < MIN.

source

pub const unsafe fn unchecked_sub(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unchecked subtraction. Computes self − rhs, assuming overflow cannot occur.

Calling x.unchecked_sub(y) is semantically equivalent to calling x.checked_sub(y).unwrap_unchecked().

If you’re just trying to avoid the panic in debug mode, then do not use this. Instead, you’re looking for wrapping_sub.

§Safety

This results in undefined behavior when self − rhs > MAX or self − rhs < MIN.

source

pub const unsafe fn unchecked_mul_int(self, rhs: i128) -> FixedI128<Frac>

Unchecked multiplication by an integer. Computes self × rhs, assuming overflow cannot occur.

Calling x.unchecked_mul_int(y) is semantically equivalent to calling x.checked_mul_int(y).unwrap_unchecked().

If you’re just trying to avoid the panic in debug mode, then do not use this. Instead, you’re looking for wrapping_mul_int.

§Safety

This results in undefined behavior when self × rhs > MAX or self × rhs < MIN.

source§

impl<Frac: LeEqU128> FixedI128<Frac>

The implementation of items in this block depends on the number of fractional bits Frac.

source

pub const INT_NBITS: u32 = _

The number of integer bits.

§Examples
use fixed::{types::extra::U6, FixedI128};
type Fix = FixedI128<U6>;
assert_eq!(Fix::INT_NBITS, 128 - 6);
source

pub const FRAC_NBITS: u32 = Frac::U32

The number of fractional bits.

§Examples
use fixed::{types::extra::U6, FixedI128};
type Fix = FixedI128<U6>;
assert_eq!(Fix::FRAC_NBITS, 6);
source

pub fn from_num<Src: ToFixed>(src: Src) -> FixedI128<Frac>

Creates a fixed-point number from another number.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.to_fixed().
§Panics

For floating-point numbers, panics if the value is not finite.

When debug assertions are enabled, panics if the value does not fit. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_from_num instead.

§Examples
use fixed::{types::extra::U4, types::I16F16, FixedI128};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::from_num(src), Fix::from_bits(0b111 << (4 - 2)));

assert_eq!(Fix::from_num(3i32), Fix::from_bits(3 << 4));
assert_eq!(Fix::from_num(-3i64), Fix::from_bits(-3 << 4));

assert_eq!(Fix::from_num(1.75f32), Fix::from_bits(0b111 << (4 - 2)));
assert_eq!(Fix::from_num(-1.75f64), Fix::from_bits(-0b111 << (4-2)));
source

pub fn to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::from_fixed(self).
§Panics

When debug assertions are enabled, panics if the value does not fit. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_to_num instead.

§Examples
use fixed::{types::extra::U4, types::I30F2, FixedI128};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(src.to_num::<I30F2>(), I30F2::from_bits(0b111));
// src >> 2 is 0.0111, which for I30F2 is truncated to 0.01
assert_eq!((src >> 2u32).to_num::<I30F2>(), I30F2::from_bits(0b1));

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.to_num::<i32>(), 2);
assert_eq!((-two_point_5).to_num::<i64>(), -3);

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.to_num::<f32>(), 1.625f32);
assert_eq!((-one_point_625).to_num::<f64>(), -1.625f64);
source

pub fn checked_from_num<Src: ToFixed>(src: Src) -> Option<FixedI128<Frac>>

Creates a fixed-point number from another number if it fits, otherwise returns None.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.checked_to_fixed().
§Examples
use fixed::{
    types::extra::{U2, U4},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::checked_from_num(src), Some(Fix::from_bits(0b111 << (4 - 2))));
let too_large = FixedI128::<U2>::MAX;
assert!(Fix::checked_from_num(too_large).is_none());

assert_eq!(Fix::checked_from_num(3), Some(Fix::from_bits(3 << 4)));
let too_large = i128::MAX;
assert!(Fix::checked_from_num(too_large).is_none());
let too_small = i128::MIN;
assert!(Fix::checked_from_num(too_small).is_none());

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::checked_from_num(1.75f32), Some(expected));
assert_eq!(Fix::checked_from_num(-1.75f64), Some(-expected));
assert!(Fix::checked_from_num(2e38).is_none());
assert!(Fix::checked_from_num(std::f64::NAN).is_none());
source

pub fn checked_to_num<Dst: FromFixed>(self) -> Option<Dst>

Converts a fixed-point number to another number if it fits, otherwise returns None.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::checked_from_fixed(self).
§Examples
use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.checked_to_num::<I16F16>(), Some(expected));
type TooFewIntBits = FixedI128<U6>;
assert!(Fix::MAX.checked_to_num::<TooFewIntBits>().is_none());

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.checked_to_num::<i32>(), Some(2));
assert_eq!((-two_point_5).checked_to_num::<i64>(), Some(-3));
type AllInt = FixedI128<U0>;
assert!(AllInt::from_bits(-1).checked_to_num::<u128>().is_none());

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.checked_to_num::<f32>(), Some(1.625f32));
source

pub fn saturating_from_num<Src: ToFixed>(src: Src) -> FixedI128<Frac>

Creates a fixed-point number from another number, saturating if it does not fit.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.saturating_to_fixed().
§Panics

This method panics if the value is a floating-point NaN.

§Examples
use fixed::{
    types::extra::{U2, U4},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::saturating_from_num(src), Fix::from_bits(0b111 << (4 - 2)));
let too_large = FixedI128::<U2>::MAX;
assert_eq!(Fix::saturating_from_num(too_large), Fix::MAX);

assert_eq!(Fix::saturating_from_num(3), Fix::from_bits(3 << 4));
let too_small = i128::MIN;
assert_eq!(Fix::saturating_from_num(too_small), Fix::MIN);

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::saturating_from_num(1.75f32), expected);
assert_eq!(Fix::saturating_from_num(-1.75f64), -expected);
assert_eq!(Fix::saturating_from_num(2e38), Fix::MAX);
assert_eq!(Fix::saturating_from_num(std::f64::NEG_INFINITY), Fix::MIN);
source

pub fn saturating_to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number, saturating the value if it does not fit.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::saturating_from_fixed(self).
§Examples
use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.saturating_to_num::<I16F16>(), expected);
type TooFewIntBits = FixedI128<U6>;
let saturated = Fix::MAX.saturating_to_num::<TooFewIntBits>();
assert_eq!(saturated, TooFewIntBits::MAX);

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.saturating_to_num::<i32>(), 2);
type AllInt = FixedI128<U0>;
assert_eq!(AllInt::from_bits(-1).saturating_to_num::<u128>(), 0);

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.saturating_to_num::<f32>(), 1.625f32);
source

pub fn wrapping_from_num<Src: ToFixed>(src: Src) -> FixedI128<Frac>

Creates a fixed-point number from another number, wrapping the value on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.wrapping_to_fixed().
§Panics

For floating-point numbers, panics if the value is not finite.

§Examples
use fixed::{
    types::extra::{U0, U4},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::wrapping_from_num(src), Fix::from_bits(0b111 << (4 - 2)));
// integer 0b1101 << (128 - 7) will wrap to fixed-point 1010...
let too_large = FixedI128::<U0>::from_bits(0b1101 << (128 - 7));
let wrapped = Fix::from_bits(0b1010 << (128 - 4));
assert_eq!(Fix::wrapping_from_num(too_large), wrapped);

// integer 0b1101 << (128 - 7) will wrap to fixed-point 1010...
let large: i128 = 0b1101 << (128 - 7);
let wrapped = Fix::from_bits(0b1010 << (128 - 4));
assert_eq!(Fix::wrapping_from_num(large), wrapped);

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::wrapping_from_num(1.75f32), expected);
// 1.75 << (128 - 4) wraps to binary 11000...
let large = 1.75 * 2f32.powi(128 - 4);
let wrapped = Fix::from_bits(0b1100 << (128 - 4));
assert_eq!(Fix::wrapping_from_num(large), wrapped);
source

pub fn wrapping_to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number, wrapping the value on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::wrapping_from_fixed(self).
§Examples
use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.wrapping_to_num::<I16F16>(), expected);
type TooFewIntBits = FixedI128<U6>;
let wrapped = TooFewIntBits::from_bits(Fix::MAX.to_bits() << 2);
assert_eq!(Fix::MAX.wrapping_to_num::<TooFewIntBits>(), wrapped);

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.wrapping_to_num::<i32>(), 2);
type AllInt = FixedI128<U0>;
assert_eq!(AllInt::from_bits(-1).wrapping_to_num::<u128>(), u128::MAX);

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.wrapping_to_num::<f32>(), 1.625f32);
source

pub fn unwrapped_from_num<Src: ToFixed>(src: Src) -> FixedI128<Frac>

Creates a fixed-point number from another number, panicking on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other number src for which ToFixed is implemented, in which case this method returns src.unwrapped_to_fixed().
§Panics

Panics if the value does not fit.

For floating-point numbers, also panics if the value is not finite.

§Examples
use fixed::{
    types::{extra::U4, I16F16},
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(Fix::unwrapped_from_num(src), Fix::from_bits(0b111 << (4 - 2)));

The following panics because of overflow.

use fixed::{
    types::extra::{U0, U4},
    FixedI128,
};
type Fix = FixedI128<U4>;
let too_large = FixedI128::<U0>::from_bits(0b1101 << (128 - 7));
let _overflow = Fix::unwrapped_from_num(too_large);
source

pub fn unwrapped_to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number, panicking on overflow.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::unwrapped_from_fixed(self).
§Panics

Panics if the value does not fit.

§Examples
use fixed::{
    types::{extra::U4, I16F16},
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.unwrapped_to_num::<I16F16>(), expected);

The following panics because of overflow.

use fixed::{
    types::extra::{U4, U6},
    FixedI128,
};
type Fix = FixedI128<U4>;
type TooFewIntBits = FixedI128<U6>;
let _overflow = Fix::MAX.unwrapped_to_num::<TooFewIntBits>();
source

pub fn overflowing_from_num<Src: ToFixed>(src: Src) -> (FixedI128<Frac>, bool)

Creates a fixed-point number from another number.

Returns a tuple of the fixed-point number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

The other number can be:

§Panics

For floating-point numbers, panics if the value is not finite.

§Examples
use fixed::{
    types::extra::{U0, U4},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = I16F16::from_bits(0b111 << (16 - 2));
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::overflowing_from_num(src), (expected, false));
// integer 0b1101 << (128 - 7) will wrap to fixed-point 1010...
let too_large = FixedI128::<U0>::from_bits(0b1101 << (128 - 7));
let wrapped = Fix::from_bits(0b1010 << (128 - 4));
assert_eq!(Fix::overflowing_from_num(too_large), (wrapped, true));

assert_eq!(Fix::overflowing_from_num(3), (Fix::from_bits(3 << 4), false));
// integer 0b1101 << (128 - 7) will wrap to fixed-point 1010...
let large: i128 = 0b1101 << (128 - 7);
let wrapped = Fix::from_bits(0b1010 << (128 - 4));
assert_eq!(Fix::overflowing_from_num(large), (wrapped, true));

// 1.75 is 1.11 in binary
let expected = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(Fix::overflowing_from_num(1.75f32), (expected, false));
// 1.75 << (128 - 4) wraps to binary 11000...
let large = 1.75 * 2f32.powi(128 - 4);
let wrapped = Fix::from_bits(0b1100 << (128 - 4));
assert_eq!(Fix::overflowing_from_num(large), (wrapped, true));
source

pub fn overflowing_to_num<Dst: FromFixed>(self) -> (Dst, bool)

Converts a fixed-point number to another number.

Returns a tuple of the number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

The other number can be:

  • Another fixed-point number. Any extra fractional bits are discarded, which rounds towards −∞.
  • An integer of type i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, or usize. Any fractional bits are discarded, which rounds towards −∞.
  • A floating-point number of type half::f16, half::bf16, f32, f64 or F128. For this conversion, the method rounds to the nearest, with ties rounding to even.
  • Any other type Dst for which FromFixed is implemented, in which case this method returns Dst::overflowing_from_fixed(self).
§Examples
use fixed::{
    types::extra::{U0, U4, U6},
    types::I16F16,
    FixedI128,
};
type Fix = FixedI128<U4>;

// 1.75 is 1.11 in binary
let src = Fix::from_bits(0b111 << (4 - 2));
let expected = I16F16::from_bits(0b111 << (16 - 2));
assert_eq!(src.overflowing_to_num::<I16F16>(), (expected, false));
type TooFewIntBits = FixedI128<U6>;
let wrapped = TooFewIntBits::from_bits(Fix::MAX.to_bits() << 2);
assert_eq!(Fix::MAX.overflowing_to_num::<TooFewIntBits>(), (wrapped, true));

// 2.5 is 10.1 in binary
let two_point_5 = Fix::from_bits(0b101 << (4 - 1));
assert_eq!(two_point_5.overflowing_to_num::<i32>(), (2, false));
let does_not_fit = FixedI128::<U0>::from_bits(-1);
let wrapped = 1u128.wrapping_neg();
assert_eq!(does_not_fit.overflowing_to_num::<u128>(), (wrapped, true));

// 1.625 is 1.101 in binary
let one_point_625 = Fix::from_bits(0b1101 << (4 - 3));
assert_eq!(one_point_625.overflowing_to_num::<f32>(), (1.625f32, false));
source

pub const fn const_from_fixed<SrcFrac: LeEqU128>( src: FixedI128<SrcFrac>, ) -> FixedI128<Frac>

Creates a fixed-point number from a fixed-point number with the same underlying integer type. Usable in constant context.

This is equivalent to the unwrapped_from_num method with FixedI128<SrcFrac> as its generic parameter, but can also be used in constant context. Unless required in constant context, use unwrapped_from_num or from_num instead.

§Planned deprecation

This method will be deprecated when the unwrapped_from_num method is usable in constant context.

§Panics

Panics if the value does not fit.

§Examples
use fixed::types::extra::{U2, U4};
use fixed::FixedI128;
type FixA = FixedI128<U2>;
type FixB = FixedI128<U4>;
const A: FixA = FixA::unwrapped_from_str("3.5");
const B: FixB = FixB::const_from_fixed(A);
assert_eq!(B, 3.5);

The following would fail to compile because of overflow.

use fixed::types::extra::{U2, U4};
use fixed::FixedI128;
const _OVERFLOW: FixedI128<U4> = FixedI128::const_from_fixed(FixedI128::<U2>::MAX);
source

pub const fn const_from_int(src: i128) -> FixedI128<Frac>

Creates a fixed-point number from the underlying integer type i128. Usable in constant context.

This is equivalent to the unwrapped_from_num method with i128 as its generic parameter, but can also be used in constant context. Unless required in constant context, use unwrapped_from_num or from_num instead.

§Planned deprecation

This method will be deprecated when the unwrapped_from_num method is usable in constant context.

§Panics

Panics if the value does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
const FIVE: Fix = Fix::const_from_int(5);
assert_eq!(FIVE, 5);

The following would fail to compile because of overflow.

use fixed::{types::extra::U4, FixedI128};
const _OVERFLOW: FixedI128<U4> = FixedI128::const_from_int(i128::MAX);
source

pub const fn lit(src: &str) -> FixedI128<Frac>

Parses a fixed-point literal.

Rounding is to the nearest, with ties rounded to even.

This is similar to from_str but accepts a prefix for setting the radix, and ignores underscores, such that the parsing is more similar to numeric literals in Rust code.

The string can start with “-” for a negative number.

Strings starting with “0b” are parsed as binary, strings starting with “0o” are parsed as octal, and strings starting with “0x” are parsed as hexadecimal.

Exponents are supported as well. For decimal, binary and octal numbers, the separator “e” or “E” can be used to start an exponent, which is then followed by an optional sign “+” or “-”, and then by a decimal integer which is the exponent. For hexadecimal numbers, since “e” and “E” are hexadecimal digits, the separator “@” has to be used instead. The separator “@” is accepted for all radices. The parsed value is scaled by the radix to the power of the exponent.

For binary, octal and hexadecimal, base-2 exponents are supported too, using the separator “p” or “P”. The parsed value is scaled by 2 to the power of the exponent. For example, for hexadecimal “P8” means ×2⁸, and is equivalent to “@2” which means ×16².

§Constants

The lit method is useful to write constant fixed-point literals, and can be evaluated in constant context.

Warning: Normal calls to the lit method are not evaluated at compile time. To ensure that the call is evaluated at compile time, lit must be used in an inline constant expression, or used to initialize a constant.

For example, here lit would be evaluated at compile time:

const ONE_AND_HALF: Fix = Fix::lit("1.5");

However, here lit would be evaluated at run time:

// Evaluated at run time.
let one_and_half = Fix::lit("1.5");

To evaluate at compile time without introducing a constant into the scope:

let one_and_half = const { Fix::lit("1.5") };
§Panics

Panics if the number is not valid or overflows.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;

assert_eq!(Fix::lit("1.75"), 1.75);
assert_eq!(Fix::lit("1_.7_5_"), 1.75);
assert_eq!(Fix::lit("17.5e-1"), 1.75);
assert_eq!(Fix::lit("0_.017_5_e+0_2"), 1.75);
assert_eq!(Fix::lit("-01.75"), -1.75);

assert_eq!(Fix::lit("0b1.11"), 1.75);
assert_eq!(Fix::lit("0b_111e-2"), 1.75);
assert_eq!(Fix::lit("-0b1.11"), -1.75);

assert_eq!(Fix::lit("0o1.6"), 1.75);
assert_eq!(Fix::lit("0o.16E1"), 1.75);
assert_eq!(Fix::lit("0o7p-2"), 1.75);

assert_eq!(Fix::lit("0x1.C"), 1.75);
assert_eq!(Fix::lit("0x0.1C@1"), 1.75);
assert_eq!(Fix::lit("-0x1.C"), -1.75);

This method is useful to write constant fixed-point literals.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
const ONE_AND_HALF: Fix = Fix::lit("1.5");
assert_eq!(ONE_AND_HALF, 1.5);
source

pub const fn from_str(src: &str) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing decimal digits to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

The number can have an optional exponent. The separator “e”, “E” or “@” can be used to start an exponent, which is then followed by an optional sign “+” or “-”, and then by a decimal integer which is the exponent. The parsed value is scaled by 10 to the power of the exponent.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_str("1.75"), Ok(Fix::from_num(1.75)));
assert_eq!(Fix::from_str("-1.75"), Ok(Fix::from_num(-1.75)));
assert_eq!(Fix::from_str("0.00625E+3"), Ok(Fix::from_num(6.25)));
assert_eq!(Fix::from_str("1.25e-1"), Ok(Fix::from_num(0.125)));
source

pub const fn from_str_binary( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

The number can have an optional exponent. The separator “e”, “E” or “@” can be used to start an exponent, which is then followed by an optional sign “+” or “-”, and then by a decimal integer which is the exponent. The parsed value is scaled by the radix (2 for binary) to the power of the exponent.

Base-2 exponents are supported too, using the separator “p” or “P”. The parsed value is scaled by 2 to the power of the exponent. For binary, since the radix is 2, base-2 exponents are equivalent to the other form of exponent.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.11 in binary is 1.75
assert_eq!(Fix::from_str_binary("1.11"), Ok(Fix::from_num(1.75)));
assert_eq!(Fix::from_str_binary("-1.11"), Ok(Fix::from_num(-1.75)));

// 111.0101 in binary is 7.3125
assert_eq!(Fix::from_str_binary("1.110101e2"), Ok(Fix::from_num(7.3125)));
assert_eq!(Fix::from_str_binary("11101.01e-2"), Ok(Fix::from_num(7.3125)));
source

pub const fn from_str_octal( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

The number can have an optional exponent. The separator “e”, “E” or “@” can be used to start an exponent, which is then followed by an optional sign “+” or “-”, and then by a decimal integer which is the exponent. The parsed value is scaled by 8 to the power of the exponent.

Base-2 exponents are supported too, using the separator “p” or “P”. The parsed value is scaled by 2 to the power of the exponent. For example, for octal “P6” means ×2⁶, and is equivalent to “E2” which means ×8².

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.75 is 1.11 in binary, 1.6 in octal
let f = Fix::from_str_octal("1.6");
let check = Fix::from_bits(0b111 << (4 - 2));
assert_eq!(f, Ok(check));
let neg = Fix::from_str_octal("-1.6");
assert_eq!(neg, Ok(-check));
assert_eq!(Fix::from_str_octal("160e-2"), Ok(check));
source

pub const fn from_str_hex(src: &str) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing hexadecimal digits to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

The number can have an optional exponent. Since “e” and “E” are valid hexadecimal digits, they cannot be used as a separator to start an exponent, so “@” is used instead. This is then followed by an optional sign “+” or “-”, and then by a decimal integer which is the exponent. The parsed value is scaled by 16 to the power of the exponent.

Base-2 exponents are supported too, using the separator “p” or “P”. The parsed value is scaled by 2 to the power of the exponent. For example, for hexadecimal “P8” means ×2⁸, and is equivalent to “@2” which means ×16².

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.C in hexadecimal is 1.75
assert_eq!(Fix::from_str_hex("1.C"), Ok(Fix::from_num(1.75)));
assert_eq!(Fix::from_str_hex("-1.C"), Ok(Fix::from_num(-1.75)));
assert_eq!(Fix::from_str_hex("1C@-1"), Ok(Fix::from_num(1.75)));
assert_eq!(Fix::from_str_hex(".01C@+2"), Ok(Fix::from_num(1.75)));
source

pub const fn saturating_from_str( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing decimal digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
assert_eq!(I8F8::saturating_from_str("9999"), Ok(I8F8::MAX));
assert_eq!(I8F8::saturating_from_str("-9999"), Ok(I8F8::MIN));
source

pub const fn saturating_from_str_binary( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
assert_eq!(I8F8::saturating_from_str_binary("101100111000"), Ok(I8F8::MAX));
assert_eq!(I8F8::saturating_from_str_binary("-101100111000"), Ok(I8F8::MIN));
source

pub const fn saturating_from_str_octal( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
assert_eq!(I8F8::saturating_from_str_octal("7777"), Ok(I8F8::MAX));
assert_eq!(I8F8::saturating_from_str_octal("-7777"), Ok(I8F8::MIN));
source

pub const fn saturating_from_str_hex( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Prases a string slice containing hexadecimal digits to return a fixed-point number, saturating on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
assert_eq!(I8F8::saturating_from_str_hex("FFFF"), Ok(I8F8::MAX));
assert_eq!(I8F8::saturating_from_str_hex("-FFFF"), Ok(I8F8::MIN));
source

pub const fn wrapping_from_str( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing decimal digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
// 9999.5 = 15.5 + 256 × n
assert_eq!(I8F8::wrapping_from_str("9999.5"), Ok(I8F8::from_num(15.5)));
assert_eq!(I8F8::wrapping_from_str("-9999.5"), Ok(I8F8::from_num(-15.5)));
source

pub const fn wrapping_from_str_binary( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
let check = I8F8::from_bits(0b1110001 << (8 - 1));
assert_eq!(I8F8::wrapping_from_str_binary("101100111000.1"), Ok(check));
assert_eq!(I8F8::wrapping_from_str_binary("-101100111000.1"), Ok(-check));
source

pub const fn wrapping_from_str_octal( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
let check = I8F8::from_bits(0o1654 << (8 - 3));
assert_eq!(I8F8::wrapping_from_str_octal("7165.4"), Ok(check));
assert_eq!(I8F8::wrapping_from_str_octal("-7165.4"), Ok(-check));
source

pub const fn wrapping_from_str_hex( src: &str, ) -> Result<FixedI128<Frac>, ParseFixedError>

Parses a string slice containing hexadecimal digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
let check = I8F8::from_bits(0xFFE);
assert_eq!(I8F8::wrapping_from_str_hex("C0F.FE"), Ok(check));
assert_eq!(I8F8::wrapping_from_str_hex("-C0F.FE"), Ok(-check));
source

pub const fn unwrapped_from_str(src: &str) -> FixedI128<Frac>

Parses a string slice containing decimal digits to return a fixed-point number, panicking on overflow.

Rounding is to the nearest, with ties rounded to even.

§Panics

Panics if the value does not fit or if there is a parsing error.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.75 is 1.11 in binary
let f = Fix::unwrapped_from_str("1.75");
assert_eq!(f, Fix::from_bits(0b111 << (4 - 2)));

The following panics because of a parsing error.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _error = Fix::unwrapped_from_str("1.75.");
source

pub const fn unwrapped_from_str_binary(src: &str) -> FixedI128<Frac>

Parses a string slice containing binary digits to return a fixed-point number, panicking on overflow.

Rounding is to the nearest, with ties rounded to even.

§Panics

Panics if the value does not fit or if there is a parsing error.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.75 is 1.11 in binary
let f = Fix::unwrapped_from_str_binary("1.11");
assert_eq!(f, Fix::from_bits(0b111 << (4 - 2)));

The following panics because of a parsing error.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _error = Fix::unwrapped_from_str_binary("1.2");
source

pub const fn unwrapped_from_str_octal(src: &str) -> FixedI128<Frac>

Parses a string slice containing octal digits to return a fixed-point number, panicking on overflow.

Rounding is to the nearest, with ties rounded to even.

§Panics

Panics if the value does not fit or if there is a parsing error.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.75 is 1.11 in binary, 1.6 in octal
let f = Fix::unwrapped_from_str_octal("1.6");
assert_eq!(f, Fix::from_bits(0b111 << (4 - 2)));

The following panics because of a parsing error.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _error = Fix::unwrapped_from_str_octal("1.8");
source

pub const fn unwrapped_from_str_hex(src: &str) -> FixedI128<Frac>

Parses a string slice containing hexadecimal digits to return a fixed-point number, wrapping on overflow.

Rounding is to the nearest, with ties rounded to even.

§Panics

Panics if the value does not fit or if there is a parsing error.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 1.75 is 1.11 in binary, 1.C in hexadecimal
let f = Fix::unwrapped_from_str_hex("1.C");
assert_eq!(f, Fix::from_bits(0b111 << (4 - 2)));

The following panics because of a parsing error.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _error = Fix::unwrapped_from_str_hex("1.G");
source

pub const fn overflowing_from_str( src: &str, ) -> Result<(FixedI128<Frac>, bool), ParseFixedError>

Parses a string slice containing decimal digits to return a fixed-point number.

Returns a tuple of the fixed-point number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
assert_eq!(I8F8::overflowing_from_str("99.5"), Ok((I8F8::from_num(99.5), false)));
// 9999.5 = 15.5 + 256 × n
assert_eq!(I8F8::overflowing_from_str("-9999.5"), Ok((I8F8::from_num(-15.5), true)));
source

pub const fn overflowing_from_str_binary( src: &str, ) -> Result<(FixedI128<Frac>, bool), ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number.

Returns a tuple of the fixed-point number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
let check = I8F8::from_bits(0b1110001 << (8 - 1));
assert_eq!(I8F8::overflowing_from_str_binary("111000.1"), Ok((check, false)));
assert_eq!(I8F8::overflowing_from_str_binary("-101100111000.1"), Ok((-check, true)));
source

pub const fn overflowing_from_str_octal( src: &str, ) -> Result<(FixedI128<Frac>, bool), ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number.

Returns a tuple of the fixed-point number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
let check = I8F8::from_bits(0o1654 << (8 - 3));
assert_eq!(I8F8::overflowing_from_str_octal("165.4"), Ok((check, false)));
assert_eq!(I8F8::overflowing_from_str_octal("-7165.4"), Ok((-check, true)));
source

pub const fn overflowing_from_str_hex( src: &str, ) -> Result<(FixedI128<Frac>, bool), ParseFixedError>

Parses a string slice containing hexadecimal digits to return a fixed-point number.

Returns a tuple of the fixed-point number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Rounding is to the nearest, with ties rounded to even.

§Examples
use fixed::types::I8F8;
let check = I8F8::from_bits(0xFFE);
assert_eq!(I8F8::overflowing_from_str_hex("F.FE"), Ok((check, false)));
assert_eq!(I8F8::overflowing_from_str_hex("-C0F.FE"), Ok((-check, true)));
source

pub const fn int(self) -> FixedI128<Frac>

Returns the integer part.

Note that since the numbers are stored in two’s complement, negative numbers with non-zero fractional parts will be rounded towards −∞, except in the case where there are no integer bits, that is FixedI128<U128>, where the return value is always zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 0010.0000
let two = Fix::from_num(2);
// 0010.0100
let two_and_quarter = two + two / 8;
assert_eq!(two_and_quarter.int(), two);
// 1101.0000
let three = Fix::from_num(3);
// 1101.1100
assert_eq!((-two_and_quarter).int(), -three);
source

pub const fn frac(self) -> FixedI128<Frac>

Returns the fractional part.

Note that since the numbers are stored in two’s complement, the returned fraction will be non-negative for negative numbers, except in the case where there are no integer bits, that is FixedI128<U128> where the return value is always equal to self.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
// 0000.0100
let quarter = Fix::ONE / 4;
// 0010.0100
let two_and_quarter = quarter * 9;
assert_eq!(two_and_quarter.frac(), quarter);
// 0000.1100
let three_quarters = quarter * 3;
// 1101.1100
assert_eq!((-two_and_quarter).frac(), three_quarters);
source

pub const fn round_to_zero(self) -> FixedI128<Frac>

Rounds to the next integer towards 0.

Note that for negative numbers, this is different from truncating/discarding the fractional bits. This is because in two’s-complement representations, the value of all the bits except for the most significant bit is positive; discarding positive bits would round towards −∞ unlike this method which rounds towards zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.1).round_to_zero(), Fix::from_num(2));
assert_eq!(Fix::from_num(2.9).round_to_zero(), Fix::from_num(2));
assert_eq!(Fix::from_num(-2.1).round_to_zero(), Fix::from_num(-2));
assert_eq!(Fix::from_num(-2.9).round_to_zero(), Fix::from_num(-2));
source

pub const fn ceil(self) -> FixedI128<Frac>

Rounds to the next integer towards +∞.

§Panics

When debug assertions are enabled, panics if the result does not fit. When debug assertions are not enabled, the wrapped result can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_ceil instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).ceil(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).ceil(), Fix::from_num(-2));
source

pub const fn floor(self) -> FixedI128<Frac>

Rounds to the next integer towards −∞.

§Panics

When debug assertions are enabled, panics if the result does not fit. When debug assertions are not enabled, the wrapped result can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_floor instead.

Overflow can only occur when there are zero integer bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).floor(), Fix::from_num(2));
assert_eq!(Fix::from_num(-2.5).floor(), Fix::from_num(-3));
source

pub const fn round(self) -> FixedI128<Frac>

Rounds to the nearest integer, with ties rounded away from zero.

§Panics

When debug assertions are enabled, panics if the result does not fit. When debug assertions are not enabled, the wrapped result can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_round instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).round(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).round(), Fix::from_num(-3));
source

pub const fn round_ties_even(self) -> FixedI128<Frac>

Rounds to the nearest integer, with ties rounded to even.

§Panics

When debug assertions are enabled, panics if the result does not fit. When debug assertions are not enabled, the wrapped result can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_round_ties_even instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).round_ties_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).round_ties_even(), Fix::from_num(4));
source

pub const fn checked_ceil(self) -> Option<FixedI128<Frac>>

Checked ceil. Rounds to the next integer towards +∞, returning None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).checked_ceil(), Some(Fix::from_num(3)));
assert_eq!(Fix::from_num(-2.5).checked_ceil(), Some(Fix::from_num(-2)));
assert!(Fix::MAX.checked_ceil().is_none());
source

pub const fn checked_floor(self) -> Option<FixedI128<Frac>>

Checked floor. Rounds to the next integer towards −∞. Returns None on overflow.

Overflow can only occur when there are zero integer bits.

§Examples
use fixed::{
    types::extra::{U4, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).checked_floor(), Some(Fix::from_num(2)));
assert_eq!(Fix::from_num(-2.5).checked_floor(), Some(Fix::from_num(-3)));
type AllFrac = FixedI128<U128>;
assert!(AllFrac::MIN.checked_floor().is_none());
source

pub const fn checked_round(self) -> Option<FixedI128<Frac>>

Checked round. Rounds to the nearest integer, with ties rounded away from zero, returning None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).checked_round(), Some(Fix::from_num(3)));
assert_eq!(Fix::from_num(-2.5).checked_round(), Some(Fix::from_num(-3)));
assert!(Fix::MAX.checked_round().is_none());
source

pub const fn checked_round_ties_even(self) -> Option<FixedI128<Frac>>

Checked round. Rounds to the nearest integer, with ties rounded to even, returning None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).checked_round_ties_even(), Some(Fix::from_num(2)));
assert_eq!(Fix::from_num(3.5).checked_round_ties_even(), Some(Fix::from_num(4)));
assert!(Fix::MAX.checked_round_ties_even().is_none());
source

pub const fn saturating_ceil(self) -> FixedI128<Frac>

Saturating ceil. Rounds to the next integer towards +∞, saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).saturating_ceil(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).saturating_ceil(), Fix::from_num(-2));
assert_eq!(Fix::MAX.saturating_ceil(), Fix::MAX);
source

pub const fn saturating_floor(self) -> FixedI128<Frac>

Saturating floor. Rounds to the next integer towards −∞, saturating on overflow.

Overflow can only occur when there are zero integer bits.

§Examples
use fixed::{
    types::extra::{U4, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).saturating_floor(), Fix::from_num(2));
assert_eq!(Fix::from_num(-2.5).saturating_floor(), Fix::from_num(-3));
type AllFrac = FixedI128<U128>;
assert_eq!(AllFrac::MIN.saturating_floor(), AllFrac::MIN);
source

pub const fn saturating_round(self) -> FixedI128<Frac>

Saturating round. Rounds to the nearest integer, with ties rounded away from zero, and saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).saturating_round(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).saturating_round(), Fix::from_num(-3));
assert_eq!(Fix::MAX.saturating_round(), Fix::MAX);
source

pub const fn saturating_round_ties_even(self) -> FixedI128<Frac>

Saturating round. Rounds to the nearest integer, with ties rounded to even, and saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).saturating_round_ties_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).saturating_round_ties_even(), Fix::from_num(4));
assert_eq!(Fix::MAX.saturating_round_ties_even(), Fix::MAX);
source

pub const fn wrapping_ceil(self) -> FixedI128<Frac>

Wrapping ceil. Rounds to the next integer towards +∞, wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_ceil(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).wrapping_ceil(), Fix::from_num(-2));
assert_eq!(Fix::MAX.wrapping_ceil(), Fix::MIN);
source

pub const fn wrapping_floor(self) -> FixedI128<Frac>

Wrapping floor. Rounds to the next integer towards −∞, wrapping on overflow.

Overflow can only occur when there are zero integer bits.

§Examples
use fixed::{
    types::extra::{U4, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_floor(), Fix::from_num(2));
assert_eq!(Fix::from_num(-2.5).wrapping_floor(), Fix::from_num(-3));
type AllFrac = FixedI128<U128>;
assert_eq!(AllFrac::MIN.wrapping_floor(), AllFrac::ZERO);
source

pub const fn wrapping_round(self) -> FixedI128<Frac>

Wrapping round. Rounds to the next integer to the nearest, with ties rounded away from zero, and wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_round(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).wrapping_round(), Fix::from_num(-3));
assert_eq!(Fix::MAX.wrapping_round(), Fix::MIN);
source

pub const fn wrapping_round_ties_even(self) -> FixedI128<Frac>

Wrapping round. Rounds to the next integer to the nearest, with ties rounded to even, and wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).wrapping_round_ties_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).wrapping_round_ties_even(), Fix::from_num(4));
assert_eq!(Fix::MAX.wrapping_round_ties_even(), Fix::MIN);
source

pub const fn unwrapped_ceil(self) -> FixedI128<Frac>

Unwrapped ceil. Rounds to the next integer towards +∞, panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_ceil(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).unwrapped_ceil(), Fix::from_num(-2));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_ceil();
source

pub const fn unwrapped_floor(self) -> FixedI128<Frac>

Unwrapped floor. Rounds to the next integer towards −∞, panicking on overflow.

Overflow can only occur when there are zero integer bits.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_floor(), Fix::from_num(2));
assert_eq!(Fix::from_num(-2.5).unwrapped_floor(), Fix::from_num(-3));

The following panics because of overflow.

use fixed::{types::extra::U128, FixedI128};
type AllFrac = FixedI128<U128>;
let _overflow = AllFrac::MIN.unwrapped_floor();
source

pub const fn unwrapped_round(self) -> FixedI128<Frac>

Unwrapped round. Rounds to the next integer to the nearest, with ties rounded away from zero, and panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_round(), Fix::from_num(3));
assert_eq!(Fix::from_num(-2.5).unwrapped_round(), Fix::from_num(-3));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_round();
source

pub const fn unwrapped_round_ties_even(self) -> FixedI128<Frac>

Unwrapped round. Rounds to the next integer to the nearest, with ties rounded to even, and panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).unwrapped_round_ties_even(), Fix::from_num(2));
assert_eq!(Fix::from_num(3.5).unwrapped_round_ties_even(), Fix::from_num(4));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_round_ties_even();
source

pub const fn overflowing_ceil(self) -> (FixedI128<Frac>, bool)

Overflowing ceil. Rounds to the next integer towards +∞.

Returns a tuple of the fixed-point number and a bool, indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_ceil(), (Fix::from_num(3), false));
assert_eq!(Fix::from_num(-2.5).overflowing_ceil(), (Fix::from_num(-2), false));
assert_eq!(Fix::MAX.overflowing_ceil(), (Fix::MIN, true));
source

pub const fn overflowing_floor(self) -> (FixedI128<Frac>, bool)

Overflowing floor. Rounds to the next integer towards −∞.

Returns a tuple of the fixed-point number and a bool, indicating whether an overflow has occurred. On overflow, the wrapped value isreturned. Overflow can only occur when there are zero integer bits.

§Examples
use fixed::{
    types::extra::{U4, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_floor(), (Fix::from_num(2), false));
assert_eq!(Fix::from_num(-2.5).overflowing_floor(), (Fix::from_num(-3), false));
type AllFrac = FixedI128<U128>;
assert_eq!(AllFrac::MIN.overflowing_floor(), (AllFrac::ZERO, true));
source

pub const fn overflowing_round(self) -> (FixedI128<Frac>, bool)

Overflowing round. Rounds to the next integer to the nearest, with ties rounded away from zero.

Returns a tuple of the fixed-point number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_round(), (Fix::from_num(3), false));
assert_eq!(Fix::from_num(-2.5).overflowing_round(), (Fix::from_num(-3), false));
assert_eq!(Fix::MAX.overflowing_round(), (Fix::MIN, true));
source

pub const fn overflowing_round_ties_even(self) -> (FixedI128<Frac>, bool)

Overflowing round. Rounds to the next integer to the nearest, with ties rounded to even.

Returns a tuple of the fixed-point number and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2.5).overflowing_round_ties_even(), (Fix::from_num(2), false));
assert_eq!(Fix::from_num(3.5).overflowing_round_ties_even(), (Fix::from_num(4), false));
assert_eq!(Fix::MAX.overflowing_round_ties_even(), (Fix::MIN, true));
source

pub const fn round_ties_to_even(self) -> FixedI128<Frac>

👎Deprecated since 1.28.0: renamed to round_ties_even

Rounds to the nearest integer, with ties rounded to even.

source

pub const fn checked_round_ties_to_even(self) -> Option<FixedI128<Frac>>

👎Deprecated since 1.28.0: renamed to checked_round_ties_even

Checked round. Rounds to the nearest integer, with ties rounded to even, returning None on overflow.

source

pub const fn saturating_round_ties_to_even(self) -> FixedI128<Frac>

👎Deprecated since 1.28.0: renamed to saturating_round_ties_even

Saturating round. Rounds to the nearest integer, with ties rounded to even, and saturating on overflow.

source

pub const fn wrapping_round_ties_to_even(self) -> FixedI128<Frac>

👎Deprecated since 1.28.0: renamed to wrapping_round_ties_even

Wrapping round. Rounds to the next integer to the nearest, with ties rounded to even, and wrapping on overflow.

source

pub const fn unwrapped_round_ties_to_even(self) -> FixedI128<Frac>

👎Deprecated since 1.28.0: renamed to unwrapped_round_ties_even

Unwrapped round. Rounds to the next integer to the nearest, with ties rounded to even, and panicking on overflow.

source

pub const fn overflowing_round_ties_to_even(self) -> (FixedI128<Frac>, bool)

👎Deprecated since 1.28.0: renamed to overflowing_round_ties_even

Overflowing round. Rounds to the next integer to the nearest, with ties rounded to even.

source

pub const fn int_log2(self) -> i32

Integer base-2 logarithm, rounded down.

§Panics

Panics if the fixed-point number is ≤ 0.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(4).int_log2(), 2);
assert_eq!(Fix::from_num(3.9375).int_log2(), 1);
assert_eq!(Fix::from_num(0.25).int_log2(), -2);
assert_eq!(Fix::from_num(0.1875).int_log2(), -3);
source

pub const fn int_log10(self) -> i32

Integer base-10 logarithm, rounded down.

§Panics

Panics if the fixed-point number is ≤ 0.

§Examples
use fixed::{
    types::extra::{U2, U6},
    FixedI128,
};
assert_eq!(FixedI128::<U2>::from_num(10).int_log10(), 1);
assert_eq!(FixedI128::<U2>::from_num(9.75).int_log10(), 0);
assert_eq!(FixedI128::<U6>::from_num(0.109375).int_log10(), -1);
assert_eq!(FixedI128::<U6>::from_num(0.09375).int_log10(), -2);
source

pub const fn int_log(self, base: u32) -> i32

Integer logarithm to the specified base, rounded down.

§Panics

Panics if the fixed-point number is ≤ 0 or if the base is < 2.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(4).int_log(2), 2);
assert_eq!(Fix::from_num(5.75).int_log(5), 1);
assert_eq!(Fix::from_num(0.25).int_log(5), -1);
assert_eq!(Fix::from_num(0.1875).int_log(5), -2);
source

pub const fn checked_int_log2(self) -> Option<i32>

Checked integer base-2 logarithm, rounded down. Returns the logarithm or None if the fixed-point number is ≤ 0.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ZERO.checked_int_log2(), None);
assert_eq!(Fix::from_num(4).checked_int_log2(), Some(2));
assert_eq!(Fix::from_num(3.9375).checked_int_log2(), Some(1));
assert_eq!(Fix::from_num(0.25).checked_int_log2(), Some(-2));
assert_eq!(Fix::from_num(0.1875).checked_int_log2(), Some(-3));
source

pub const fn checked_int_log10(self) -> Option<i32>

Checked integer base-10 logarithm, rounded down. Returns the logarithm or None if the fixed-point number is ≤ 0.

§Examples
use fixed::{
    types::extra::{U2, U6},
    FixedI128,
};
assert_eq!(FixedI128::<U2>::ZERO.checked_int_log10(), None);
assert_eq!(FixedI128::<U2>::from_num(10).checked_int_log10(), Some(1));
assert_eq!(FixedI128::<U2>::from_num(9.75).checked_int_log10(), Some(0));
assert_eq!(FixedI128::<U6>::from_num(0.109375).checked_int_log10(), Some(-1));
assert_eq!(FixedI128::<U6>::from_num(0.09375).checked_int_log10(), Some(-2));
source

pub const fn checked_int_log(self, base: u32) -> Option<i32>

Checked integer logarithm to the specified base, rounded down. Returns the logarithm, or None if the fixed-point number is ≤ 0 or if the base is < 2.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ZERO.checked_int_log(5), None);
assert_eq!(Fix::from_num(4).checked_int_log(2), Some(2));
assert_eq!(Fix::from_num(5.75).checked_int_log(5), Some(1));
assert_eq!(Fix::from_num(0.25).checked_int_log(5), Some(-1));
assert_eq!(Fix::from_num(0.1875).checked_int_log(5), Some(-2));
source

pub const fn signum(self) -> FixedI128<Frac>

Returns a number representing the sign of self.

§Panics

When debug assertions are enabled, this method panics

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.

When debug assertions are not enabled, the wrapped value can be returned in those cases, but it is not considered a breaking change if in the future it panics; using this method when 1 and −1 cannot be represented is almost certainly a bug.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).signum(), 1);
assert_eq!(Fix::ZERO.signum(), 0);
assert_eq!(Fix::from_num(-5).signum(), -1);
source

pub const fn recip(self) -> FixedI128<Frac>

Returns the reciprocal (inverse) of the fixed-point number, 1/self.

§Panics

Panics if the fixed-point number is zero.

When debug assertions are enabled, this method also panics if the reciprocal overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_recip instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2).recip(), Fix::from_num(0.5));
source

pub const fn div_euclid(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Euclidean division.

§Panics

Panics if the divisor is zero.

When debug assertions are enabled, this method also panics if the division overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_div_euclid instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).div_euclid(Fix::from_num(2)), Fix::from_num(3));
assert_eq!(Fix::from_num(-7.5).div_euclid(Fix::from_num(2)), Fix::from_num(-4));
source

pub const fn div_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Euclidean division by an integer.

§Panics

Panics if the divisor is zero.

When debug assertions are enabled, this method also panics if the division overflows. Overflow can only occur when dividing the minimum value by −1. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_div_euclid_int instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).div_euclid_int(2), Fix::from_num(3));
assert_eq!(Fix::from_num(-7.5).div_euclid_int(2), Fix::from_num(-4));
source

pub const fn add_prod<AFrac: LeEqU128, BFrac: LeEqU128>( self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> FixedI128<Frac>

Adds self to the product a × b.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method returns the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

The mul_acc method performs the same operation as this method but mutates self instead of returning the result.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_add_prod instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).add_prod(Fix::from_num(4), Fix::from_num(0.5)), 5);
// -MAX + MAX × 1.5 = MAX / 2, which does not overflow
assert_eq!((-Fix::MAX).add_prod(Fix::MAX, Fix::from_num(1.5)), Fix::MAX / 2);
source

pub fn mul_acc<AFrac: LeEqU128, BFrac: LeEqU128>( &mut self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, )

Multiply and accumulate. Adds (a × b) to self.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method saves the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

The add_prod method performs the same operation as this method but returns the result instead of mutating self.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_mul_acc instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let mut acc = Fix::from_num(3);
acc.mul_acc(Fix::from_num(4), Fix::from_num(0.5));
assert_eq!(acc, 5);

// MAX × 1.5 - MAX = MAX / 2, which does not overflow
acc = -Fix::MAX;
acc.mul_acc(Fix::MAX, Fix::from_num(1.5));
assert_eq!(acc, Fix::MAX / 2);
source

pub const fn rem_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Remainder for Euclidean division by an integer.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).rem_euclid_int(2), Fix::from_num(1.5));
assert_eq!(Fix::from_num(-7.5).rem_euclid_int(2), Fix::from_num(0.5));
source

pub const fn sqrt(self) -> Self

Returns the square root.

This method uses an iterative method, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √self < result + DELTA.

Overflow can only occur when there are no integer bits and the representable range is −0.5 ≤ x < 0.5. In this case, overflow occurs for an input value ≥ 0.25.

§Panics

Panics if the number is negative.

When debug assertions are enabled, this method also panics if the square root overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_sqrt instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2).sqrt(), Fix::SQRT_2);
source

pub const fn lerp<RangeFrac>( self, start: FixedI128<RangeFrac>, end: FixedI128<RangeFrac>, ) -> FixedI128<RangeFrac>

Linear interpolation between start and end.

Returns start + self × (end − start). This is start when self = 0, end when self = 1, and linear interpolation for all other values of self. Linear extrapolation is performed if self is not in the range 0 ≤ x ≤ 1.

§Panics

When debug assertions are enabled, this method panics if the result overflows. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_lerp instead.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let start = Fix::from_num(2);
let end = Fix::from_num(3.5);
assert_eq!(Fix::from_num(-1.0).lerp(start, end), 0.5);
assert_eq!(Fix::from_num(0.0).lerp(start, end), 2);
assert_eq!(Fix::from_num(0.5).lerp(start, end), 2.75);
assert_eq!(Fix::from_num(1.0).lerp(start, end), 3.5);
assert_eq!(Fix::from_num(2.0).lerp(start, end), 5);
source

pub const fn checked_signum(self) -> Option<FixedI128<Frac>>

Checked signum. Returns a number representing the sign of self, or None on overflow.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.
§Examples
use fixed::{
    types::extra::{U4, U127, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).checked_signum(), Some(Fix::ONE));
assert_eq!(Fix::ZERO.checked_signum(), Some(Fix::ZERO));
assert_eq!(Fix::from_num(-5).checked_signum(), Some(Fix::NEG_ONE));

type OneIntBit = FixedI128<U127>;
type ZeroIntBits = FixedI128<U128>;
assert_eq!(OneIntBit::from_num(0.5).checked_signum(), None);
assert_eq!(ZeroIntBits::from_num(0.25).checked_signum(), None);
assert_eq!(ZeroIntBits::from_num(-0.5).checked_signum(), None);
source

pub const fn checked_mul(self, rhs: FixedI128<Frac>) -> Option<FixedI128<Frac>>

Checked multiplication. Returns the product, or None on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::MAX.checked_mul(Fix::ONE), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_mul(Fix::from_num(2)), None);
source

pub const fn checked_div(self, rhs: FixedI128<Frac>) -> Option<FixedI128<Frac>>

Checked division. Returns the quotient, or None if the divisor is zero or on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::MAX.checked_div(Fix::ONE), Some(Fix::MAX));
assert_eq!(Fix::MAX.checked_div(Fix::ONE / 2), None);
source

pub const fn checked_recip(self) -> Option<FixedI128<Frac>>

Checked reciprocal. Returns the reciprocal, or None if self is zero or on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2).checked_recip(), Some(Fix::from_num(0.5)));
assert_eq!(Fix::ZERO.checked_recip(), None);
source

pub const fn checked_div_euclid( self, rhs: FixedI128<Frac>, ) -> Option<FixedI128<Frac>>

Checked Euclidean division. Returns the quotient, or None if the divisor is zero or on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).checked_div_euclid(Fix::from_num(2)), Some(Fix::from_num(3)));
assert_eq!(Fix::from_num(7.5).checked_div_euclid(Fix::ZERO), None);
assert_eq!(Fix::MAX.checked_div_euclid(Fix::from_num(0.25)), None);
assert_eq!(Fix::from_num(-7.5).checked_div_euclid(Fix::from_num(2)), Some(Fix::from_num(-4)));
source

pub const fn checked_add_prod<AFrac: LeEqU128, BFrac: LeEqU128>( self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> Option<FixedI128<Frac>>

Adds self to the product a × b, returning None on overflow.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method returns the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(3).checked_add_prod(Fix::from_num(4), Fix::from_num(0.5)),
    Some(Fix::from_num(5))
);
assert_eq!(Fix::DELTA.checked_add_prod(Fix::MAX, Fix::ONE), None);
// -MAX + MAX × 1.5 = MAX / 2, which does not overflow
assert_eq!(
    (-Fix::MAX).checked_add_prod(Fix::MAX, Fix::from_num(1.5)),
    Some(Fix::MAX / 2)
);
source

pub fn checked_mul_acc<AFrac: LeEqU128, BFrac: LeEqU128>( &mut self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> Option<()>

Checked multiply and accumulate. Adds (a × b) to self, or returns None on overflow.

Like all other checked methods, this method wraps the successful return value in an Option. Since the unchecked mul_acc method does not return a value, which is equivalent to returning (), this method wraps () into Some(()) on success.

When overflow occurs, self is not modified and retains its previous value.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method saves the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let mut acc = Fix::from_num(3);
let check = acc.checked_mul_acc(Fix::from_num(4), Fix::from_num(0.5));
assert_eq!(check, Some(()));
assert_eq!(acc, 5);

acc = Fix::DELTA;
let check = acc.checked_mul_acc(Fix::MAX, Fix::ONE);
assert_eq!(check, None);
// acc is unchanged on error
assert_eq!(acc, Fix::DELTA);

// MAX × 1.5 - MAX = MAX / 2, which does not overflow
acc = -Fix::MAX;
let check = acc.checked_mul_acc(Fix::MAX, Fix::from_num(1.5));
assert_eq!(check, Some(()));
assert_eq!(acc, Fix::MAX / 2);
source

pub const fn checked_rem_int(self, rhs: i128) -> Option<FixedI128<Frac>>

Checked fixed-point remainder for division by an integer. Returns the remainder, or None if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3.75).checked_rem_int(2), Some(Fix::from_num(1.75)));
assert_eq!(Fix::from_num(3.75).checked_rem_int(0), None);
assert_eq!(Fix::from_num(-3.75).checked_rem_int(2), Some(Fix::from_num(-1.75)));
source

pub const fn checked_div_euclid_int(self, rhs: i128) -> Option<FixedI128<Frac>>

Checked Euclidean division by an integer. Returns the quotient, or None if the divisor is zero or if the division results in overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).checked_div_euclid_int(2), Some(Fix::from_num(3)));
assert_eq!(Fix::from_num(7.5).checked_div_euclid_int(0), None);
assert_eq!(Fix::MIN.checked_div_euclid_int(-1), None);
source

pub const fn checked_rem_euclid_int(self, rhs: i128) -> Option<FixedI128<Frac>>

Checked remainder for Euclidean division by an integer. Returns the remainder, or None if the divisor is zero or if the remainder results in overflow.

§Examples
use fixed::{types::extra::U124, FixedI128};
type Fix = FixedI128<U124>;
assert_eq!(Fix::from_num(7.5).checked_rem_euclid_int(2), Some(Fix::from_num(1.5)));
assert_eq!(Fix::from_num(7.5).checked_rem_euclid_int(0), None);
assert_eq!(Fix::from_num(-7.5).checked_rem_euclid_int(2), Some(Fix::from_num(0.5)));
// -8 ≤ Fix < 8, so the answer 12.5 overflows
assert_eq!(Fix::from_num(-7.5).checked_rem_euclid_int(20), None);
source

pub const fn checked_sqrt(self) -> Option<Self>

Checked square root. Returns None for negative numbers and on overflow.

This method uses an iterative method, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √self < result + DELTA.

Overflow can only occur when there are no integer bits and the representable range is −0.5 ≤ x < 0.5. In this case, the method returns None for an input value ≥ 0.25.

§Examples
use fixed::types::extra::{U4, U128};
use fixed::FixedI128;
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2).checked_sqrt(), Some(Fix::SQRT_2));
assert_eq!(Fix::from_num(-1).checked_sqrt(), None);

type AllFrac = FixedI128<U128>;
assert_eq!(AllFrac::from_num(0.25).checked_sqrt(), None);
source

pub const fn checked_lerp<RangeFrac>( self, start: FixedI128<RangeFrac>, end: FixedI128<RangeFrac>, ) -> Option<FixedI128<RangeFrac>>

Checked linear interpolation between start and end. Returns None on overflow.

The interpolted value is start + self × (end − start). This is start when self = 0, end when self = 1, and linear interpolation for all other values of self. Linear extrapolation is performed if self is not in the range 0 ≤ x ≤ 1.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(0.5).checked_lerp(Fix::ZERO, Fix::MAX), Some(Fix::MAX / 2));
assert_eq!(Fix::from_num(1.5).checked_lerp(Fix::ZERO, Fix::MAX), None);
source

pub const fn saturating_signum(self) -> FixedI128<Frac>

Saturating signum. Returns a number representing the sign of self, saturating on overflow.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.
§Examples
use fixed::{
    types::extra::{U4, U127, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).saturating_signum(), 1);
assert_eq!(Fix::ZERO.saturating_signum(), 0);
assert_eq!(Fix::from_num(-5).saturating_signum(), -1);

type OneIntBit = FixedI128<U127>;
type ZeroIntBits = FixedI128<U128>;
assert_eq!(OneIntBit::from_num(0.5).saturating_signum(), OneIntBit::MAX);
assert_eq!(ZeroIntBits::from_num(0.25).saturating_signum(), ZeroIntBits::MAX);
assert_eq!(ZeroIntBits::from_num(-0.5).saturating_signum(), ZeroIntBits::MIN);
source

pub const fn saturating_mul(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Saturating multiplication. Returns the product, saturating on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).saturating_mul(Fix::from_num(2)), Fix::from_num(6));
assert_eq!(Fix::MAX.saturating_mul(Fix::from_num(2)), Fix::MAX);
source

pub const fn saturating_div(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Saturating division. Returns the quotient, saturating on overflow.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_half = Fix::ONE / 2;
assert_eq!(Fix::ONE.saturating_div(Fix::from_num(2)), one_half);
assert_eq!(Fix::MAX.saturating_div(one_half), Fix::MAX);
source

pub const fn saturating_recip(self) -> FixedI128<Frac>

Saturating reciprocal. Returns the reciprocal, saturating on overflow.

§Panics

Panics if the fixed-point number is zero.

§Examples
use fixed::{types::extra::U127, FixedI128};
// only one integer bit
type Fix = FixedI128<U127>;
assert_eq!(Fix::from_num(0.25).saturating_recip(), Fix::MAX);
assert_eq!(Fix::from_num(-0.25).saturating_recip(), Fix::MIN);
source

pub const fn saturating_div_euclid( self, rhs: FixedI128<Frac>, ) -> FixedI128<Frac>

Saturating Euclidean division. Returns the quotient, saturating on overflow.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).saturating_div_euclid(Fix::from_num(2)), Fix::from_num(3));
assert_eq!(Fix::MAX.saturating_div_euclid(Fix::from_num(0.25)), Fix::MAX);
assert_eq!(Fix::from_num(-7.5).saturating_div_euclid(Fix::from_num(2)), Fix::from_num(-4));
assert_eq!(Fix::MIN.saturating_div_euclid(Fix::from_num(0.25)), Fix::MIN);
source

pub const fn saturating_div_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Saturating Euclidean division by an integer. Returns the quotient, saturating on overflow.

Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).saturating_div_euclid_int(2), Fix::from_num(3));
assert_eq!(Fix::from_num(-7.5).saturating_div_euclid_int(2), Fix::from_num(-4));
assert_eq!(Fix::MIN.saturating_div_euclid_int(-1), Fix::MAX);
source

pub const fn saturating_add_prod<AFrac: LeEqU128, BFrac: LeEqU128>( self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> FixedI128<Frac>

Adds self to the product a × b, saturating on overflow.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method returns the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(3).saturating_add_prod(Fix::from_num(4), Fix::from_num(0.5)),
    5
);
assert_eq!(Fix::ONE.saturating_add_prod(Fix::MAX, Fix::from_num(3)), Fix::MAX);
// -MAX + MAX × 1.5 = MAX / 2, which does not overflow
assert_eq!(
    (-Fix::MAX).saturating_add_prod(Fix::MAX, Fix::from_num(1.5)),
    Fix::MAX / 2
);
source

pub fn saturating_mul_acc<AFrac: LeEqU128, BFrac: LeEqU128>( &mut self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, )

Saturating multiply and accumulate. Adds (a × b) to self, saturating on overflow.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method saves the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let mut acc = Fix::from_num(3);
acc.saturating_mul_acc(Fix::from_num(4), Fix::from_num(0.5));
assert_eq!(acc, 5);

acc = Fix::MAX / 2;
acc.saturating_mul_acc(Fix::MAX / 2, Fix::from_num(3));
assert_eq!(acc, Fix::MAX);

// MAX × 1.5 - MAX = MAX / 2, which does not overflow
acc = -Fix::MAX;
acc.saturating_mul_acc(Fix::MAX, Fix::from_num(1.5));
assert_eq!(acc, Fix::MAX / 2);
source

pub const fn saturating_rem_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Saturating remainder for Euclidean division by an integer. Returns the remainder, saturating on overflow.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U124, FixedI128};
type Fix = FixedI128<U124>;
assert_eq!(Fix::from_num(7.5).saturating_rem_euclid_int(2), Fix::from_num(1.5));
assert_eq!(Fix::from_num(-7.5).saturating_rem_euclid_int(2), Fix::from_num(0.5));
// -8 ≤ Fix < 8, so the answer 12.5 saturates
assert_eq!(Fix::from_num(-7.5).saturating_rem_euclid_int(20), Fix::MAX);
source

pub const fn saturating_sqrt(self) -> Self

Returns the square root, saturating on overflow.

This method uses an iterative method, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √self < result + DELTA.

Overflow can only occur when there are no integer bits and the representable range is −0.5 ≤ x < 0.5. In this case, the method returns MAX for an input value ≥ 0.25.

§Panics

Panics if the number is negative.

§Examples
use fixed::types::extra::{U4, U128};
use fixed::FixedI128;
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2).saturating_sqrt(), Fix::SQRT_2);

type AllFrac = FixedI128<U128>;
assert_eq!(AllFrac::from_num(0.25).saturating_sqrt(), AllFrac::MAX);
source

pub const fn saturating_lerp<RangeFrac>( self, start: FixedI128<RangeFrac>, end: FixedI128<RangeFrac>, ) -> FixedI128<RangeFrac>

Linear interpolation between start and end, saturating on overflow.

The interpolated value is start + self × (end − start). This is start when self = 0, end when self = 1, and linear interpolation for all other values of self. Linear extrapolation is performed if self is not in the range 0 ≤ x ≤ 1.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(0.5).saturating_lerp(Fix::ZERO, Fix::MAX), Fix::MAX / 2);
assert_eq!(Fix::from_num(1.5).saturating_lerp(Fix::ZERO, Fix::MAX), Fix::MAX);
assert_eq!(Fix::from_num(-2.0).saturating_lerp(Fix::ZERO, Fix::MAX), Fix::MIN);
assert_eq!(Fix::from_num(3.0).saturating_lerp(Fix::MAX, Fix::ZERO), Fix::MIN);
source

pub const fn wrapping_signum(self) -> FixedI128<Frac>

Wrapping signum. Returns a number representing the sign of self, wrapping on overflow.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.
§Examples
use fixed::{
    types::extra::{U4, U127, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).wrapping_signum(), 1);
assert_eq!(Fix::ZERO.wrapping_signum(), 0);
assert_eq!(Fix::from_num(-5).wrapping_signum(), -1);

type OneIntBit = FixedI128<U127>;
type ZeroIntBits = FixedI128<U128>;
assert_eq!(OneIntBit::from_num(0.5).wrapping_signum(), -1);
assert_eq!(ZeroIntBits::from_num(0.25).wrapping_signum(), 0);
assert_eq!(ZeroIntBits::from_num(-0.5).wrapping_signum(), 0);
source

pub const fn wrapping_mul(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Wrapping multiplication. Returns the product, wrapping on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).wrapping_mul(Fix::from_num(2)), Fix::from_num(6));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.wrapping_mul(Fix::from_num(4)), wrapped);
source

pub const fn wrapping_div(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Wrapping division. Returns the quotient, wrapping on overflow.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).wrapping_div(Fix::from_num(2)), one_point_5);
let quarter = Fix::ONE / 4;
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.wrapping_div(quarter), wrapped);
source

pub const fn wrapping_recip(self) -> FixedI128<Frac>

Wrapping reciprocal. Returns the reciprocal, wrapping on overflow.

§Panics

Panics if the fixed-point number is zero.

§Examples
use fixed::{types::extra::U127, FixedI128};
// only one integer bit
type Fix = FixedI128<U127>;
assert_eq!(Fix::from_num(0.25).wrapping_recip(), Fix::ZERO);
source

pub const fn wrapping_div_euclid(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Wrapping Euclidean division. Returns the quotient, wrapping on overflow.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).wrapping_div_euclid(Fix::from_num(2)), Fix::from_num(3));
let wrapped = Fix::MAX.wrapping_mul_int(4).round_to_zero();
assert_eq!(Fix::MAX.wrapping_div_euclid(Fix::from_num(0.25)), wrapped);
source

pub const fn wrapping_div_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Wrapping Euclidean division by an integer. Returns the quotient, wrapping on overflow.

Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).wrapping_div_euclid_int(2), Fix::from_num(3));
assert_eq!(Fix::from_num(-7.5).wrapping_div_euclid_int(2), Fix::from_num(-4));
let wrapped = Fix::MIN.round_to_zero();
assert_eq!(Fix::MIN.wrapping_div_euclid_int(-1), wrapped);
source

pub const fn wrapping_add_prod<AFrac: LeEqU128, BFrac: LeEqU128>( self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> FixedI128<Frac>

Adds self to the product a × b, wrapping on overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(3).wrapping_add_prod(Fix::from_num(4), Fix::from_num(0.5)),
    5
);
assert_eq!(
    Fix::MAX.wrapping_add_prod(Fix::MAX, Fix::from_num(3)),
    Fix::MAX.wrapping_mul_int(4)
);
source

pub fn wrapping_mul_acc<AFrac: LeEqU128, BFrac: LeEqU128>( &mut self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, )

Wrapping multiply and accumulate. Adds (a × b) to self, wrapping on overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let mut acc = Fix::from_num(3);
acc.wrapping_mul_acc(Fix::from_num(4), Fix::from_num(0.5));
assert_eq!(acc, 5);

acc = Fix::MAX;
acc.wrapping_mul_acc(Fix::MAX, Fix::from_num(3));
assert_eq!(acc, Fix::MAX.wrapping_mul_int(4));
source

pub const fn wrapping_rem_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Wrapping remainder for Euclidean division by an integer. Returns the remainder, wrapping on overflow.

Note that while remainder for Euclidean division cannot be negative, the wrapped value can be negative.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U124, FixedI128};
type Fix = FixedI128<U124>;
assert_eq!(Fix::from_num(7.5).wrapping_rem_euclid_int(2), Fix::from_num(1.5));
assert_eq!(Fix::from_num(-7.5).wrapping_rem_euclid_int(2), Fix::from_num(0.5));
// -8 ≤ Fix < 8, so the answer 12.5 wraps to -3.5
assert_eq!(Fix::from_num(-7.5).wrapping_rem_euclid_int(20), Fix::from_num(-3.5));
source

pub const fn wrapping_sqrt(self) -> Self

Returns the square root, wrapping on overflow.

This method uses an iterative method, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √self < result + DELTA.

Overflow can only occur when there are no integer bits and the representable range is −0.5 ≤ x < 0.5. In this case, the method returns the wrapped answer for an input value ≥ 0.25.

§Panics

Panics if the number is negative.

§Examples
use fixed::types::extra::{U4, U128};
use fixed::FixedI128;
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2).wrapping_sqrt(), Fix::SQRT_2);

type AllFrac = FixedI128<U128>;
assert_eq!(AllFrac::from_num(0.25).wrapping_sqrt(), AllFrac::from_num(-0.5));
source

pub const fn wrapping_lerp<RangeFrac>( self, start: FixedI128<RangeFrac>, end: FixedI128<RangeFrac>, ) -> FixedI128<RangeFrac>

Linear interpolation between start and end, wrapping on overflow.

The interpolated value is start + self × (end − start). This is start when self = 0, end when self = 1, and linear interpolation for all other values of self. Linear extrapolation is performed if self is not in the range 0 ≤ x ≤ 1.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(0.5).wrapping_lerp(Fix::ZERO, Fix::MAX), Fix::MAX / 2);
assert_eq!(
    Fix::from_num(1.5).wrapping_lerp(Fix::ZERO, Fix::MAX),
    Fix::MAX.wrapping_add(Fix::MAX / 2)
);
source

pub const fn unwrapped_signum(self) -> FixedI128<Frac>

Unwrapped signum. Returns a number representing the sign of self, panicking on overflow.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.
§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).unwrapped_signum(), 1);
assert_eq!(Fix::ZERO.unwrapped_signum(), 0);
assert_eq!(Fix::from_num(-5).unwrapped_signum(), -1);

The following panics because of overflow.

use fixed::{types::extra::U127, FixedI128};
type OneIntBit = FixedI128<U127>;
let _overflow = OneIntBit::from_num(0.5).unwrapped_signum();
source

pub const fn unwrapped_mul(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped multiplication. Returns the product, panicking on overflow.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).unwrapped_mul(Fix::from_num(2)), Fix::from_num(6));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_mul(Fix::from_num(4));
source

pub const fn unwrapped_div(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped division. Returns the quotient, panicking on overflow.

§Panics

Panics if the divisor is zero or if the division results in overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).unwrapped_div(Fix::from_num(2)), one_point_5);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let quarter = Fix::ONE / 4;
let _overflow = Fix::MAX.unwrapped_div(quarter);
source

pub const fn unwrapped_recip(self) -> FixedI128<Frac>

Unwrapped reciprocal. Returns the reciprocal, panicking on overflow.

§Panics

Panics if the fixed-point number is zero or on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(0.25).unwrapped_recip(), Fix::from_num(4));
source

pub const fn unwrapped_div_euclid(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Unwrapped Euclidean division. Returns the quotient, panicking on overflow.

§Panics

Panics if the divisor is zero or if the division results in overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).unwrapped_div_euclid(Fix::from_num(2)), Fix::from_num(3));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MAX.unwrapped_div_euclid(Fix::from_num(0.25));
source

pub const fn unwrapped_add_prod<AFrac: LeEqU128, BFrac: LeEqU128>( self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> FixedI128<Frac>

Adds self to the product a × b, panicking on overflow.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method returns the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(3).unwrapped_add_prod(Fix::from_num(4), Fix::from_num(0.5)),
    5
);
// -MAX + MAX × 1.5 = MAX / 2, which does not overflow
assert_eq!(
    (-Fix::MAX).unwrapped_add_prod(Fix::MAX, Fix::from_num(1.5)),
    Fix::MAX / 2
);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::DELTA.unwrapped_add_prod(Fix::MAX, Fix::ONE);
source

pub fn unwrapped_mul_acc<AFrac: LeEqU128, BFrac: LeEqU128>( &mut self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, )

Unwrapped multiply and accumulate. Adds (a × b) to self, panicking on overflow.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method saves the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Panics

Panics if the result does not fit.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let mut acc = Fix::from_num(3);
acc.unwrapped_mul_acc(Fix::from_num(4), Fix::from_num(0.5));
assert_eq!(acc, 5);

// MAX × 1.5 - MAX = MAX / 2, which does not overflow
acc = -Fix::MAX;
acc.unwrapped_mul_acc(Fix::MAX, Fix::from_num(1.5));
assert_eq!(acc, Fix::MAX / 2);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let mut acc = Fix::DELTA;
acc.unwrapped_mul_acc(Fix::MAX, Fix::ONE);
source

pub const fn unwrapped_rem_int(self, rhs: i128) -> FixedI128<Frac>

Unwrapped fixed-point remainder for division by an integer. Returns the remainder, panicking if the divisor is zero.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3.75).unwrapped_rem_int(2), Fix::from_num(1.75));

The following panics because the divisor is zero.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _divisor_is_zero = Fix::from_num(3.75).unwrapped_rem_int(0);
source

pub const fn unwrapped_div_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Unwrapped Euclidean division by an integer. Returns the quotient, panicking on overflow.

Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero or if the division results in overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).unwrapped_div_euclid_int(2), Fix::from_num(3));
assert_eq!(Fix::from_num(-7.5).unwrapped_div_euclid_int(2), Fix::from_num(-4));

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::MIN.unwrapped_div_euclid_int(-1);
source

pub const fn unwrapped_rem_euclid_int(self, rhs: i128) -> FixedI128<Frac>

Unwrapped remainder for Euclidean division by an integer. Returns the remainder, panicking on overflow.

Note that while remainder for Euclidean division cannot be negative, the wrapped value can be negative.

§Panics

Panics if the divisor is zero or if the division results in overflow.

§Examples
use fixed::{types::extra::U124, FixedI128};
type Fix = FixedI128<U124>;
assert_eq!(Fix::from_num(7.5).unwrapped_rem_euclid_int(2), Fix::from_num(1.5));
assert_eq!(Fix::from_num(-7.5).unwrapped_rem_euclid_int(2), Fix::from_num(0.5));

The following panics because of overflow.

use fixed::{types::extra::U124, FixedI128};
type Fix = FixedI128<U124>;
// -8 ≤ Fix < 8, so the answer 12.5 overflows
let _overflow = Fix::from_num(-7.5).unwrapped_rem_euclid_int(20);
source

pub const fn unwrapped_sqrt(self) -> Self

Returns the square root, panicking for negative numbers and on overflow.

This method uses an iterative method, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √self < result + DELTA.

Overflow can only occur when there are no integer bits and the representable range is −0.5 ≤ x < 0.5. In this case, the method panics for an input value ≥ 0.25.

§Panics

Panics if the number is negative and on overflow.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(2).unwrapped_sqrt(), Fix::SQRT_2);

The following panics because the input value is negative.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _sqrt_neg = Fix::from_num(-1).unwrapped_sqrt();

The following panics because of overflow.

use fixed::{types::extra::U128, FixedI128};
type AllFrac = FixedI128<U128>;
let _overflow = AllFrac::from_num(0.25).unwrapped_sqrt();
source

pub const fn unwrapped_lerp<RangeFrac>( self, start: FixedI128<RangeFrac>, end: FixedI128<RangeFrac>, ) -> FixedI128<RangeFrac>

Linear interpolation between start and end, panicking on overflow.

The interpolated value is start + self × (end − start). This is start when self = 0, end when self = 1, and linear interpolation for all other values of self. Linear extrapolation is performed if self is not in the range 0 ≤ x ≤ 1.

§Panics

Panics if the result overflows.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(0.5).unwrapped_lerp(Fix::ZERO, Fix::MAX), Fix::MAX / 2);

The following panics because of overflow.

use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let _overflow = Fix::from_num(1.5).unwrapped_lerp(Fix::ZERO, Fix::MAX);
source

pub const fn overflowing_signum(self) -> (FixedI128<Frac>, bool)

Overflowing signum.

Returns a tuple of the signum and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Overflow can only occur

  • if the value is positive and the fixed-point number has zero or one integer bits such that it cannot hold the value 1.
  • if the value is negative and the fixed-point number has zero integer bits, such that it cannot hold the value −1.
§Examples
use fixed::{
    types::extra::{U4, U127, U128},
    FixedI128,
};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(5).overflowing_signum(), (Fix::ONE, false));
assert_eq!(Fix::ZERO.overflowing_signum(), (Fix::ZERO, false));
assert_eq!(Fix::from_num(-5).overflowing_signum(), (Fix::NEG_ONE, false));

type OneIntBit = FixedI128<U127>;
type ZeroIntBits = FixedI128<U128>;
assert_eq!(OneIntBit::from_num(0.5).overflowing_signum(), (OneIntBit::NEG_ONE, true));
assert_eq!(ZeroIntBits::from_num(0.25).overflowing_signum(), (ZeroIntBits::ZERO, true));
assert_eq!(ZeroIntBits::from_num(-0.5).overflowing_signum(), (ZeroIntBits::ZERO, true));
source

pub const fn overflowing_mul( self, rhs: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing multiplication.

Returns a tuple of the product and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(3).overflowing_mul(Fix::from_num(2)), (Fix::from_num(6), false));
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.overflowing_mul(Fix::from_num(4)), (wrapped, true));
source

pub const fn overflowing_div( self, rhs: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing division.

Returns a tuple of the quotient and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let one_point_5 = Fix::from_bits(0b11 << (4 - 1));
assert_eq!(Fix::from_num(3).overflowing_div(Fix::from_num(2)), (one_point_5, false));
let quarter = Fix::ONE / 4;
let wrapped = Fix::from_bits(!0 << 2);
assert_eq!(Fix::MAX.overflowing_div(quarter), (wrapped, true));
source

pub const fn overflowing_recip(self) -> (FixedI128<Frac>, bool)

Overflowing reciprocal.

Returns a tuple of the reciprocal and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Panics

Panics if the fixed-point number is zero.

§Examples
use fixed::{
    types::extra::{U4, U127},
    FixedI128,
};
type Fix = FixedI128<U4>;
// only one integer bit
type Small = FixedI128<U127>;
assert_eq!(Fix::from_num(0.25).overflowing_recip(), (Fix::from_num(4), false));
assert_eq!(Small::from_num(0.25).overflowing_recip(), (Small::ZERO, true));
source

pub const fn overflowing_div_euclid( self, rhs: FixedI128<Frac>, ) -> (FixedI128<Frac>, bool)

Overflowing Euclidean division.

Returns a tuple of the quotient and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let check = Fix::from_num(3);
assert_eq!(Fix::from_num(7.5).overflowing_div_euclid(Fix::from_num(2)), (check, false));
let wrapped = Fix::MAX.wrapping_mul_int(4).round_to_zero();
assert_eq!(Fix::MAX.overflowing_div_euclid(Fix::from_num(0.25)), (wrapped, true));
source

pub const fn overflowing_div_euclid_int( self, rhs: i128, ) -> (FixedI128<Frac>, bool)

Overflowing Euclidean division by an integer.

Returns a tuple of the quotient and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned. Overflow can only occur when dividing the minimum value by −1.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::from_num(7.5).overflowing_div_euclid_int(2), (Fix::from_num(3), false));
assert_eq!(Fix::from_num(-7.5).overflowing_div_euclid_int(2), (Fix::from_num(-4), false));
let wrapped = Fix::MIN.round_to_zero();
assert_eq!(Fix::MIN.overflowing_div_euclid_int(-1), (wrapped, true));
source

pub const fn overflowing_add_prod<AFrac: LeEqU128, BFrac: LeEqU128>( self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> (FixedI128<Frac>, bool)

Adds self to the product a × b.

Returns a tuple of the result and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method returns the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(3).overflowing_add_prod(Fix::from_num(4), Fix::from_num(0.5)),
    (Fix::from_num(5), false)
);
assert_eq!(
    Fix::MAX.overflowing_add_prod(Fix::MAX, Fix::from_num(3)),
    (Fix::MAX.wrapping_mul_int(4), true)
);
// -MAX + MAX × 1.5 = MAX / 2, which does not overflow
assert_eq!(
    (-Fix::MAX).overflowing_add_prod(Fix::MAX, Fix::from_num(1.5)),
    (Fix::MAX / 2, false)
);
source

pub fn overflowing_mul_acc<AFrac: LeEqU128, BFrac: LeEqU128>( &mut self, a: FixedI128<AFrac>, b: FixedI128<BFrac>, ) -> bool

Overflowing multiply and accumulate. Adds (a × b) to self, wrapping and returning true if overflow occurs.

For some cases, the product a × b would overflow on its own, but the final result self + a × b is representable; in these cases this method saves the correct result without overflow.

The a and b parameters can have a fixed-point type like self but with a different number of fractional bits.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
let mut acc = Fix::from_num(3);
assert!(!acc.overflowing_mul_acc(Fix::from_num(4), Fix::from_num(0.5)));
assert_eq!(acc, 5);

acc = Fix::MAX;
assert!(acc.overflowing_mul_acc(Fix::MAX, Fix::from_num(3)));
assert_eq!(acc, Fix::MAX.wrapping_mul_int(4));

// MAX × 1.5 - MAX = MAX / 2, which does not overflow
acc = -Fix::MAX;
assert!(!acc.overflowing_mul_acc(Fix::MAX, Fix::from_num(1.5)));
assert_eq!(acc, Fix::MAX / 2);
source

pub const fn overflowing_rem_euclid_int( self, rhs: i128, ) -> (FixedI128<Frac>, bool)

Remainder for Euclidean division by an integer.

Returns a tuple of the remainder and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Note that while remainder for Euclidean division cannot be negative, the wrapped value can be negative.

§Panics

Panics if the divisor is zero.

§Examples
use fixed::{types::extra::U124, FixedI128};
type Fix = FixedI128<U124>;
assert_eq!(Fix::from_num(7.5).overflowing_rem_euclid_int(2), (Fix::from_num(1.5), false));
assert_eq!(Fix::from_num(-7.5).overflowing_rem_euclid_int(2), (Fix::from_num(0.5), false));
// -8 ≤ Fix < 8, so the answer 12.5 wraps to -3.5
assert_eq!(Fix::from_num(-7.5).overflowing_rem_euclid_int(20), (Fix::from_num(-3.5), true));
source

pub const fn overflowing_sqrt(self) -> (Self, bool)

Returns the square root.

Returns a tuple of the result and a bool indicationg whether an overflow has occurred. On overflow, the wrapped value is returned.

This method uses an iterative method, with up to 128 iterations for FixedI128. The result is rounded down, and the error is < DELTA. That is, result ≤ √self < result + DELTA.

Overflow can only occur when there are no integer bits and the representable range is −0.5 ≤ x < 0.5. In this case, overflow occurs for an input value ≥ 0.25.

§Panics

Panics if the number is negative.

§Examples
use fixed::types::extra::{U4, U128};
use fixed::FixedI128;
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(2).overflowing_sqrt(),
    (Fix::SQRT_2, false)
);

type AllFrac = FixedI128<U128>;
assert_eq!(
    AllFrac::from_num(0.25).overflowing_sqrt(),
    (AllFrac::from_num(-0.5), true)
);
source

pub const fn overflowing_lerp<RangeFrac>( self, start: FixedI128<RangeFrac>, end: FixedI128<RangeFrac>, ) -> (FixedI128<RangeFrac>, bool)

Overflowing linear interpolation between start and end.

Returns a tuple of the result and a bool indicationg whether an overflow has occurred. On overflow, the wrapped value is returned.

The interpolated value is start + self × (end − start). This is start when self = 0, end when self = 1, and linear interpolation for all other values of self. Linear extrapolation is performed if self is not in the range 0 ≤ x ≤ 1.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(
    Fix::from_num(0.5).overflowing_lerp(Fix::ZERO, Fix::MAX),
    (Fix::MAX / 2, false)
);
assert_eq!(
    Fix::from_num(1.5).overflowing_lerp(Fix::ZERO, Fix::MAX),
    (Fix::MAX.wrapping_add(Fix::MAX / 2), true)
);
source§

impl<Frac: LeEqU128> FixedI128<Frac>

This block contains constants in the range 0 < x < 0.5.

§Examples

use fixed::{consts, types::extra::U128, FixedI128};
type Fix = FixedI128<U128>;
assert_eq!(Fix::LOG10_2, Fix::from_num(consts::LOG10_2));
source

pub const FRAC_1_TAU: FixedI128<Frac> = _

1/τ = 0.159154…

source

pub const FRAC_2_TAU: FixedI128<Frac> = _

2/τ = 0.318309…

source

pub const FRAC_PI_8: FixedI128<Frac> = _

π/8 = 0.392699…

source

pub const FRAC_1_PI: FixedI128<Frac> = _

1/π = 0.318309…

source

pub const FRAC_1_SQRT_2PI: FixedI128<Frac> = _

1/√2π = 0.398942…

source

pub const LOG10_2: FixedI128<Frac> = _

log10 2 = 0.301029…

source

pub const LOG10_E: FixedI128<Frac> = _

log10 e = 0.434294…

source§

impl<Frac> FixedI128<Frac>
where Frac: IsLessOrEqual<U127, Output = True> + Unsigned,

This block contains constants in the range 0.5 ≤ x < 1, and −1.

These constants are not representable in signed fixed-point numbers with less than 1 integer bit.

§Examples

use fixed::{consts, types::extra::U127, FixedI128};
type Fix = FixedI128<U127>;
assert_eq!(Fix::LN_2, Fix::from_num(consts::LN_2));
assert!(0.5 <= Fix::LN_2 && Fix::LN_2 < 1);

The following example fails to compile, since the maximum representable value with 128 fractional bits and 0 integer bits is < 0.5.

use fixed::{consts, types::extra::U128, FixedI128};
type Fix = FixedI128<U128>;
let _ = Fix::LN_2;
source

pub const NEG_ONE: FixedI128<Frac> = _

Negative one.

§Examples
use fixed::{types::extra::U127, FixedI128};
type Fix = FixedI128<U127>;
assert_eq!(Fix::NEG_ONE, Fix::from_num(-1));

The following would fail as FixedI128<U127> cannot represent 1, so there is no FixedI128::<U127>::ONE.

use fixed::{types::extra::U127, FixedI128};
const _ERROR: FixedI128<U127> = FixedI128::ONE.unwrapped_neg();
source

pub const FRAC_TAU_8: FixedI128<Frac> = _

τ/8 = 0.785398…

source

pub const FRAC_TAU_12: FixedI128<Frac> = _

τ/12 = 0.523598…

source

pub const FRAC_4_TAU: FixedI128<Frac> = _

4/τ = 0.636619…

source

pub const FRAC_PI_4: FixedI128<Frac> = _

π/4 = 0.785398…

source

pub const FRAC_PI_6: FixedI128<Frac> = _

π/6 = 0.523598…

source

pub const FRAC_2_PI: FixedI128<Frac> = _

2/π = 0.636619…

source

pub const FRAC_1_SQRT_PI: FixedI128<Frac> = _

1/√π = 0.564189…

source

pub const FRAC_1_SQRT_2: FixedI128<Frac> = _

1/√2 = 0.707106…

source

pub const FRAC_1_SQRT_3: FixedI128<Frac> = _

1/√3 = 0.577350…

source

pub const LN_2: FixedI128<Frac> = _

ln 2 = 0.693147…

source

pub const FRAC_1_PHI: FixedI128<Frac> = _

The golden ratio conjugate, Φ = 1/φ = 0.618033…

source

pub const GAMMA: FixedI128<Frac> = _

The Euler-Mascheroni constant, γ = 0.577215…

source

pub const CATALAN: FixedI128<Frac> = _

Catalan’s constant = 0.915965…

source§

impl<Frac> FixedI128<Frac>
where Frac: IsLessOrEqual<U126, Output = True> + Unsigned,

This block contains constants in the range 1 ≤ x < 2.

These constants are not representable in signed fixed-point numbers with less than 2 integer bits.

§Examples

use fixed::{consts, types::extra::U126, FixedI128};
type Fix = FixedI128<U126>;
assert_eq!(Fix::LOG2_E, Fix::from_num(consts::LOG2_E));
assert!(1 <= Fix::LOG2_E && Fix::LOG2_E < 2);

The following example fails to compile, since the maximum representable value with 127 fractional bits and 1 integer bit is < 1.

use fixed::{consts, types::extra::U127, FixedI128};
type Fix = FixedI128<U127>;
let _ = Fix::LOG2_E;
source

pub const ONE: FixedI128<Frac> = _

One.

§Examples
use fixed::{types::extra::U4, FixedI128};
type Fix = FixedI128<U4>;
assert_eq!(Fix::ONE, Fix::from_num(1));
source

pub const FRAC_TAU_4: FixedI128<Frac> = _

τ/4 = 1.57079…

source

pub const FRAC_TAU_6: FixedI128<Frac> = _

τ/6 = 1.04719…

source

pub const FRAC_PI_2: FixedI128<Frac> = _

π/2 = 1.57079…

source

pub const FRAC_PI_3: FixedI128<Frac> = _

π/3 = 1.04719…

source

pub const SQRT_PI: FixedI128<Frac> = _

√π = 1.77245…

source

pub const FRAC_2_SQRT_PI: FixedI128<Frac> = _

2/√π = 1.12837…

source

pub const SQRT_2: FixedI128<Frac> = _

√2 = 1.41421…

source

pub const SQRT_3: FixedI128<Frac> = _

√3 = 1.73205…

source

pub const SQRT_E: FixedI128<Frac> = _

√e = 1.64872…

source

pub const LOG2_E: FixedI128<Frac> = _

log2 e = 1.44269…

source

pub const PHI: FixedI128<Frac> = _

The golden ratio, φ = 1.61803…

source

pub const SQRT_PHI: FixedI128<Frac> = _

√φ = 1.27201…

source§

impl<Frac> FixedI128<Frac>
where Frac: IsLessOrEqual<U125, Output = True> + Unsigned,

This block contains constants in the range 2 ≤ x < 4.

These constants are not representable in signed fixed-point numbers with less than 3 integer bits.

§Examples

use fixed::{consts, types::extra::U125, FixedI128};
type Fix = FixedI128<U125>;
assert_eq!(Fix::E, Fix::from_num(consts::E));
assert!(2 <= Fix::E && Fix::E < 4);

The following example fails to compile, since the maximum representable value with 126 fractional bits and 2 integer bits is < 2.

use fixed::{consts, types::extra::U126, FixedI128};
type Fix = FixedI128<U126>;
let _ = Fix::E;
source

pub const FRAC_TAU_2: FixedI128<Frac> = _

τ/2 = 3.14159…

source

pub const FRAC_TAU_3: FixedI128<Frac> = _

τ/3 = 2.09439…

source

pub const PI: FixedI128<Frac> = _

Archimedes’ constant, π = 3.14159…

source

pub const SQRT_2PI: FixedI128<Frac> = _

√2π = 2.50662…

source

pub const E: FixedI128<Frac> = _

Euler’s number, e = 2.71828…

source

pub const LOG2_10: FixedI128<Frac> = _

log2 10 = 3.32192…

source

pub const LN_10: FixedI128<Frac> = _

ln 10 = 2.30258…

source§

impl<Frac> FixedI128<Frac>
where Frac: IsLessOrEqual<U124, Output = True> + Unsigned,

This block contains constants in the range 4 ≤ x < 8.

These constants are not representable in signed fixed-point numbers with less than 4 integer bits.

§Examples

use fixed::{consts, types::extra::U124, FixedI128};
type Fix = FixedI128<U124>;
assert_eq!(Fix::TAU, Fix::from_num(consts::TAU));
assert!(4 <= Fix::TAU && Fix::TAU < 8);

The following example fails to compile, since the maximum representable value with 125 fractional bits and 3 integer bits is < 4.

use fixed::{consts, types::extra::U125, FixedI128};
type Fix = FixedI128<U125>;
let _ = Fix::TAU;
source

pub const TAU: FixedI128<Frac> = _

A turn, τ = 6.28318…

Trait Implementations§

source§

impl<Frac> Add<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the + operation. Read more
source§

impl<Frac> Add<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the + operator.
source§

fn add(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the + operation. Read more
source§

impl<Frac> Add<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the + operator.
source§

fn add(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the + operation. Read more
source§

impl<Frac> Add for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the + operator.
source§

fn add(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the + operation. Read more
source§

impl<Frac> AddAssign<&FixedI128<Frac>> for FixedI128<Frac>

source§

fn add_assign(&mut self, rhs: &FixedI128<Frac>)

Performs the += operation. Read more
source§

impl<Frac> AddAssign for FixedI128<Frac>

source§

fn add_assign(&mut self, rhs: FixedI128<Frac>)

Performs the += operation. Read more
source§

impl<'a, Frac> Arbitrary<'a> for FixedI128<Frac>

source§

fn arbitrary(u: &mut Unstructured<'a>) -> ArbitraryResult<Self>

Generate an arbitrary value of Self from the given unstructured data. Read more
source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
source§

fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
source§

impl<Frac: LeEqU128> Binary for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac> BitAnd<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the & operation. Read more
source§

impl<Frac> BitAnd<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the & operation. Read more
source§

impl<Frac> BitAnd<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the & operation. Read more
source§

impl<Frac> BitAnd for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the & operator.
source§

fn bitand(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the & operation. Read more
source§

impl<Frac> BitAndAssign<&FixedI128<Frac>> for FixedI128<Frac>

source§

fn bitand_assign(&mut self, rhs: &FixedI128<Frac>)

Performs the &= operation. Read more
source§

impl<Frac> BitAndAssign for FixedI128<Frac>

source§

fn bitand_assign(&mut self, rhs: FixedI128<Frac>)

Performs the &= operation. Read more
source§

impl<Frac> BitOr<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the | operation. Read more
source§

impl<Frac> BitOr<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the | operation. Read more
source§

impl<Frac> BitOr<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the | operation. Read more
source§

impl<Frac> BitOr for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the | operator.
source§

fn bitor(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the | operation. Read more
source§

impl<Frac> BitOrAssign<&FixedI128<Frac>> for FixedI128<Frac>

source§

fn bitor_assign(&mut self, rhs: &FixedI128<Frac>)

Performs the |= operation. Read more
source§

impl<Frac> BitOrAssign for FixedI128<Frac>

source§

fn bitor_assign(&mut self, rhs: FixedI128<Frac>)

Performs the |= operation. Read more
source§

impl<Frac> BitXor<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the ^ operation. Read more
source§

impl<Frac> BitXor<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the ^ operation. Read more
source§

impl<Frac> BitXor<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the ^ operation. Read more
source§

impl<Frac> BitXor for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the ^ operator.
source§

fn bitxor(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the ^ operation. Read more
source§

impl<Frac> BitXorAssign<&FixedI128<Frac>> for FixedI128<Frac>

source§

fn bitxor_assign(&mut self, rhs: &FixedI128<Frac>)

Performs the ^= operation. Read more
source§

impl<Frac> BitXorAssign for FixedI128<Frac>

source§

fn bitxor_assign(&mut self, rhs: FixedI128<Frac>)

Performs the ^= operation. Read more
source§

impl<Frac> BorshDeserialize for FixedI128<Frac>

source§

fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self>

source§

fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>

Deserializes this instance from a given slice of bytes. Updates the buffer to point at the remaining bytes.
source§

fn try_from_slice(v: &[u8]) -> Result<Self, Error>

Deserialize this instance from a slice of bytes.
source§

fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>
where R: Read,

source§

impl<Frac> BorshSerialize for FixedI128<Frac>

source§

fn serialize<W: Write>(&self, writer: &mut W) -> Result<()>

source§

impl<Frac> Bounded for FixedI128<Frac>

source§

fn min_value() -> Self

Returns the smallest finite number this type can represent
source§

fn max_value() -> Self

Returns the largest finite number this type can represent
source§

impl<Frac: LeEqU128> Cast<F128> for FixedI128<Frac>

source§

fn cast(self) -> F128

Casts the value.
source§

impl<Frac: LeEqU128> Cast<F128Bits> for FixedI128<Frac>

source§

fn cast(self) -> F128Bits

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for F128

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for F128Bits

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for half_bf16

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for bool

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for half_f16

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for f32

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for f64

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for i128

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for i16

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for i32

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for i64

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for i8

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for isize

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for u128

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for u16

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for u32

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for u64

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for u8

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<FixedI128<Frac>> for usize

source§

fn cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedI16<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedI32<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedI64<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedI8<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedU128<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedU16<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedU32<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedU64<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> Cast<FixedI128<FracDst>> for FixedU8<FracSrc>

source§

fn cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> Cast<FixedI16<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedI16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> Cast<FixedI32<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedI32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> Cast<FixedI64<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedI64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> Cast<FixedI8<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedI8<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> Cast<FixedU128<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedU128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> Cast<FixedU16<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedU16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> Cast<FixedU32<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedU32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> Cast<FixedU64<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedU64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> Cast<FixedU8<FracDst>> for FixedI128<FracSrc>

source§

fn cast(self) -> FixedU8<FracDst>

Casts the value.
source§

impl<Frac: LeEqU128> Cast<bf16> for FixedI128<Frac>

source§

fn cast(self) -> half_bf16

Casts the value.
source§

impl<Frac: LeEqU128> Cast<f16> for FixedI128<Frac>

source§

fn cast(self) -> half_f16

Casts the value.
source§

impl<Frac: LeEqU128> Cast<f32> for FixedI128<Frac>

source§

fn cast(self) -> f32

Casts the value.
source§

impl<Frac: LeEqU128> Cast<f64> for FixedI128<Frac>

source§

fn cast(self) -> f64

Casts the value.
source§

impl<Frac: LeEqU128> Cast<i128> for FixedI128<Frac>

source§

fn cast(self) -> i128

Casts the value.
source§

impl<Frac: LeEqU128> Cast<i16> for FixedI128<Frac>

source§

fn cast(self) -> i16

Casts the value.
source§

impl<Frac: LeEqU128> Cast<i32> for FixedI128<Frac>

source§

fn cast(self) -> i32

Casts the value.
source§

impl<Frac: LeEqU128> Cast<i64> for FixedI128<Frac>

source§

fn cast(self) -> i64

Casts the value.
source§

impl<Frac: LeEqU128> Cast<i8> for FixedI128<Frac>

source§

fn cast(self) -> i8

Casts the value.
source§

impl<Frac: LeEqU128> Cast<isize> for FixedI128<Frac>

source§

fn cast(self) -> isize

Casts the value.
source§

impl<Frac: LeEqU128> Cast<u128> for FixedI128<Frac>

source§

fn cast(self) -> u128

Casts the value.
source§

impl<Frac: LeEqU128> Cast<u16> for FixedI128<Frac>

source§

fn cast(self) -> u16

Casts the value.
source§

impl<Frac: LeEqU128> Cast<u32> for FixedI128<Frac>

source§

fn cast(self) -> u32

Casts the value.
source§

impl<Frac: LeEqU128> Cast<u64> for FixedI128<Frac>

source§

fn cast(self) -> u64

Casts the value.
source§

impl<Frac: LeEqU128> Cast<u8> for FixedI128<Frac>

source§

fn cast(self) -> u8

Casts the value.
source§

impl<Frac: LeEqU128> Cast<usize> for FixedI128<Frac>

source§

fn cast(self) -> usize

Casts the value.
source§

impl<Frac> CheckedAdd for FixedI128<Frac>

source§

fn checked_add(&self, v: &Self) -> Option<Self>

Adds two numbers, checking for overflow. If overflow happens, None is returned.
source§

impl<Frac: LeEqU128> CheckedCast<F128> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<F128>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<F128Bits> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<F128Bits>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for F128

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for F128Bits

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for half_bf16

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for bool

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for half_f16

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for f32

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for f64

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for i128

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for i16

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for i32

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for i64

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for i8

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for isize

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for u128

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for u16

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for u32

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for u64

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for u8

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<FixedI128<Frac>> for usize

source§

fn checked_cast(self) -> Option<FixedI128<Frac>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedI16<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedI32<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedI64<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedI8<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedU128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedU16<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedU32<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedU64<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> CheckedCast<FixedI128<FracDst>> for FixedU8<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> CheckedCast<FixedI16<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI16<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> CheckedCast<FixedI32<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI32<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> CheckedCast<FixedI64<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI64<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> CheckedCast<FixedI8<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedI8<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> CheckedCast<FixedU128<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedU128<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> CheckedCast<FixedU16<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedU16<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> CheckedCast<FixedU32<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedU32<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> CheckedCast<FixedU64<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedU64<FracDst>>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> CheckedCast<FixedU8<FracDst>> for FixedI128<FracSrc>

source§

fn checked_cast(self) -> Option<FixedU8<FracDst>>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<bf16> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<half_bf16>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<f16> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<half_f16>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<f32> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<f32>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<f64> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<f64>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<i128> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<i128>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<i16> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<i16>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<i32> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<i32>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<i64> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<i64>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<i8> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<i8>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<isize> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<isize>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<u128> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<u128>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<u16> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<u16>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<u32> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<u32>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<u64> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<u64>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<u8> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<u8>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedCast<usize> for FixedI128<Frac>

source§

fn checked_cast(self) -> Option<usize>

Casts the value.
source§

impl<Frac: LeEqU128> CheckedDiv for FixedI128<Frac>

source§

fn checked_div(&self, v: &Self) -> Option<Self>

Divides two numbers, checking for underflow, overflow and division by zero. If any of that happens, None is returned.
source§

impl<Frac: LeEqU128> CheckedMul for FixedI128<Frac>

source§

fn checked_mul(&self, v: &Self) -> Option<Self>

Multiplies two numbers, checking for underflow or overflow. If underflow or overflow happens, None is returned.
source§

impl<Frac> CheckedNeg for FixedI128<Frac>

source§

fn checked_neg(&self) -> Option<Self>

Negates a number, returning None for results that can’t be represented, like signed MIN values that can’t be positive, or non-zero unsigned values that can’t be negative. Read more
source§

impl<Frac> CheckedRem for FixedI128<Frac>

source§

fn checked_rem(&self, v: &Self) -> Option<Self>

Finds the remainder of dividing two numbers, checking for underflow, overflow and division by zero. If any of that happens, None is returned. Read more
source§

impl<Frac> CheckedShl for FixedI128<Frac>

source§

fn checked_shl(&self, rhs: u32) -> Option<Self>

Checked shift left. Computes self << rhs, returning None if rhs is larger than or equal to the number of bits in self. Read more
source§

impl<Frac> CheckedShr for FixedI128<Frac>

source§

fn checked_shr(&self, rhs: u32) -> Option<Self>

Checked shift right. Computes self >> rhs, returning None if rhs is larger than or equal to the number of bits in self. Read more
source§

impl<Frac> CheckedSub for FixedI128<Frac>

source§

fn checked_sub(&self, v: &Self) -> Option<Self>

Subtracts two numbers, checking for underflow. If underflow happens, None is returned.
source§

impl<Frac> Clone for FixedI128<Frac>

source§

fn clone(&self) -> FixedI128<Frac>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Frac> ConstOne for FixedI128<Frac>
where Frac: IsLessOrEqual<U126, Output = True> + LeEqU128,

source§

const ONE: Self = Self::ONE

The multiplicative identity element of Self, 1.
source§

impl<Frac> ConstZero for FixedI128<Frac>

source§

const ZERO: Self = Self::ZERO

The additive identity element of Self, 0.
source§

impl<Frac: 'static> Contiguous for FixedI128<Frac>

§

type Int = i128

The primitive integer type with an identical representation to this type. Read more
source§

const MAX_VALUE: i128 = 170_141_183_460_469_231_731_687_303_715_884_105_727i128

The upper inclusive bound for valid instances of this type.
source§

const MIN_VALUE: i128 = -170_141_183_460_469_231_731_687_303_715_884_105_728i128

The lower inclusive bound for valid instances of this type.
source§

fn from_integer(value: Self::Int) -> Option<Self>

If value is within the range for valid instances of this type, returns Some(converted_value), otherwise, returns None. Read more
source§

fn into_integer(self) -> Self::Int

Perform the conversion from C into the underlying integral type. This mostly exists otherwise generic code would need unsafe for the value as integer Read more
source§

impl<Frac: Unsigned> Debug for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac> Default for FixedI128<Frac>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, Frac: LeEqU128> Deserialize<'de> for FixedI128<Frac>

source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
source§

impl<Frac: LeEqU128> Display for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac: LeEqU128> Div<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac: LeEqU128> Div<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac: LeEqU128> Div<&i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: &i128) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac: LeEqU128> Div<&i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: &i128) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac: LeEqU128> Div<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac: LeEqU128> Div<i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: i128) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac> Div<i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: i128) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac: LeEqU128> Div for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the / operator.
source§

fn div(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the / operation. Read more
source§

impl<Frac: LeEqU128> DivAssign<&FixedI128<Frac>> for FixedI128<Frac>

source§

fn div_assign(&mut self, rhs: &FixedI128<Frac>)

Performs the /= operation. Read more
source§

impl<Frac: LeEqU128> DivAssign<&i128> for FixedI128<Frac>

source§

fn div_assign(&mut self, rhs: &i128)

Performs the /= operation. Read more
source§

impl<Frac: LeEqU128> DivAssign<i128> for FixedI128<Frac>

source§

fn div_assign(&mut self, rhs: i128)

Performs the /= operation. Read more
source§

impl<Frac: LeEqU128> DivAssign for FixedI128<Frac>

source§

fn div_assign(&mut self, rhs: FixedI128<Frac>)

Performs the /= operation. Read more
source§

impl<Frac: LeEqU128> Fixed for FixedI128<Frac>

§

type Bits = i128

The primitive integer underlying type. Read more
§

type NonZeroBits = NonZero<i128>

The non-zero wrapped version of Bits. Read more
§

type Bytes = [u8; 16]

A byte array with the same size as the type. Read more
§

type Frac = Frac

The number of fractional bits as a compile-time Unsigned as provided by the typenum crate. Read more
§

type Signed = FixedI128<Frac>

A signed fixed-point number type with the same number of integer and fractional bits as Self. Read more
§

type Unsigned = FixedU128<Frac>

An unsigned fixed-point number type with the same number of integer and fractional bits as Self. Read more
source§

const ZERO: Self = Self::ZERO

Zero. Read more
source§

const TRY_ONE: Option<Self> = Self::TRY_ONE

One if the fixed-point number can represent it, otherwise None.
source§

const DELTA: Self = Self::DELTA

The difference between any two successive representable numbers, Δ. Read more
source§

const MIN: Self = Self::MIN

The smallest value that can be represented. Read more
source§

const MAX: Self = Self::MAX

The largest value that can be represented. Read more
source§

const IS_SIGNED: bool = true

true if the type is signed. Read more
source§

const INT_NBITS: u32 = Self::INT_NBITS

The number of integer bits. Read more
source§

const FRAC_NBITS: u32 = Self::FRAC_NBITS

The number of fractional bits. Read more
source§

fn from_bits(bits: Self::Bits) -> Self

Creates a fixed-point number that has a bitwise representation identical to the given integer. Read more
source§

fn to_bits(self) -> Self::Bits

Creates an integer that has a bitwise representation identical to the given fixed-point number. Read more
source§

fn from_be(fixed: Self) -> Self

Converts a fixed-point number from big endian to the target’s endianness. Read more
source§

fn from_le(fixed: Self) -> Self

Converts a fixed-point number from little endian to the target’s endianness. Read more
source§

fn to_be(self) -> Self

Converts this fixed-point number to big endian from the target’s endianness. Read more
source§

fn to_le(self) -> Self

Converts this fixed-point number to little endian from the target’s endianness. Read more
source§

fn swap_bytes(self) -> Self

Reverses the byte order of the fixed-point number. Read more
source§

fn from_be_bytes(bits: Self::Bytes) -> Self

Creates a fixed-point number from its representation as a byte array in big endian. Read more
source§

fn from_le_bytes(bits: Self::Bytes) -> Self

Creates a fixed-point number from its representation as a byte array in little endian. Read more
source§

fn from_ne_bytes(bits: Self::Bytes) -> Self

Creates a fixed-point number from its representation as a byte array in native endian. Read more
source§

fn to_be_bytes(self) -> Self::Bytes

Returns the memory representation of this fixed-point number as a byte array in big-endian byte order. Read more
source§

fn to_le_bytes(self) -> Self::Bytes

Returns the memory representation of this fixed-point number as a byte array in little-endian byte order. Read more
source§

fn to_ne_bytes(self) -> Self::Bytes

Returns the memory representation of this fixed-point number as a byte array in native byte order. Read more
source§

fn from_num<Src: ToFixed>(src: Src) -> Self

Creates a fixed-point number from another number. Read more
source§

fn to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number. Read more
source§

fn checked_from_num<Src: ToFixed>(val: Src) -> Option<Self>

Creates a fixed-point number from another number if it fits, otherwise returns None. Read more
source§

fn checked_to_num<Dst: FromFixed>(self) -> Option<Dst>

Converts a fixed-point number to another number if it fits, otherwise returns None. Read more
source§

fn saturating_from_num<Src: ToFixed>(val: Src) -> Self

Creates a fixed-point number from another number, saturating the value if it does not fit. Read more
source§

fn saturating_to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number, saturating the value if it does not fit. Read more
source§

fn wrapping_from_num<Src: ToFixed>(val: Src) -> Self

Creates a fixed-point number from another number, wrapping the value on overflow. Read more
source§

fn wrapping_to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number, wrapping the value on overflow. Read more
source§

fn unwrapped_from_num<Src: ToFixed>(val: Src) -> Self

Creates a fixed-point number from another number, panicking on overflow. Read more
source§

fn unwrapped_to_num<Dst: FromFixed>(self) -> Dst

Converts a fixed-point number to another number, panicking on overflow. Read more
source§

fn overflowing_from_num<Src: ToFixed>(val: Src) -> (Self, bool)

Creates a fixed-point number from another number. Read more
source§

fn overflowing_to_num<Dst: FromFixed>(self) -> (Dst, bool)

Converts a fixed-point number to another number. Read more
source§

fn from_str_binary(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number. Read more
source§

fn from_str_octal(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number. Read more
source§

fn from_str_hex(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing hexadecimal digits to return a fixed-point number. Read more
source§

fn saturating_from_str(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing decimal digits to return a fixed-point number, saturating on overflow. Read more
source§

fn saturating_from_str_binary(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number, saturating on overflow. Read more
source§

fn saturating_from_str_octal(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number, saturating on overflow. Read more
source§

fn saturating_from_str_hex(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing hexadecimal digits to return a fixed-point number, saturating on overflow. Read more
source§

fn wrapping_from_str(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing decimal digits to return a fixed-point number, wrapping on overflow. Read more
source§

fn wrapping_from_str_binary(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number, wrapping on overflow. Read more
source§

fn wrapping_from_str_octal(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number, wrapping on overflow. Read more
source§

fn wrapping_from_str_hex(src: &str) -> Result<Self, ParseFixedError>

Parses a string slice containing hexadecimal digits to return a fixed-point number, wrapping on overflow. Read more
source§

fn unwrapped_from_str(src: &str) -> Self

Parses a string slice containing decimal digits to return a fixed-point number, panicking on overflow. Read more
source§

fn unwrapped_from_str_binary(src: &str) -> Self

Parses a string slice containing binary digits to return a fixed-point number, panicking on overflow. Read more
source§

fn unwrapped_from_str_octal(src: &str) -> Self

Parses a string slice containing octal digits to return a fixed-point number, panicking on overflow. Read more
source§

fn unwrapped_from_str_hex(src: &str) -> Self

Parses a string slice containing hexadecimal digits to return a fixed-point number, panicking on overflow. Read more
source§

fn overflowing_from_str(src: &str) -> Result<(Self, bool), ParseFixedError>

Parses a string slice containing decimal digits to return a fixed-point number. Read more
source§

fn overflowing_from_str_binary( src: &str, ) -> Result<(Self, bool), ParseFixedError>

Parses a string slice containing binary digits to return a fixed-point number. Read more
source§

fn overflowing_from_str_octal( src: &str, ) -> Result<(Self, bool), ParseFixedError>

Parses a string slice containing octal digits to return a fixed-point number. Read more
source§

fn overflowing_from_str_hex(src: &str) -> Result<(Self, bool), ParseFixedError>

Parses a string slice containing hexadecimal digits to return a fixed-point number. Read more
source§

fn int(self) -> Self

Returns the integer part. Read more
source§

fn frac(self) -> Self

Returns the fractional part. Read more
source§

fn ceil(self) -> Self

Rounds to the next integer towards +∞. Read more
source§

fn floor(self) -> Self

Rounds to the next integer towards −∞. Read more
source§

fn round_to_zero(self) -> Self

Rounds to the next integer towards 0. Read more
source§

fn round(self) -> Self

Rounds to the nearest integer, with ties rounded away from zero. Read more
source§

fn round_ties_even(self) -> Self

Rounds to the nearest integer, with ties rounded to even. Read more
source§

fn checked_ceil(self) -> Option<Self>

Checked ceil. Rounds to the next integer towards +∞, returning None on overflow. Read more
source§

fn checked_floor(self) -> Option<Self>

Checked floor. Rounds to the next integer towards −∞, returning None on overflow. Read more
source§

fn checked_round(self) -> Option<Self>

Checked round. Rounds to the nearest integer, with ties rounded away from zero, returning None on overflow. Read more
source§

fn checked_round_ties_even(self) -> Option<Self>

Checked round. Rounds to the nearest integer, with ties rounded to even, returning None on overflow. Read more
source§

fn saturating_ceil(self) -> Self

Saturating ceil. Rounds to the next integer towards +∞, saturating on overflow. Read more
source§

fn saturating_floor(self) -> Self

Saturating floor. Rounds to the next integer towards −∞, saturating on overflow. Read more
source§

fn saturating_round(self) -> Self

Saturating round. Rounds to the nearest integer, with ties rounded away from zero, and saturating on overflow. Read more
source§

fn saturating_round_ties_even(self) -> Self

Saturating round. Rounds to the nearest integer, with ties rounded to_even, and saturating on overflow. Read more
source§

fn wrapping_ceil(self) -> Self

Wrapping ceil. Rounds to the next integer towards +∞, wrapping on overflow. Read more
source§

fn wrapping_floor(self) -> Self

Wrapping floor. Rounds to the next integer towards −∞, wrapping on overflow. Read more
source§

fn wrapping_round(self) -> Self

Wrapping round. Rounds to the next integer to the nearest, with ties rounded away from zero, and wrapping on overflow. Read more
source§

fn wrapping_round_ties_even(self) -> Self

Wrapping round. Rounds to the next integer to the nearest, with ties rounded to even, and wrapping on overflow. Read more
source§

fn unwrapped_ceil(self) -> Self

Unwrapped ceil. Rounds to the next integer towards +∞, panicking on overflow. Read more
source§

fn unwrapped_floor(self) -> Self

Unwrapped floor. Rounds to the next integer towards −∞, panicking on overflow. Read more
source§

fn unwrapped_round(self) -> Self

Unwrapped round. Rounds to the next integer to the nearest, with ties rounded away from zero, and panicking on overflow. Read more
source§

fn unwrapped_round_ties_even(self) -> Self

Unwrapped round. Rounds to the next integer to the nearest, with ties rounded to even, and panicking on overflow. Read more
source§

fn overflowing_ceil(self) -> (Self, bool)

Overflowing ceil. Rounds to the next integer towards +∞. Read more
source§

fn overflowing_floor(self) -> (Self, bool)

Overflowing floor. Rounds to the next integer towards −∞. Read more
source§

fn overflowing_round(self) -> (Self, bool)

Overflowing round. Rounds to the next integer to the nearest, with ties rounded away from zero. Read more
source§

fn overflowing_round_ties_even(self) -> (Self, bool)

Overflowing round. Rounds to the next integer to the nearest, with ties rounded to even. Read more
source§

fn count_ones(self) -> u32

Returns the number of ones in the binary representation. Read more
source§

fn count_zeros(self) -> u32

Returns the number of zeros in the binary representation. Read more
source§

fn leading_ones(self) -> u32

Returns the number of leading ones in the binary representation. Read more
source§

fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation. Read more
source§

fn trailing_ones(self) -> u32

Returns the number of trailing ones in the binary representation. Read more
source§

fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation. Read more
source§

fn int_log2(self) -> i32

Integer base-2 logarithm, rounded down. Read more
source§

fn int_log10(self) -> i32

Integer base-10 logarithm, rounded down. Read more
source§

fn int_log(self, base: u32) -> i32

Integer logarithm to the specified base, rounded down. Read more
source§

fn checked_int_log2(self) -> Option<i32>

Checked integer base-2 logarithm, rounded down. Returns the logarithm or None if the fixed-point number is ≤ 0. Read more
source§

fn checked_int_log10(self) -> Option<i32>

Checked integer base-10 logarithm, rounded down. Returns the logarithm or None if the fixed-point number is ≤ 0. Read more
source§

fn checked_int_log(self, base: u32) -> Option<i32>

Checked integer logarithm to the specified base, rounded down. Returns the logarithm, or None if the fixed-point number is ≤ 0 or if the base is < 2. Read more
source§

fn reverse_bits(self) -> Self

Reverses the order of the bits of the fixed-point number. Read more
source§

fn rotate_left(self, n: u32) -> Self

Shifts to the left by n bits, wrapping the truncated bits to the right end. Read more
source§

fn rotate_right(self, n: u32) -> Self

Shifts to the right by n bits, wrapping the truncated bits to the left end. Read more
source§

fn is_zero(self) -> bool

Returns true if the number is zero. Read more
source§

fn dist(self, other: Self) -> Self

Returns the distance from self to other. Read more
source§

fn abs_diff(self, other: Self) -> Self::Unsigned

Returns the absolute value of the difference between self and other using an unsigned type without any wrapping or panicking. Read more
source§

fn mean(self, other: Self) -> Self

Returns the mean of self and other. Read more
source§

fn hypot(self, other: Self) -> Self

Compute the hypotenuse of a right triange. Read more
source§

fn recip(self) -> Self

Returns the reciprocal. Read more
source§

fn next_multiple_of(self, other: Self) -> Self

Returns the next multiple of other. Read more
source§

fn mul_add(self, mul: Self, add: Self) -> Self

Multiply and add. Returns self × mul + add. Read more
source§

fn add_prod(self, a: Self, b: Self) -> Self

Adds self to the product a × b. Read more
source§

fn mul_acc(&mut self, a: Self, b: Self)

Multiply and accumulate. Adds (a × b) to self. Read more
source§

fn div_euclid(self, rhs: Self) -> Self

Euclidean division by an integer. Read more
source§

fn rem_euclid(self, rhs: Self) -> Self

Remainder for Euclidean division. Read more
source§

fn div_euclid_int(self, rhs: Self::Bits) -> Self

Euclidean division by an integer. Read more
source§

fn rem_euclid_int(self, rhs: Self::Bits) -> Self

Remainder for Euclidean division by an integer. Read more
source§

fn sqrt(self) -> Self

Returns the square root. Read more
source§

fn lerp(self, start: Self, end: Self) -> Self

Linear interpolation between start and end. Read more
source§

fn inv_lerp(self, start: Self, end: Self) -> Self

Inverse linear interpolation between start and end. Read more
source§

fn checked_neg(self) -> Option<Self>

Checked negation. Returns the negated value, or None on overflow. Read more
source§

fn checked_add(self, rhs: Self) -> Option<Self>

Checked addition. Returns the sum, or None on overflow. Read more
source§

fn checked_sub(self, rhs: Self) -> Option<Self>

Checked subtraction. Returns the difference, or None on overflow. Read more
source§

fn checked_mul(self, rhs: Self) -> Option<Self>

Checked multiplication. Returns the product, or None on overflow. Read more
source§

fn checked_div(self, rhs: Self) -> Option<Self>

Checked division. Returns the quotient, or None if the divisor is zero or on overflow. Read more
source§

fn checked_rem(self, rhs: Self) -> Option<Self>

Checked remainder. Returns the remainder, or None if the divisor is zero. Read more
source§

fn checked_recip(self) -> Option<Self>

Checked reciprocal. Returns the reciprocal, or None if self is zero or on overflow. Read more
source§

fn checked_next_multiple_of(self, other: Self) -> Option<Self>

Checked next multiple of other. Returns the next multiple, or None if other is zero or on overflow. Read more
source§

fn checked_mul_add(self, mul: Self, add: Self) -> Option<Self>

Checked multiply and add. Returns self × mul + add, or None on overflow. Read more
source§

fn checked_add_prod(self, a: Self, b: Self) -> Option<Self>

Adds self to the product a × b, returning None on overflow. Read more
source§

fn checked_mul_acc(&mut self, a: Self, b: Self) -> Option<()>

Checked multiply and accumulate. Adds (a × b) to self, or returns None on overflow. Read more
source§

fn checked_div_euclid(self, rhs: Self) -> Option<Self>

Checked remainder for Euclidean division. Returns the remainder, or None if the divisor is zero or the division results in overflow. Read more
source§

fn checked_rem_euclid(self, rhs: Self) -> Option<Self>

Checked remainder for Euclidean division. Returns the remainder, or None if the divisor is zero. Read more
source§

fn checked_mul_int(self, rhs: Self::Bits) -> Option<Self>

Checked multiplication by an integer. Returns the product, or None on overflow. Read more
source§

fn checked_div_int(self, rhs: Self::Bits) -> Option<Self>

Checked division by an integer. Returns the quotient, or None if the divisor is zero or if the division results in overflow. Read more
source§

fn checked_rem_int(self, rhs: Self::Bits) -> Option<Self>

Checked fixed-point remainder for division by an integer. Returns the remainder, or None if the divisor is zero or if the division results in overflow. Read more
source§

fn checked_div_euclid_int(self, rhs: Self::Bits) -> Option<Self>

Checked Euclidean division by an integer. Returns the quotient, or None if the divisor is zero or if the division results in overflow. Read more
source§

fn checked_rem_euclid_int(self, rhs: Self::Bits) -> Option<Self>

Checked remainder for Euclidean division by an integer. Returns the remainder, or None if the divisor is zero or if the remainder results in overflow. Read more
source§

fn checked_shl(self, rhs: u32) -> Option<Self>

Checked shift left. Returns the shifted number, or None if rhs ≥ the number of bits. Read more
source§

fn checked_shr(self, rhs: u32) -> Option<Self>

Checked shift right. Returns the shifted number, or None if rhs ≥ the number of bits. Read more
source§

fn checked_dist(self, other: Self) -> Option<Self>

Checked distance. Returns the distance from self to other, or None on overflow. Read more
source§

fn checked_hypot(self, other: Self) -> Option<Self>

Compute the hypotenuse of a right triange, returning None on overflow. Read more
source§

fn checked_sqrt(self) -> Option<Self>

Checked square root. Returns None for negative numbers or on overflow. Read more
source§

fn checked_lerp(self, start: Self, end: Self) -> Option<Self>

Checked linear interpolation between start and end. Returns None on overflow. Read more
source§

fn checked_inv_lerp(self, start: Self, end: Self) -> Option<Self>

Checked inverse linear interpolation between start and end. Returns None when start = end or on overflow. Read more
source§

fn saturating_neg(self) -> Self

Saturated negation. Returns the negated value, saturating on overflow. Read more
source§

fn saturating_add(self, rhs: Self) -> Self

Saturating addition. Returns the sum, saturating on overflow. Read more
source§

fn saturating_sub(self, rhs: Self) -> Self

Saturating subtraction. Returns the difference, saturating on overflow. Read more
source§

fn saturating_mul(self, rhs: Self) -> Self

Saturating multiplication. Returns the product, saturating on overflow. Read more
source§

fn saturating_div(self, rhs: Self) -> Self

Saturating division. Returns the quotient, saturating on overflow. Read more
source§

fn saturating_recip(self) -> Self

Saturating reciprocal. Read more
source§

fn saturating_next_multiple_of(self, other: Self) -> Self

Saturating next multiple of other. Read more
source§

fn saturating_mul_add(self, mul: Self, add: Self) -> Self

Saturating multiply and add. Returns self × mul + add, saturating on overflow. Read more
source§

fn saturating_add_prod(self, a: Self, b: Self) -> Self

Adds self to the product a × b, saturating on overflow. Read more
source§

fn saturating_mul_acc(&mut self, a: Self, b: Self)

Saturating multiply and add. Adds (a × b) to self, saturating on overflow. Read more
source§

fn saturating_div_euclid(self, rhs: Self) -> Self

Saturating Euclidean division. Returns the quotient, saturating on overflow. Read more
source§

fn saturating_mul_int(self, rhs: Self::Bits) -> Self

Saturating multiplication by an integer. Returns the product, saturating on overflow. Read more
source§

fn saturating_div_int(self, rhs: Self::Bits) -> Self

Saturating division by an integer. Returns the quotient, saturating on overflow. Read more
source§

fn saturating_div_euclid_int(self, rhs: Self::Bits) -> Self

Saturating Euclidean division by an integer. Returns the quotient, saturating on overflow. Read more
source§

fn saturating_rem_euclid_int(self, rhs: Self::Bits) -> Self

Saturating remainder for Euclidean division by an integer. Returns the remainder, saturating on overflow. Read more
source§

fn saturating_dist(self, other: Self) -> Self

Saturating distance. Returns the distance from self to other, saturating on overflow. Read more
source§

fn saturating_hypot(self, other: Self) -> Self

Compute the hypotenuse of a right triange, saturating on overflow. Read more
source§

fn saturating_sqrt(self) -> Self

Returns the square root, saturating on overflow. Read more
source§

fn saturating_lerp(self, start: Self, end: Self) -> Self

Linear interpolation between start and end, saturating on overflow. Read more
source§

fn saturating_inv_lerp(self, start: Self, end: Self) -> Self

Inverse linear interpolation between start and end, saturating on overflow. Read more
source§

fn wrapping_neg(self) -> Self

Wrapping negation. Returns the negated value, wrapping on overflow. Read more
source§

fn wrapping_add(self, rhs: Self) -> Self

Wrapping addition. Returns the sum, wrapping on overflow. Read more
source§

fn wrapping_sub(self, rhs: Self) -> Self

Wrapping subtraction. Returns the difference, wrapping on overflow. Read more
source§

fn wrapping_mul(self, rhs: Self) -> Self

Wrapping multiplication. Returns the product, wrapping on overflow. Read more
source§

fn wrapping_div(self, rhs: Self) -> Self

Wrapping division. Returns the quotient, wrapping on overflow. Read more
source§

fn wrapping_recip(self) -> Self

Wrapping reciprocal. Read more
source§

fn wrapping_next_multiple_of(self, other: Self) -> Self

Wrapping next multiple of other. Read more
source§

fn wrapping_mul_add(self, mul: Self, add: Self) -> Self

Wrapping multiply and add. Returns self × mul + add, wrapping on overflow. Read more
source§

fn wrapping_add_prod(self, a: Self, b: Self) -> Self

Adds self to the product a × b, wrapping on overflow. Read more
source§

fn wrapping_mul_acc(&mut self, a: Self, b: Self)

Wrapping multiply and accumulate. Adds (a × b) to self, wrapping on overflow. Read more
source§

fn wrapping_div_euclid(self, rhs: Self) -> Self

Wrapping Euclidean division. Returns the quotient, wrapping on overflow. Read more
source§

fn wrapping_mul_int(self, rhs: Self::Bits) -> Self

Wrapping multiplication by an integer. Returns the product, wrapping on overflow. Read more
source§

fn wrapping_div_int(self, rhs: Self::Bits) -> Self

Wrapping division by an integer. Returns the quotient, wrapping on overflow. Read more
source§

fn wrapping_div_euclid_int(self, rhs: Self::Bits) -> Self

Wrapping Euclidean division by an integer. Returns the quotient, wrapping on overflow. Read more
source§

fn wrapping_rem_euclid_int(self, rhs: Self::Bits) -> Self

Wrapping remainder for Euclidean division by an integer. Returns the remainder, wrapping on overflow. Read more
source§

fn wrapping_shl(self, rhs: u32) -> Self

Wrapping shift left. Wraps rhs if rhs ≥ the number of bits, then shifts and returns the number. Read more
source§

fn wrapping_shr(self, rhs: u32) -> Self

Wrapping shift right. Wraps rhs if rhs ≥ the number of bits, then shifts and returns the number. Read more
source§

fn wrapping_dist(self, other: Self) -> Self

Wrapping distance. Returns the distance from self to other, wrapping on overflow. Read more
source§

fn wrapping_hypot(self, other: Self) -> Self

Compute the hypotenuse of a right triange, wrapping on overflow. Read more
source§

fn wrapping_sqrt(self) -> Self

Returns the square root, wrapping on overflow. Read more
source§

fn wrapping_lerp(self, start: Self, end: Self) -> Self

Linear interpolation between start and end, wrapping on overflow. Read more
source§

fn wrapping_inv_lerp(self, start: Self, end: Self) -> Self

Inverse linear interpolation between start and end, wrapping on overflow. Read more
source§

fn unwrapped_neg(self) -> Self

Unwrapped negation. Returns the negated value, panicking on overflow. Read more
source§

fn unwrapped_add(self, rhs: Self) -> Self

Unwrapped addition. Returns the sum, panicking on overflow. Read more
source§

fn unwrapped_sub(self, rhs: Self) -> Self

Unwrapped subtraction. Returns the difference, panicking on overflow. Read more
source§

fn unwrapped_mul(self, rhs: Self) -> Self

Unwrapped multiplication. Returns the product, panicking on overflow. Read more
source§

fn unwrapped_div(self, rhs: Self) -> Self

Unwrapped division. Returns the quotient, panicking on overflow. Read more
source§

fn unwrapped_rem(self, rhs: Self) -> Self

Unwrapped remainder. Returns the quotient, panicking if the divisor is zero. Read more
source§

fn unwrapped_recip(self) -> Self

Unwrapped reciprocal. Returns reciprocal, panicking on overflow. Read more
source§

fn unwrapped_next_multiple_of(self, other: Self) -> Self

Unwrapped next multiple of other. Returns the next multiple, panicking on overflow. Read more
source§

fn unwrapped_mul_add(self, mul: Self, add: Self) -> Self

Unwrapped multiply and add. Returns self × mul + add, panicking on overflow. Read more
source§

fn unwrapped_add_prod(self, a: Self, b: Self) -> Self

Adds self to the product a × b, panicking on overflow. Read more
source§

fn unwrapped_mul_acc(&mut self, a: Self, b: Self)

Unwrapped multiply and accumulate. Adds (a × b) to self, panicking on overflow. Read more
source§

fn unwrapped_div_euclid(self, rhs: Self) -> Self

Unwrapped Euclidean division. Returns the quotient, panicking on overflow. Read more
source§

fn unwrapped_rem_euclid(self, rhs: Self) -> Self

Unwrapped remainder for Euclidean division. Returns the remainder, panicking if the divisor is zero. Read more
source§

fn unwrapped_mul_int(self, rhs: Self::Bits) -> Self

Unwrapped multiplication by an integer. Returns the product, panicking on overflow. Read more
source§

fn unwrapped_div_int(self, rhs: Self::Bits) -> Self

Unwrapped division by an integer. Returns the quotient, panicking on overflow. Read more
source§

fn unwrapped_rem_int(self, rhs: Self::Bits) -> Self

Unwrapped remainder for division by an integer. Returns the remainder, panicking if the divisor is zero. Read more
source§

fn unwrapped_div_euclid_int(self, rhs: Self::Bits) -> Self

Unwrapped Euclidean division by an integer. Returns the quotient, panicking on overflow. Read more
source§

fn unwrapped_rem_euclid_int(self, rhs: Self::Bits) -> Self

Unwrapped remainder for Euclidean division by an integer. Returns the remainder, panicking on overflow. Read more
source§

fn unwrapped_shl(self, rhs: u32) -> Self

Unwrapped shift left. Panics if rhs ≥ the number of bits. Read more
source§

fn unwrapped_shr(self, rhs: u32) -> Self

Unwrapped shift right. Panics if rhs ≥ the number of bits. Read more
source§

fn unwrapped_dist(self, other: Self) -> Self

Unwrapped distance. Returns the distance from self to other, panicking on overflow. Read more
source§

fn unwrapped_hypot(self, other: Self) -> Self

Compute the hypotenuse of a right triange, panicking on overflow. Read more
source§

fn unwrapped_sqrt(self) -> Self

Returns the square root, panicking if the number is negative or on overflow. Read more
source§

fn unwrapped_lerp(self, start: Self, end: Self) -> Self

Linear interpolation between start and end, panicking on overflow. Read more
source§

fn unwrapped_inv_lerp(self, start: Self, end: Self) -> Self

Inverse linear interpolation between start and end, panicking on overflow. Read more
source§

fn overflowing_neg(self) -> (Self, bool)

Overflowing negation. Read more
source§

fn overflowing_add(self, rhs: Self) -> (Self, bool)

Overflowing addition. Read more
source§

fn overflowing_sub(self, rhs: Self) -> (Self, bool)

Overflowing subtraction. Read more
source§

fn overflowing_mul(self, rhs: Self) -> (Self, bool)

Overflowing multiplication. Read more
source§

fn overflowing_div(self, rhs: Self) -> (Self, bool)

Overflowing division. Read more
source§

fn overflowing_recip(self) -> (Self, bool)

Overflowing reciprocal. Read more
source§

fn overflowing_next_multiple_of(self, other: Self) -> (Self, bool)

Overflowing next multiple of other. Read more
source§

fn overflowing_mul_add(self, mul: Self, add: Self) -> (Self, bool)

Overflowing multiply and add. Read more
source§

fn overflowing_add_prod(self, a: Self, b: Self) -> (Self, bool)

Adds self to the product a × b. Read more
source§

fn overflowing_mul_acc(&mut self, a: Self, b: Self) -> bool

Overflowing multiply and accumulate. Adds (a × b) to self, wrapping and returning true if overflow occurs. Read more
source§

fn overflowing_div_euclid(self, rhs: Self) -> (Self, bool)

Overflowing Euclidean division. Read more
source§

fn overflowing_mul_int(self, rhs: Self::Bits) -> (Self, bool)

Overflowing multiplication by an integer. Read more
source§

fn overflowing_div_int(self, rhs: Self::Bits) -> (Self, bool)

Overflowing division by an integer. Read more
source§

fn overflowing_div_euclid_int(self, rhs: Self::Bits) -> (Self, bool)

Overflowing Euclidean division by an integer. Read more
source§

fn overflowing_rem_euclid_int(self, rhs: Self::Bits) -> (Self, bool)

Overflowing remainder for Euclidean division by an integer. Read more
source§

fn overflowing_shl(self, rhs: u32) -> (Self, bool)

Overflowing shift left. Read more
source§

fn overflowing_shr(self, rhs: u32) -> (Self, bool)

Overflowing shift right. Read more
source§

fn overflowing_dist(self, other: Self) -> (Self, bool)

Overflowing distance. Read more
source§

fn overflowing_hypot(self, other: Self) -> (Self, bool)

Compute the hypotenuse of a right triange. Read more
source§

fn overflowing_sqrt(self) -> (Self, bool)

Compute the square root. Read more
source§

fn overflowing_lerp(self, start: Self, end: Self) -> (Self, bool)

Overflowing linear interpolation between start and end. Read more
source§

fn overflowing_inv_lerp(self, start: Self, end: Self) -> (Self, bool)

Overflowing inverse linear interpolation between start and end. Read more
source§

unsafe fn unchecked_add(self, rhs: Self) -> Self

Unchecked addition. Computes self + rhs, assuming overflow cannot occur. Read more
source§

unsafe fn unchecked_sub(self, rhs: Self) -> Self

Unchecked subtraction. Computes self − rhs, assuming overflow cannot occur. Read more
source§

unsafe fn unchecked_mul_int(self, rhs: Self::Bits) -> Self

Unchecked multiplication by an integer. Computes self × rhs, assuming overflow cannot occur. Read more
source§

fn get_signed(&self) -> Option<&Self::Signed>

Returns a reference to self as FixedSigned if the type is signed, or None if it is unsigned. Read more
source§

fn get_unsigned(&self) -> Option<&Self::Unsigned>

Returns a reference to self as FixedUnsigned if the type is unsigned, or None if it is signed. Read more
source§

fn get_signed_mut(&mut self) -> Option<&mut Self::Signed>

Returns a mutable reference to self as FixedSigned if the type is signed, or None if it is unsigned. Read more
source§

fn get_unsigned_mut(&mut self) -> Option<&mut Self::Unsigned>

Returns a mutable reference to self as FixedUnsigned if the type is unsigned, or None if it is signed. Read more
source§

fn round_ties_to_even(self) -> Self

👎Deprecated since 1.28.0: renamed to round_ties_even
Rounds to the nearest integer, with ties rounded to even.
source§

fn checked_round_ties_to_even(self) -> Option<Self>

👎Deprecated since 1.28.0: renamed to checked_round_ties_even
Checked round. Rounds to the nearest integer, with ties rounded to even, returning None on overflow.
source§

fn saturating_round_ties_to_even(self) -> Self

👎Deprecated since 1.28.0: renamed to saturating_round_ties_even
Saturating round. Rounds to the nearest integer, with ties rounded to_even, and saturating on overflow.
source§

fn wrapping_round_ties_to_even(self) -> Self

👎Deprecated since 1.28.0: renamed to wrapping_round_ties_even
Wrapping round. Rounds to the next integer to the nearest, with ties rounded to even, and wrapping on overflow.
source§

fn unwrapped_round_ties_to_even(self) -> Self

👎Deprecated since 1.28.0: renamed to unwrapped_round_ties_even
Unwrapped round. Rounds to the next integer to the nearest, with ties rounded to even, and panicking on overflow. Read more
source§

fn overflowing_round_ties_to_even(self) -> (Self, bool)

👎Deprecated since 1.28.0: renamed to overflowing_round_ties_even
Overflowing round. Rounds to the next integer to the nearest, with ties rounded to even. Read more
source§

impl<Frac: LeEqU128> FixedSigned for FixedI128<Frac>

source§

const TRY_NEG_ONE: Option<Self> = Self::TRY_NEG_ONE

Negative one if the fixed-point number can represent it, otherwise None.
source§

fn signed_bits(self) -> u32

Returns the number of bits required to represent the value. Read more
source§

fn is_positive(self) -> bool

Returns true if the number is > 0. Read more
source§

fn is_negative(self) -> bool

Returns true if the number is < 0. Read more
source§

fn abs(self) -> Self

Returns the absolute value. Read more
source§

fn unsigned_abs(self) -> Self::Unsigned

Returns the absolute value using an unsigned type without any wrapping or panicking. Read more
source§

fn unsigned_dist(self, other: Self) -> Self::Unsigned

Returns the distance from self to other using an unsigned type without any wrapping or panicking. Read more
source§

fn signum(self) -> Self

Returns a number representing the sign of self. Read more
source§

fn add_unsigned(self, rhs: Self::Unsigned) -> Self

Addition with an unsigned fixed-point number. Read more
source§

fn sub_unsigned(self, rhs: Self::Unsigned) -> Self

Subtraction with an unsigned fixed-point number. Read more
source§

fn checked_abs(self) -> Option<Self>

Checked absolute value. Returns the absolute value, or None on overflow. Read more
source§

fn checked_signum(self) -> Option<Self>

Checked signum. Returns a number representing the sign of self, or None on overflow. Read more
source§

fn checked_add_unsigned(self, rhs: Self::Unsigned) -> Option<Self>

Checked addition with an unsigned fixed-point number. Returns the sum, or None on overflow. Read more
source§

fn checked_sub_unsigned(self, rhs: Self::Unsigned) -> Option<Self>

Checked subtraction with an unsigned fixed-point number. Returns the difference, or None on overflow. Read more
source§

fn saturating_abs(self) -> Self

Saturating absolute value. Returns the absolute value, saturating on overflow. Read more
source§

fn saturating_signum(self) -> Self

Saturating signum. Returns a number representing the sign of self, saturating on overflow. Read more
source§

fn saturating_add_unsigned(self, rhs: Self::Unsigned) -> Self

Saturating addition with an unsigned fixed-point number. Returns the sum, saturating on overflow. Read more
source§

fn saturating_sub_unsigned(self, rhs: Self::Unsigned) -> Self

Saturating subtraction with an unsigned fixed-point number. Returns the difference, saturating on overflow. Read more
source§

fn wrapping_abs(self) -> Self

Wrapping absolute value. Returns the absolute value, wrapping on overflow. Read more
source§

fn wrapping_signum(self) -> Self

Wrapping signum. Returns a number representing the sign of self, wrapping on overflow. Read more
source§

fn wrapping_add_unsigned(self, rhs: Self::Unsigned) -> Self

Wrapping addition with an unsigned fixed-point number. Returns the sum, wrapping on overflow. Read more
source§

fn wrapping_sub_unsigned(self, rhs: Self::Unsigned) -> Self

Wrapping subtraction with an unsigned fixed-point number. Returns the difference, wrapping on overflow. Read more
source§

fn unwrapped_abs(self) -> Self

Unwrapped absolute value. Returns the absolute value, panicking on overflow. Read more
source§

fn unwrapped_signum(self) -> Self

Unwrapped signum. Returns a number representing the sign of self, panicking on overflow. Read more
source§

fn unwrapped_add_unsigned(self, rhs: Self::Unsigned) -> Self

Unwrapped addition with an unsigned fixed-point number. Returns the sum, panicking on overflow. Read more
source§

fn unwrapped_sub_unsigned(self, rhs: Self::Unsigned) -> Self

Unwrapped subtraction with an unsigned fixed-point number. Returns the difference, panicking on overflow. Read more
source§

fn overflowing_abs(self) -> (Self, bool)

Overflowing absolute value. Read more
source§

fn overflowing_signum(self) -> (Self, bool)

Overflowing signum. Read more
source§

fn overflowing_add_unsigned(self, rhs: Self::Unsigned) -> (Self, bool)

Overflowing addition with an unsigned fixed-point number. Read more
source§

fn overflowing_sub_unsigned(self, rhs: Self::Unsigned) -> (Self, bool)

Overflowing subtraction with an unsigned fixed-point number. Read more
source§

impl<Frac: LeEqU128> FloatConst for FixedI128<Frac>

source§

fn E() -> Self

Return Euler’s number.
source§

fn FRAC_1_PI() -> Self

Return 1.0 / π.
source§

fn FRAC_1_SQRT_2() -> Self

Return 1.0 / sqrt(2.0).
source§

fn FRAC_2_PI() -> Self

Return 2.0 / π.
source§

fn FRAC_2_SQRT_PI() -> Self

Return 2.0 / sqrt(π).
source§

fn FRAC_PI_2() -> Self

Return π / 2.0.
source§

fn FRAC_PI_3() -> Self

Return π / 3.0.
source§

fn FRAC_PI_4() -> Self

Return π / 4.0.
source§

fn FRAC_PI_6() -> Self

Return π / 6.0.
source§

fn FRAC_PI_8() -> Self

Return π / 8.0.
source§

fn LN_10() -> Self

Return ln(10.0).
source§

fn LN_2() -> Self

Return ln(2.0).
source§

fn LOG10_E() -> Self

Return log10(e).
source§

fn LOG2_E() -> Self

Return log2(e).
source§

fn PI() -> Self

Return Archimedes’ constant π.
source§

fn SQRT_2() -> Self

Return sqrt(2.0).
source§

fn TAU() -> Self

Return the full circle constant τ.
source§

fn LOG10_2() -> Self

Return log10(2.0).
source§

fn LOG2_10() -> Self

Return log2(10.0).
source§

impl From<FixedI128<UTerm>> for i128

source§

fn from(src: FixedI128<U0>) -> Self

Converts a fixed-point number with no fractional bits to an integer.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedI16<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU16, U16: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U16, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: FixedI16<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedI32<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU32, U32: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U32, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: FixedI32<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedI64<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU64, U64: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U64, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: FixedI64<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedI8<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU8, U8: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U8, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: FixedI8<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedU16<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU16, U16: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U16, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: FixedU16<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedU32<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU32, U32: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U32, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: FixedU32<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedU64<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU64, U64: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U64, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: FixedU64<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> From<FixedU8<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU8, U8: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U8, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: FixedU8<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) and does not lose any precision (lossless).

source§

impl<FracDst: LeEqU128> From<bool> for FixedI128<FracDst>
where U127: Sub<FracDst>, U1: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: bool) -> Self

Converts a bool to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

source§

impl From<i128> for FixedI128<U0>

source§

fn from(src: i128) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits (lossless).

source§

impl<FracDst: LeEqU128> From<i16> for FixedI128<FracDst>
where U128: Sub<FracDst>, U16: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: i16) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> From<i32> for FixedI128<FracDst>
where U128: Sub<FracDst>, U32: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: i32) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> From<i64> for FixedI128<FracDst>
where U128: Sub<FracDst>, U64: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: i64) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> From<i8> for FixedI128<FracDst>
where U128: Sub<FracDst>, U8: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn from(src: i8) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> From<u16> for FixedI128<FracDst>
where U127: Sub<FracDst>, U16: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: u16) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> From<u32> for FixedI128<FracDst>
where U127: Sub<FracDst>, U32: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: u32) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> From<u64> for FixedI128<FracDst>
where U127: Sub<FracDst>, U64: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: u64) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> From<u8> for FixedI128<FracDst>
where U127: Sub<FracDst>, U8: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn from(src: u8) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<Frac: LeEqU128> FromBytes for FixedI128<Frac>

§

type Bytes = <FixedI128<Frac> as Fixed>::Bytes

source§

fn from_be_bytes(bytes: &Self::Bytes) -> Self

Create a number from its representation as a byte array in big endian. Read more
source§

fn from_le_bytes(bytes: &Self::Bytes) -> Self

Create a number from its representation as a byte array in little endian. Read more
source§

fn from_ne_bytes(bytes: &Self::Bytes) -> Self

Create a number from its memory representation as a byte array in native endianness. Read more
source§

impl<Frac: LeEqU128> FromFixed for FixedI128<Frac>

source§

fn from_fixed<F: Fixed>(src: F) -> Self

Converts a fixed-point number.

Any extra fractional bits are discarded, which rounds towards −∞.

§Panics

When debug assertions are enabled, panics if the value does not fit. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_from_fixed instead.

source§

fn checked_from_fixed<F: Fixed>(src: F) -> Option<Self>

Converts a fixed-point number if it fits, otherwise returns None.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn saturating_from_fixed<F: Fixed>(src: F) -> Self

Converts a fixed-point number, saturating if it does not fit.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn wrapping_from_fixed<F: Fixed>(src: F) -> Self

Converts a fixed-point number, wrapping if it does not fit.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn overflowing_from_fixed<F: Fixed>(src: F) -> (Self, bool)

Converts a fixed-point number.

Returns a tuple of the value and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn unwrapped_from_fixed<F: Fixed>(src: F) -> Self

Converts a fixed-point number, panicking if it does not fit.

Any extra fractional bits are discarded, which rounds towards −∞.

§Panics

Panics if the value does not fit, even when debug assertions are not enabled.

source§

impl<Frac: LeEqU128> FromPrimitive for FixedI128<Frac>

source§

fn from_i64(n: i64) -> Option<Self>

Converts an i64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_u64(n: u64) -> Option<Self>

Converts an u64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_isize(n: isize) -> Option<Self>

Converts an isize to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_i8(n: i8) -> Option<Self>

Converts an i8 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_i16(n: i16) -> Option<Self>

Converts an i16 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_i32(n: i32) -> Option<Self>

Converts an i32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_i128(n: i128) -> Option<Self>

Converts an i128 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more
source§

fn from_usize(n: usize) -> Option<Self>

Converts a usize to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_u8(n: u8) -> Option<Self>

Converts an u8 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_u16(n: u16) -> Option<Self>

Converts an u16 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_u32(n: u32) -> Option<Self>

Converts an u32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_u128(n: u128) -> Option<Self>

Converts an u128 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more
source§

fn from_f32(n: f32) -> Option<Self>

Converts a f32 to return an optional value of this type. If the value cannot be represented by this type, then None is returned.
source§

fn from_f64(n: f64) -> Option<Self>

Converts a f64 to return an optional value of this type. If the value cannot be represented by this type, then None is returned. Read more
source§

impl<Frac: LeEqU128> FromStr for FixedI128<Frac>

source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string slice to return a fixed-point number.

Rounding is to the nearest, with ties rounded to even.

§

type Err = ParseFixedError

The associated error which can be returned from parsing.
source§

impl<Frac> Hash for FixedI128<Frac>

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<Frac: LeEqU128> Inv for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The result after applying the operator.
source§

fn inv(self) -> Self::Output

Returns the multiplicative inverse of self. Read more
source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedI128<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU16> LosslessTryFrom<FixedI128<FracSrc>> for FixedI16<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU32> LosslessTryFrom<FixedI128<FracSrc>> for FixedI32<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU64> LosslessTryFrom<FixedI128<FracSrc>> for FixedI64<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU8> LosslessTryFrom<FixedI128<FracSrc>> for FixedI8<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedI128<FracSrc>> for FixedU128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU16> LosslessTryFrom<FixedI128<FracSrc>> for FixedU16<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU32> LosslessTryFrom<FixedI128<FracSrc>> for FixedU32<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU64> LosslessTryFrom<FixedI128<FracSrc>> for FixedU64<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU8> LosslessTryFrom<FixedI128<FracSrc>> for FixedU8<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedI128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for i128

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for i16

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for i32

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for i64

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for i8

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for isize

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for u128

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for u16

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for u32

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for u64

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for u8

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl LosslessTryFrom<FixedI128<UTerm>> for usize

source§

fn lossless_try_from(src: FixedI128<U0>) -> Option<Self>

Converts a fixed-point number to an integer.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedI16<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU16,

source§

fn lossless_try_from(src: FixedI16<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedI32<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU32,

source§

fn lossless_try_from(src: FixedI32<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedI64<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU64,

source§

fn lossless_try_from(src: FixedI64<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedI8<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU8,

source§

fn lossless_try_from(src: FixedI8<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedU128<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU128,

source§

fn lossless_try_from(src: FixedU128<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedU16<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU16,

source§

fn lossless_try_from(src: FixedU16<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedU32<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU32,

source§

fn lossless_try_from(src: FixedU32<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedU64<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU64,

source§

fn lossless_try_from(src: FixedU64<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<FracSrc, FracDst: LeEqU128> LosslessTryFrom<FixedU8<FracSrc>> for FixedI128<FracDst>
where FracSrc: IsLessOrEqual<FracDst, Output = True> + LeEqU8,

source§

fn lossless_try_from(src: FixedU8<FracSrc>) -> Option<Self>

Converts a fixed-pint number.

This conversion may fail (fallible) but does not lose precision (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<bool> for FixedI128<Frac>

source§

fn lossless_try_from(src: bool) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<f16> for FixedI128<Frac>
where U24: IsLessOrEqual<Frac, Output = True>,

source§

fn lossless_try_from(src: half_f16) -> Option<Self>

Converts a floating-point number to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<i128> for FixedI128<Frac>

source§

fn lossless_try_from(src: i128) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<i16> for FixedI128<Frac>

source§

fn lossless_try_from(src: i16) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<i32> for FixedI128<Frac>

source§

fn lossless_try_from(src: i32) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<i64> for FixedI128<Frac>

source§

fn lossless_try_from(src: i64) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<i8> for FixedI128<Frac>

source§

fn lossless_try_from(src: i8) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<isize> for FixedI128<Frac>

source§

fn lossless_try_from(src: isize) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<u128> for FixedI128<Frac>

source§

fn lossless_try_from(src: u128) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<u16> for FixedI128<Frac>

source§

fn lossless_try_from(src: u16) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<u32> for FixedI128<Frac>

source§

fn lossless_try_from(src: u32) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<u64> for FixedI128<Frac>

source§

fn lossless_try_from(src: u64) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<u8> for FixedI128<Frac>

source§

fn lossless_try_from(src: u8) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LosslessTryFrom<usize> for FixedI128<Frac>

source§

fn lossless_try_from(src: usize) -> Option<Self>

Converts an integer to a fixed-point number.

This conversion may fail (fallible) but cannot lose any fractional bits (lossless).

source§

impl<Frac: LeEqU128> LossyFrom<FixedI128<Frac>> for F128

source§

fn lossy_from(src: FixedI128<Frac>) -> F128

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

source§

impl<Frac: LeEqU128> LossyFrom<FixedI128<Frac>> for F128Bits

source§

fn lossy_from(src: FixedI128<Frac>) -> F128Bits

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

source§

impl<Frac: LeEqU128> LossyFrom<FixedI128<Frac>> for half_bf16

source§

fn lossy_from(src: FixedI128<Frac>) -> half_bf16

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

source§

impl<Frac: LeEqU128> LossyFrom<FixedI128<Frac>> for half_f16

source§

fn lossy_from(src: FixedI128<Frac>) -> half_f16

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

source§

impl<Frac: LeEqU128> LossyFrom<FixedI128<Frac>> for f32

source§

fn lossy_from(src: FixedI128<Frac>) -> f32

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

source§

impl<Frac: LeEqU128> LossyFrom<FixedI128<Frac>> for f64

source§

fn lossy_from(src: FixedI128<Frac>) -> f64

Converts a fixed-point number to a floating-point number.

This conversion never fails (infallible) but may lose precision (lossy). Rounding is to the nearest, with ties rounded to even.

source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> LossyFrom<FixedI128<FracSrc>> for FixedI128<FracDst>
where U128: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U128, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> LossyFrom<FixedI128<FracSrc>> for FixedI16<FracDst>
where U128: Sub<FracSrc>, U16: Sub<FracDst>, Diff<U128, FracSrc>: IsLessOrEqual<Diff<U16, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> LossyFrom<FixedI128<FracSrc>> for FixedI32<FracDst>
where U128: Sub<FracSrc>, U32: Sub<FracDst>, Diff<U128, FracSrc>: IsLessOrEqual<Diff<U32, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> LossyFrom<FixedI128<FracSrc>> for FixedI64<FracDst>
where U128: Sub<FracSrc>, U64: Sub<FracDst>, Diff<U128, FracSrc>: IsLessOrEqual<Diff<U64, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> LossyFrom<FixedI128<FracSrc>> for FixedI8<FracDst>
where U128: Sub<FracSrc>, U8: Sub<FracDst>, Diff<U128, FracSrc>: IsLessOrEqual<Diff<U8, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128> LossyFrom<FixedI128<FracSrc>> for i128
where U128: Sub<FracSrc>, Diff<U128, FracSrc>: IsLessOrEqual<U128, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128> LossyFrom<FixedI128<FracSrc>> for i16
where U128: Sub<FracSrc>, Diff<U128, FracSrc>: IsLessOrEqual<U16, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128> LossyFrom<FixedI128<FracSrc>> for i32
where U128: Sub<FracSrc>, Diff<U128, FracSrc>: IsLessOrEqual<U32, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128> LossyFrom<FixedI128<FracSrc>> for i64
where U128: Sub<FracSrc>, Diff<U128, FracSrc>: IsLessOrEqual<U64, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128> LossyFrom<FixedI128<FracSrc>> for i8
where U128: Sub<FracSrc>, Diff<U128, FracSrc>: IsLessOrEqual<U8, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128> LossyFrom<FixedI128<FracSrc>> for isize
where U128: Sub<FracSrc>, Diff<U128, FracSrc>: IsLessOrEqual<U16, Output = True>,

source§

fn lossy_from(src: FixedI128<FracSrc>) -> Self

Converts a fixed-point number to an integer.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> LossyFrom<FixedI16<FracSrc>> for FixedI128<FracDst>
where U16: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U16, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI16<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> LossyFrom<FixedI32<FracSrc>> for FixedI128<FracDst>
where U32: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U32, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI32<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> LossyFrom<FixedI64<FracSrc>> for FixedI128<FracDst>
where U64: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U64, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI64<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> LossyFrom<FixedI8<FracSrc>> for FixedI128<FracDst>
where U8: Sub<FracSrc>, U128: Sub<FracDst>, Diff<U8, FracSrc>: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedI8<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> LossyFrom<FixedU128<FracSrc>> for FixedI128<FracDst>
where U128: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U128, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedU128<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> LossyFrom<FixedU16<FracSrc>> for FixedI128<FracDst>
where U16: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U16, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedU16<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> LossyFrom<FixedU32<FracSrc>> for FixedI128<FracDst>
where U32: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U32, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedU32<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> LossyFrom<FixedU64<FracSrc>> for FixedI128<FracDst>
where U64: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U64, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedU64<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> LossyFrom<FixedU8<FracSrc>> for FixedI128<FracDst>
where U8: Sub<FracSrc>, U127: Sub<FracDst>, Diff<U8, FracSrc>: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: FixedU8<FracSrc>) -> Self

Converts a fixed-pint number.

This conversion never fails (infallible) but may lose precision (lossy). Any fractional bits in the source that cannot be represented in the destination are discarded, which rounds towards −∞.

source§

impl<FracDst: LeEqU128> LossyFrom<bool> for FixedI128<FracDst>
where U127: Sub<FracDst>, U1: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: bool) -> Self

Converts a bool to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl LossyFrom<i128> for FixedI128<U0>

source§

fn lossy_from(src: i128) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and actually does not lose any precision (lossless).

source§

impl<FracDst: LeEqU128> LossyFrom<i16> for FixedI128<FracDst>
where U128: Sub<FracDst>, U16: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: i16) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> LossyFrom<i32> for FixedI128<FracDst>
where U128: Sub<FracDst>, U32: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: i32) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> LossyFrom<i64> for FixedI128<FracDst>
where U128: Sub<FracDst>, U64: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: i64) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> LossyFrom<i8> for FixedI128<FracDst>
where U128: Sub<FracDst>, U8: IsLessOrEqual<Diff<U128, FracDst>, Output = True>,

source§

fn lossy_from(src: i8) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> LossyFrom<u16> for FixedI128<FracDst>
where U127: Sub<FracDst>, U16: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: u16) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> LossyFrom<u32> for FixedI128<FracDst>
where U127: Sub<FracDst>, U32: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: u32) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> LossyFrom<u64> for FixedI128<FracDst>
where U127: Sub<FracDst>, U64: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: u64) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<FracDst: LeEqU128> LossyFrom<u8> for FixedI128<FracDst>
where U127: Sub<FracDst>, U8: IsLessOrEqual<Diff<U127, FracDst>, Output = True>,

source§

fn lossy_from(src: u8) -> Self

Converts an integer to a fixed-point number.

This conversion never fails (infallible) and cannot lose any fractional bits, so it is actually lossless.

source§

impl<Frac: LeEqU128> LowerExp for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac: LeEqU128> LowerHex for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac: LeEqU128> Mul<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<&FixedI128<Frac>> for &i128

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<&FixedI128<Frac>> for i128

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<&i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &i128) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<&i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: &i128) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<FixedI128<Frac>> for &i128

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<FixedI128<Frac>> for i128

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul<i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: i128) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac> Mul<i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: i128) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac: LeEqU128> Mul for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the * operation. Read more
source§

impl<Frac, MulFrac: LeEqU128> MulAdd<FixedI128<MulFrac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the fused multiply-add.
source§

fn mul_add(self, a: FixedI128<MulFrac>, b: FixedI128<Frac>) -> FixedI128<Frac>

Performs the fused multiply-add operation (self * a) + b
source§

impl<Frac, MulFrac: LeEqU128> MulAddAssign<FixedI128<MulFrac>> for FixedI128<Frac>

source§

fn mul_add_assign(&mut self, a: FixedI128<MulFrac>, b: FixedI128<Frac>)

Performs the fused multiply-add assignment operation *self = (*self * a) + b
source§

impl<Frac, RhsFrac: LeEqU128> MulAssign<&FixedI128<RhsFrac>> for FixedI128<Frac>

source§

fn mul_assign(&mut self, rhs: &FixedI128<RhsFrac>)

Performs the *= operation. Read more
source§

impl<Frac: LeEqU128> MulAssign<&i128> for FixedI128<Frac>

source§

fn mul_assign(&mut self, rhs: &i128)

Performs the *= operation. Read more
source§

impl<Frac, RhsFrac: LeEqU128> MulAssign<FixedI128<RhsFrac>> for FixedI128<Frac>

source§

fn mul_assign(&mut self, rhs: FixedI128<RhsFrac>)

Performs the *= operation. Read more
source§

impl<Frac: LeEqU128> MulAssign<i128> for FixedI128<Frac>

source§

fn mul_assign(&mut self, rhs: i128)

Performs the *= operation. Read more
source§

impl<Frac> Neg for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the - operator.
source§

fn neg(self) -> FixedI128<Frac>

Performs the unary - operation. Read more
source§

impl<Frac> Neg for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the - operator.
source§

fn neg(self) -> FixedI128<Frac>

Performs the unary - operation. Read more
source§

impl<Frac> Not for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the ! operator.
source§

fn not(self) -> FixedI128<Frac>

Performs the unary ! operation. Read more
source§

impl<Frac> Not for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the ! operator.
source§

fn not(self) -> FixedI128<Frac>

Performs the unary ! operation. Read more
source§

impl<Frac> Num for FixedI128<Frac>
where Frac: IsLessOrEqual<U126, Output = True> + LeEqU128,

§

type FromStrRadixErr = RadixParseFixedError

source§

fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>

Convert from a string and radix (typically 2..=36). Read more
source§

impl<Frac: LeEqU128> Octal for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac> One for FixedI128<Frac>
where Frac: IsLessOrEqual<U126, Output = True> + LeEqU128,

source§

fn one() -> Self

Returns the multiplicative identity element of Self, 1. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
source§

fn is_one(&self) -> bool
where Self: PartialEq,

Returns true if self is equal to the multiplicative identity. Read more
source§

impl<Frac: Unsigned> Ord for FixedI128<Frac>

source§

fn cmp(&self, rhs: &FixedI128<Frac>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<Frac> OverflowingAdd for FixedI128<Frac>

source§

fn overflowing_add(&self, v: &Self) -> (Self, bool)

Returns a tuple of the sum along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.
source§

impl<Frac: LeEqU128> OverflowingCast<F128> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (F128, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<F128Bits> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (F128Bits, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for F128

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for F128Bits

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for half_bf16

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for bool

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for half_f16

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for f32

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for f64

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for i128

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for i16

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for i32

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for i64

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for i8

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for isize

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for u128

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for u16

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for u32

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for u64

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for u8

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<FixedI128<Frac>> for usize

source§

fn overflowing_cast(self) -> (FixedI128<Frac>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedI16<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedI32<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedI64<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedI8<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedU128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedU16<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedU32<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedU64<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> OverflowingCast<FixedI128<FracDst>> for FixedU8<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> OverflowingCast<FixedI16<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI16<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> OverflowingCast<FixedI32<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI32<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> OverflowingCast<FixedI64<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI64<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> OverflowingCast<FixedI8<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedI8<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> OverflowingCast<FixedU128<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedU128<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> OverflowingCast<FixedU16<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedU16<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> OverflowingCast<FixedU32<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedU32<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> OverflowingCast<FixedU64<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedU64<FracDst>, bool)

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> OverflowingCast<FixedU8<FracDst>> for FixedI128<FracSrc>

source§

fn overflowing_cast(self) -> (FixedU8<FracDst>, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<bf16> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (half_bf16, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<f16> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (half_f16, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<f32> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (f32, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<f64> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (f64, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<i128> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (i128, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<i16> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (i16, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<i32> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (i32, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<i64> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (i64, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<i8> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (i8, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<isize> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (isize, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<u128> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (u128, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<u16> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (u16, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<u32> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (u32, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<u64> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (u64, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<u8> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (u8, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingCast<usize> for FixedI128<Frac>

source§

fn overflowing_cast(self) -> (usize, bool)

Casts the value.
source§

impl<Frac: LeEqU128> OverflowingMul for FixedI128<Frac>

source§

fn overflowing_mul(&self, v: &Self) -> (Self, bool)

Returns a tuple of the product along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.
source§

impl<Frac> OverflowingSub for FixedI128<Frac>

source§

fn overflowing_sub(&self, v: &Self) -> (Self, bool)

Returns a tuple of the difference along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.
source§

impl<Frac: Unsigned> PartialEq<F128> for FixedI128<Frac>

source§

fn eq(&self, rhs: &F128) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<F128Bits> for FixedI128<Frac>

source§

fn eq(&self, rhs: &F128Bits) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for F128

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for F128Bits

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for half_bf16

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for half_f16

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for f32

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for f64

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for i128

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for i16

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for i32

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for i64

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for i8

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for isize

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for u128

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for u16

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for u32

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for u64

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for u8

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<FixedI128<Frac>> for usize

source§

fn eq(&self, rhs: &FixedI128<Frac>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedI16<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedI32<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedI64<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedI8<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedU128<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedU16<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedU32<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedU64<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI128<FracRhs>> for FixedU8<FracLhs>

source§

fn eq(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI16<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedI16<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI32<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedI32<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI64<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedI64<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedI8<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedI8<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedU128<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedU128<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedU16<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedU16<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedU32<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedU32<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedU64<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedU64<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialEq<FixedU8<FracRhs>> for FixedI128<FracLhs>

source§

fn eq(&self, rhs: &FixedU8<FracRhs>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<bf16> for FixedI128<Frac>

source§

fn eq(&self, rhs: &half_bf16) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<f16> for FixedI128<Frac>

source§

fn eq(&self, rhs: &half_f16) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<f32> for FixedI128<Frac>

source§

fn eq(&self, rhs: &f32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<f64> for FixedI128<Frac>

source§

fn eq(&self, rhs: &f64) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<i128> for FixedI128<Frac>

source§

fn eq(&self, rhs: &i128) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<i16> for FixedI128<Frac>

source§

fn eq(&self, rhs: &i16) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<i32> for FixedI128<Frac>

source§

fn eq(&self, rhs: &i32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<i64> for FixedI128<Frac>

source§

fn eq(&self, rhs: &i64) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<i8> for FixedI128<Frac>

source§

fn eq(&self, rhs: &i8) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<isize> for FixedI128<Frac>

source§

fn eq(&self, rhs: &isize) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<u128> for FixedI128<Frac>

source§

fn eq(&self, rhs: &u128) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<u16> for FixedI128<Frac>

source§

fn eq(&self, rhs: &u16) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<u32> for FixedI128<Frac>

source§

fn eq(&self, rhs: &u32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<u64> for FixedI128<Frac>

source§

fn eq(&self, rhs: &u64) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<u8> for FixedI128<Frac>

source§

fn eq(&self, rhs: &u8) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialEq<usize> for FixedI128<Frac>

source§

fn eq(&self, rhs: &usize) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<Frac: Unsigned> PartialOrd<F128> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &F128) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<F128Bits> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &F128Bits) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for F128

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for F128Bits

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for half_bf16

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for half_f16

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for f32

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for f64

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for i128

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for i16

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for i32

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for i64

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for i8

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for isize

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for u128

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for u16

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for u32

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for u64

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for u8

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<FixedI128<Frac>> for usize

source§

fn partial_cmp(&self, rhs: &FixedI128<Frac>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<Frac>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<Frac>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedI16<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedI32<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedI64<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedI8<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedU128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedU16<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedU32<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedU64<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI128<FracRhs>> for FixedU8<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI16<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI16<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI16<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI16<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI16<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI16<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI32<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI32<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI32<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI32<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI32<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI32<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI64<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI64<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI64<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI64<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI64<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI64<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedI8<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedI8<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedI8<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedI8<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedI8<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedI8<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedU128<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedU128<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedU128<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedU128<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedU128<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedU128<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedU16<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedU16<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedU16<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedU16<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedU16<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedU16<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedU32<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedU32<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedU32<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedU32<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedU32<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedU32<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedU64<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedU64<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedU64<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedU64<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedU64<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedU64<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<FracLhs: Unsigned, FracRhs: Unsigned> PartialOrd<FixedU8<FracRhs>> for FixedI128<FracLhs>

source§

fn partial_cmp(&self, rhs: &FixedU8<FracRhs>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &FixedU8<FracRhs>) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &FixedU8<FracRhs>) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &FixedU8<FracRhs>) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &FixedU8<FracRhs>) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<bf16> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &half_bf16) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<f16> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &half_f16) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<f32> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &f32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<f64> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &f64) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<i128> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &i128) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &i128) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &i128) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &i128) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &i128) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<i16> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &i16) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &i16) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &i16) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &i16) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &i16) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<i32> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &i32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &i32) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &i32) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &i32) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &i32) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<i64> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &i64) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &i64) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &i64) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &i64) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &i64) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<i8> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &i8) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &i8) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &i8) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &i8) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &i8) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<isize> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &isize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &isize) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &isize) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &isize) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &isize) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<u128> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &u128) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &u128) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &u128) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &u128) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &u128) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<u16> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &u16) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &u16) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &u16) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &u16) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &u16) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<u32> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &u32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &u32) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &u32) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &u32) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &u32) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<u64> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &u64) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &u64) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &u64) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &u64) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &u64) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<u8> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &u8) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &u8) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &u8) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &u8) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &u8) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<Frac: Unsigned> PartialOrd<usize> for FixedI128<Frac>

source§

fn partial_cmp(&self, rhs: &usize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
source§

fn lt(&self, rhs: &usize) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
source§

fn le(&self, rhs: &usize) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
source§

fn gt(&self, rhs: &usize) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
source§

fn ge(&self, rhs: &usize) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<'a, Frac: 'a + LeEqU128> Product<&'a FixedI128<Frac>> for FixedI128<Frac>

source§

fn product<I>(iter: I) -> FixedI128<Frac>
where I: Iterator<Item = &'a FixedI128<Frac>>,

Method which takes an iterator and generates Self from the elements by multiplying the items.
source§

impl<Frac: LeEqU128> Product for FixedI128<Frac>

source§

fn product<I>(iter: I) -> FixedI128<Frac>
where I: Iterator<Item = FixedI128<Frac>>,

Method which takes an iterator and generates Self from the elements by multiplying the items.
source§

impl<Frac> Rem<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac> Rem<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<&NonZero<i128>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: &NonZeroI128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<&NonZero<i128>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: &NonZeroI128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<&i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: &i128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<&i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: &i128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac> Rem<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<NonZero<i128>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: NonZeroI128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<NonZero<i128>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: NonZeroI128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: i128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac: LeEqU128> Rem<i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: i128) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac> Rem for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the % operator.
source§

fn rem(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the % operation. Read more
source§

impl<Frac> RemAssign<&FixedI128<Frac>> for FixedI128<Frac>

source§

fn rem_assign(&mut self, rhs: &FixedI128<Frac>)

Performs the %= operation. Read more
source§

impl<Frac: LeEqU128> RemAssign<&NonZero<i128>> for FixedI128<Frac>

source§

fn rem_assign(&mut self, rhs: &NonZeroI128)

Performs the %= operation. Read more
source§

impl<Frac: LeEqU128> RemAssign<&i128> for FixedI128<Frac>

source§

fn rem_assign(&mut self, rhs: &i128)

Performs the %= operation. Read more
source§

impl<Frac: LeEqU128> RemAssign<NonZero<i128>> for FixedI128<Frac>

source§

fn rem_assign(&mut self, rhs: NonZeroI128)

Performs the %= operation. Read more
source§

impl<Frac: LeEqU128> RemAssign<i128> for FixedI128<Frac>

source§

fn rem_assign(&mut self, rhs: i128)

Performs the %= operation. Read more
source§

impl<Frac> RemAssign for FixedI128<Frac>

source§

fn rem_assign(&mut self, rhs: FixedI128<Frac>)

Performs the %= operation. Read more
source§

impl<Frac> SaturatingAdd for FixedI128<Frac>

source§

fn saturating_add(&self, v: &Self) -> Self

Saturating addition. Computes self + other, saturating at the relevant high or low boundary of the type.
source§

impl<Frac: LeEqU128> SaturatingCast<F128> for FixedI128<Frac>

source§

fn saturating_cast(self) -> F128

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<F128Bits> for FixedI128<Frac>

source§

fn saturating_cast(self) -> F128Bits

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for F128

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for F128Bits

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for half_bf16

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for bool

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for half_f16

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for f32

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for f64

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for i128

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for i16

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for i32

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for i64

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for i8

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for isize

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for u128

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for u16

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for u32

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for u64

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for u8

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<FixedI128<Frac>> for usize

source§

fn saturating_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedI16<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedI32<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedI64<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedI8<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedU128<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedU16<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedU32<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedU64<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> SaturatingCast<FixedI128<FracDst>> for FixedU8<FracSrc>

source§

fn saturating_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> SaturatingCast<FixedI16<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedI16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> SaturatingCast<FixedI32<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedI32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> SaturatingCast<FixedI64<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedI64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> SaturatingCast<FixedI8<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedI8<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> SaturatingCast<FixedU128<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedU128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> SaturatingCast<FixedU16<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedU16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> SaturatingCast<FixedU32<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedU32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> SaturatingCast<FixedU64<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedU64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> SaturatingCast<FixedU8<FracDst>> for FixedI128<FracSrc>

source§

fn saturating_cast(self) -> FixedU8<FracDst>

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<bf16> for FixedI128<Frac>

source§

fn saturating_cast(self) -> half_bf16

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<f16> for FixedI128<Frac>

source§

fn saturating_cast(self) -> half_f16

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<f32> for FixedI128<Frac>

source§

fn saturating_cast(self) -> f32

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<f64> for FixedI128<Frac>

source§

fn saturating_cast(self) -> f64

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<i128> for FixedI128<Frac>

source§

fn saturating_cast(self) -> i128

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<i16> for FixedI128<Frac>

source§

fn saturating_cast(self) -> i16

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<i32> for FixedI128<Frac>

source§

fn saturating_cast(self) -> i32

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<i64> for FixedI128<Frac>

source§

fn saturating_cast(self) -> i64

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<i8> for FixedI128<Frac>

source§

fn saturating_cast(self) -> i8

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<isize> for FixedI128<Frac>

source§

fn saturating_cast(self) -> isize

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<u128> for FixedI128<Frac>

source§

fn saturating_cast(self) -> u128

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<u16> for FixedI128<Frac>

source§

fn saturating_cast(self) -> u16

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<u32> for FixedI128<Frac>

source§

fn saturating_cast(self) -> u32

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<u64> for FixedI128<Frac>

source§

fn saturating_cast(self) -> u64

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<u8> for FixedI128<Frac>

source§

fn saturating_cast(self) -> u8

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingCast<usize> for FixedI128<Frac>

source§

fn saturating_cast(self) -> usize

Casts the value.
source§

impl<Frac: LeEqU128> SaturatingMul for FixedI128<Frac>

source§

fn saturating_mul(&self, v: &Self) -> Self

Saturating multiplication. Computes self * other, saturating at the relevant high or low boundary of the type.
source§

impl<Frac> SaturatingSub for FixedI128<Frac>

source§

fn saturating_sub(&self, v: &Self) -> Self

Saturating subtraction. Computes self - other, saturating at the relevant high or low boundary of the type.
source§

impl<Frac: LeEqU128> Serialize for FixedI128<Frac>

source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
source§

impl<Frac> Shl<&i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&i8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &i8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&isize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &isize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&isize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &isize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&u8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &u8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&usize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &usize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<&usize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: &usize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<i8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: i8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<isize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: isize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<isize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: isize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u128) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u16) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u32) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u64) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<u8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: u8) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<usize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: usize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> Shl<usize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the << operator.
source§

fn shl(self, rhs: usize) -> FixedI128<Frac>

Performs the << operation. Read more
source§

impl<Frac> ShlAssign<&i128> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &i128)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&i16> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &i16)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&i32> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &i32)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&i64> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &i64)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&i8> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &i8)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&isize> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &isize)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&u128> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &u128)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&u16> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &u16)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&u32> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &u32)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&u64> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &u64)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&u8> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &u8)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<&usize> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: &usize)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<i128> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: i128)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<i16> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: i16)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<i32> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: i32)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<i64> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: i64)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<i8> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: i8)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<isize> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: isize)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<u128> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: u128)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<u16> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: u16)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<u32> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: u32)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<u64> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: u64)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<u8> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: u8)

Performs the <<= operation. Read more
source§

impl<Frac> ShlAssign<usize> for FixedI128<Frac>

source§

fn shl_assign(&mut self, rhs: usize)

Performs the <<= operation. Read more
source§

impl<Frac> Shr<&i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&i8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &i8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&isize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &isize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&isize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &isize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&u8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &u8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&usize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &usize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<&usize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: &usize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<i8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: i8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<isize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: isize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<isize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: isize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u128> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u128> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u128) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u16> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u16> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u16) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u32> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u32> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u32) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u64> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u64> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u64) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u8> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<u8> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: u8) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<usize> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: usize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> Shr<usize> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the >> operator.
source§

fn shr(self, rhs: usize) -> FixedI128<Frac>

Performs the >> operation. Read more
source§

impl<Frac> ShrAssign<&i128> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &i128)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&i16> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &i16)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&i32> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &i32)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&i64> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &i64)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&i8> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &i8)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&isize> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &isize)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&u128> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &u128)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&u16> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &u16)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&u32> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &u32)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&u64> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &u64)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&u8> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &u8)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<&usize> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: &usize)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<i128> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: i128)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<i16> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: i16)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<i32> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: i32)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<i64> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: i64)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<i8> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: i8)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<isize> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: isize)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<u128> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: u128)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<u16> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: u16)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<u32> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: u32)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<u64> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: u64)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<u8> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: u8)

Performs the >>= operation. Read more
source§

impl<Frac> ShrAssign<usize> for FixedI128<Frac>

source§

fn shr_assign(&mut self, rhs: usize)

Performs the >>= operation. Read more
source§

impl<Frac> Signed for FixedI128<Frac>
where Frac: IsLessOrEqual<U126, Output = True> + LeEqU128,

source§

fn abs(&self) -> Self

Computes the absolute value. Read more
source§

fn abs_sub(&self, other: &Self) -> Self

The positive difference of two numbers. Read more
source§

fn signum(&self) -> Self

Returns the sign of the number. Read more
source§

fn is_positive(&self) -> bool

Returns true if the number is positive and false if the number is zero or negative.
source§

fn is_negative(&self) -> bool

Returns true if the number is negative and false if the number is zero or positive.
source§

impl<Frac> Sub<&FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the - operation. Read more
source§

impl<Frac> Sub<&FixedI128<Frac>> for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: &FixedI128<Frac>) -> FixedI128<Frac>

Performs the - operation. Read more
source§

impl<Frac> Sub<FixedI128<Frac>> for &FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the - operation. Read more
source§

impl<Frac> Sub for FixedI128<Frac>

§

type Output = FixedI128<Frac>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: FixedI128<Frac>) -> FixedI128<Frac>

Performs the - operation. Read more
source§

impl<Frac> SubAssign<&FixedI128<Frac>> for FixedI128<Frac>

source§

fn sub_assign(&mut self, rhs: &FixedI128<Frac>)

Performs the -= operation. Read more
source§

impl<Frac> SubAssign for FixedI128<Frac>

source§

fn sub_assign(&mut self, rhs: FixedI128<Frac>)

Performs the -= operation. Read more
source§

impl<'a, Frac: 'a> Sum<&'a FixedI128<Frac>> for FixedI128<Frac>

source§

fn sum<I>(iter: I) -> FixedI128<Frac>
where I: Iterator<Item = &'a FixedI128<Frac>>,

Method which takes an iterator and generates Self from the elements by “summing up” the items.
source§

impl<Frac> Sum for FixedI128<Frac>

source§

fn sum<I>(iter: I) -> FixedI128<Frac>
where I: Iterator<Item = FixedI128<Frac>>,

Method which takes an iterator and generates Self from the elements by “summing up” the items.
source§

impl<Frac: LeEqU128> ToBytes for FixedI128<Frac>

§

type Bytes = <FixedI128<Frac> as Fixed>::Bytes

source§

fn to_be_bytes(&self) -> Self::Bytes

Return the memory representation of this number as a byte array in big-endian byte order. Read more
source§

fn to_le_bytes(&self) -> Self::Bytes

Return the memory representation of this number as a byte array in little-endian byte order. Read more
source§

fn to_ne_bytes(&self) -> Self::Bytes

Return the memory representation of this number as a byte array in native byte order. Read more
source§

impl<Frac: LeEqU128> ToFixed for FixedI128<Frac>

source§

fn to_fixed<F: Fixed>(self) -> F

Converts a fixed-point number.

Any extra fractional bits are discarded, which rounds towards −∞.

§Panics

When debug assertions are enabled, panics if the value does not fit. When debug assertions are not enabled, the wrapped value can be returned, but it is not considered a breaking change if in the future it panics; if wrapping is required use wrapping_to_fixed instead.

source§

fn checked_to_fixed<F: Fixed>(self) -> Option<F>

Converts a fixed-point number if it fits, otherwise returns None.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn saturating_to_fixed<F: Fixed>(self) -> F

Converts a fixed-point number, saturating if it does not fit.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn wrapping_to_fixed<F: Fixed>(self) -> F

Converts a fixed-point number, wrapping if it does not fit.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn overflowing_to_fixed<F: Fixed>(self) -> (F, bool)

Converts a fixed-point number.

Returns a tuple of the value and a bool indicating whether an overflow has occurred. On overflow, the wrapped value is returned.

Any extra fractional bits are discarded, which rounds towards −∞.

source§

fn unwrapped_to_fixed<F: Fixed>(self) -> F

Converts a fixed-point number, panicking if it does not fit.

Any extra fractional bits are discarded, which rounds towards −∞.

§Panics

Panics if the value does not fit, even when debug assertions are not enabled.

source§

impl<Frac: LeEqU128> ToPrimitive for FixedI128<Frac>

source§

fn to_i64(&self) -> Option<i64>

Converts the value of self to an i64. If the value cannot be represented by an i64, then None is returned.
source§

fn to_u64(&self) -> Option<u64>

Converts the value of self to a u64. If the value cannot be represented by a u64, then None is returned.
source§

fn to_isize(&self) -> Option<isize>

Converts the value of self to an isize. If the value cannot be represented by an isize, then None is returned.
source§

fn to_i8(&self) -> Option<i8>

Converts the value of self to an i8. If the value cannot be represented by an i8, then None is returned.
source§

fn to_i16(&self) -> Option<i16>

Converts the value of self to an i16. If the value cannot be represented by an i16, then None is returned.
source§

fn to_i32(&self) -> Option<i32>

Converts the value of self to an i32. If the value cannot be represented by an i32, then None is returned.
source§

fn to_i128(&self) -> Option<i128>

Converts the value of self to an i128. If the value cannot be represented by an i128 (i64 under the default implementation), then None is returned. Read more
source§

fn to_usize(&self) -> Option<usize>

Converts the value of self to a usize. If the value cannot be represented by a usize, then None is returned.
source§

fn to_u8(&self) -> Option<u8>

Converts the value of self to a u8. If the value cannot be represented by a u8, then None is returned.
source§

fn to_u16(&self) -> Option<u16>

Converts the value of self to a u16. If the value cannot be represented by a u16, then None is returned.
source§

fn to_u32(&self) -> Option<u32>

Converts the value of self to a u32. If the value cannot be represented by a u32, then None is returned.
source§

fn to_u128(&self) -> Option<u128>

Converts the value of self to a u128. If the value cannot be represented by a u128 (u64 under the default implementation), then None is returned. Read more
source§

fn to_f32(&self) -> Option<f32>

Converts the value of self to an f32. Overflows may map to positive or negative inifinity, otherwise None is returned if the value cannot be represented by an f32.
source§

fn to_f64(&self) -> Option<f64>

Converts the value of self to an f64. Overflows may map to positive or negative inifinity, otherwise None is returned if the value cannot be represented by an f64. Read more
source§

impl<Frac: LeEqU128> TransparentWrapper<FixedI128<Frac>> for Unwrapped<FixedI128<Frac>>

source§

fn wrap(s: Inner) -> Self
where Self: Sized,

Convert the inner type into the wrapper type.
source§

fn wrap_ref(s: &Inner) -> &Self

Convert a reference to the inner type into a reference to the wrapper type.
source§

fn wrap_mut(s: &mut Inner) -> &mut Self

Convert a mutable reference to the inner type into a mutable reference to the wrapper type.
source§

fn wrap_slice(s: &[Inner]) -> &[Self]
where Self: Sized,

Convert a slice to the inner type into a slice to the wrapper type.
source§

fn wrap_slice_mut(s: &mut [Inner]) -> &mut [Self]
where Self: Sized,

Convert a mutable slice to the inner type into a mutable slice to the wrapper type.
source§

fn peel(s: Self) -> Inner
where Self: Sized,

Convert the wrapper type into the inner type.
source§

fn peel_ref(s: &Self) -> &Inner

Convert a reference to the wrapper type into a reference to the inner type.
source§

fn peel_mut(s: &mut Self) -> &mut Inner

Convert a mutable reference to the wrapper type into a mutable reference to the inner type.
source§

fn peel_slice(s: &[Self]) -> &[Inner]
where Self: Sized,

Convert a slice to the wrapped type into a slice to the inner type.
source§

fn peel_slice_mut(s: &mut [Self]) -> &mut [Inner]
where Self: Sized,

Convert a mutable slice to the wrapped type into a mutable slice to the inner type.
source§

impl<Frac: LeEqU128> TransparentWrapper<FixedI128<Frac>> for Wrapping<FixedI128<Frac>>

source§

fn wrap(s: Inner) -> Self
where Self: Sized,

Convert the inner type into the wrapper type.
source§

fn wrap_ref(s: &Inner) -> &Self

Convert a reference to the inner type into a reference to the wrapper type.
source§

fn wrap_mut(s: &mut Inner) -> &mut Self

Convert a mutable reference to the inner type into a mutable reference to the wrapper type.
source§

fn wrap_slice(s: &[Inner]) -> &[Self]
where Self: Sized,

Convert a slice to the inner type into a slice to the wrapper type.
source§

fn wrap_slice_mut(s: &mut [Inner]) -> &mut [Self]
where Self: Sized,

Convert a mutable slice to the inner type into a mutable slice to the wrapper type.
source§

fn peel(s: Self) -> Inner
where Self: Sized,

Convert the wrapper type into the inner type.
source§

fn peel_ref(s: &Self) -> &Inner

Convert a reference to the wrapper type into a reference to the inner type.
source§

fn peel_mut(s: &mut Self) -> &mut Inner

Convert a mutable reference to the wrapper type into a mutable reference to the inner type.
source§

fn peel_slice(s: &[Self]) -> &[Inner]
where Self: Sized,

Convert a slice to the wrapped type into a slice to the inner type.
source§

fn peel_slice_mut(s: &mut [Self]) -> &mut [Inner]
where Self: Sized,

Convert a mutable slice to the wrapped type into a mutable slice to the inner type.
source§

impl<Frac> TransparentWrapper<i128> for FixedI128<Frac>

source§

fn wrap(s: Inner) -> Self
where Self: Sized,

Convert the inner type into the wrapper type.
source§

fn wrap_ref(s: &Inner) -> &Self

Convert a reference to the inner type into a reference to the wrapper type.
source§

fn wrap_mut(s: &mut Inner) -> &mut Self

Convert a mutable reference to the inner type into a mutable reference to the wrapper type.
source§

fn wrap_slice(s: &[Inner]) -> &[Self]
where Self: Sized,

Convert a slice to the inner type into a slice to the wrapper type.
source§

fn wrap_slice_mut(s: &mut [Inner]) -> &mut [Self]
where Self: Sized,

Convert a mutable slice to the inner type into a mutable slice to the wrapper type.
source§

fn peel(s: Self) -> Inner
where Self: Sized,

Convert the wrapper type into the inner type.
source§

fn peel_ref(s: &Self) -> &Inner

Convert a reference to the wrapper type into a reference to the inner type.
source§

fn peel_mut(s: &mut Self) -> &mut Inner

Convert a mutable reference to the wrapper type into a mutable reference to the inner type.
source§

fn peel_slice(s: &[Self]) -> &[Inner]
where Self: Sized,

Convert a slice to the wrapped type into a slice to the inner type.
source§

fn peel_slice_mut(s: &mut [Self]) -> &mut [Inner]
where Self: Sized,

Convert a mutable slice to the wrapped type into a mutable slice to the inner type.
source§

impl<Frac: LeEqU128> UnwrappedCast<F128> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> F128

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<F128Bits> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> F128Bits

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for F128

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for F128Bits

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for half_bf16

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for bool

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for half_f16

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for f32

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for f64

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for i128

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for i16

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for i32

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for i64

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for i8

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for isize

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for u128

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for u16

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for u32

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for u64

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for u8

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<FixedI128<Frac>> for usize

source§

fn unwrapped_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedI16<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedI32<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedI64<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedI8<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedU128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedU16<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedU32<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedU64<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> UnwrappedCast<FixedI128<FracDst>> for FixedU8<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> UnwrappedCast<FixedI16<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> UnwrappedCast<FixedI32<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> UnwrappedCast<FixedI64<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> UnwrappedCast<FixedI8<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedI8<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> UnwrappedCast<FixedU128<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedU128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> UnwrappedCast<FixedU16<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedU16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> UnwrappedCast<FixedU32<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedU32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> UnwrappedCast<FixedU64<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedU64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> UnwrappedCast<FixedU8<FracDst>> for FixedI128<FracSrc>

source§

fn unwrapped_cast(self) -> FixedU8<FracDst>

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<bf16> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> half_bf16

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<f16> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> half_f16

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<f32> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> f32

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<f64> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> f64

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<i128> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> i128

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<i16> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> i16

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<i32> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> i32

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<i64> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> i64

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<i8> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> i8

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<isize> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> isize

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<u128> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> u128

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<u16> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> u16

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<u32> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> u32

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<u64> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> u64

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<u8> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> u8

Casts the value.
source§

impl<Frac: LeEqU128> UnwrappedCast<usize> for FixedI128<Frac>

source§

fn unwrapped_cast(self) -> usize

Casts the value.
source§

impl<Frac: LeEqU128> UpperExp for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac: LeEqU128> UpperHex for FixedI128<Frac>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult

Formats the value using the given formatter. Read more
source§

impl<Frac> WrappingAdd for FixedI128<Frac>

source§

fn wrapping_add(&self, v: &Self) -> Self

Wrapping (modular) addition. Computes self + other, wrapping around at the boundary of the type.
source§

impl<Frac: LeEqU128> WrappingCast<F128> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> F128

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<F128Bits> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> F128Bits

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for F128

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for F128Bits

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for half_bf16

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for bool

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for half_f16

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for f32

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for f64

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for i128

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for i16

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for i32

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for i64

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for i8

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for isize

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for u128

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for u16

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for u32

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for u64

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for u8

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<FixedI128<Frac>> for usize

source§

fn wrapping_cast(self) -> FixedI128<Frac>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedI16<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedI32<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedI64<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedI8<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedU128<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU16, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedU16<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU32, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedU32<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU64, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedU64<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU8, FracDst: LeEqU128> WrappingCast<FixedI128<FracDst>> for FixedU8<FracSrc>

source§

fn wrapping_cast(self) -> FixedI128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> WrappingCast<FixedI16<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedI16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> WrappingCast<FixedI32<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedI32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> WrappingCast<FixedI64<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedI64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> WrappingCast<FixedI8<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedI8<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU128> WrappingCast<FixedU128<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedU128<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU16> WrappingCast<FixedU16<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedU16<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU32> WrappingCast<FixedU32<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedU32<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU64> WrappingCast<FixedU64<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedU64<FracDst>

Casts the value.
source§

impl<FracSrc: LeEqU128, FracDst: LeEqU8> WrappingCast<FixedU8<FracDst>> for FixedI128<FracSrc>

source§

fn wrapping_cast(self) -> FixedU8<FracDst>

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<bf16> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> half_bf16

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<f16> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> half_f16

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<f32> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> f32

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<f64> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> f64

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<i128> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> i128

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<i16> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> i16

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<i32> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> i32

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<i64> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> i64

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<i8> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> i8

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<isize> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> isize

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<u128> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> u128

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<u16> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> u16

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<u32> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> u32

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<u64> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> u64

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<u8> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> u8

Casts the value.
source§

impl<Frac: LeEqU128> WrappingCast<usize> for FixedI128<Frac>

source§

fn wrapping_cast(self) -> usize

Casts the value.
source§

impl<Frac: LeEqU128> WrappingMul for FixedI128<Frac>

source§

fn wrapping_mul(&self, v: &Self) -> Self

Wrapping (modular) multiplication. Computes self * other, wrapping around at the boundary of the type.
source§

impl<Frac> WrappingNeg for FixedI128<Frac>

source§

fn wrapping_neg(&self) -> Self

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type. Read more
source§

impl<Frac> WrappingShl for FixedI128<Frac>

source§

fn wrapping_shl(&self, rhs: u32) -> Self

Panic-free bitwise shift-left; yields self << mask(rhs), where mask removes any high order bits of rhs that would cause the shift to exceed the bitwidth of the type. Read more
source§

impl<Frac> WrappingShr for FixedI128<Frac>

source§

fn wrapping_shr(&self, rhs: u32) -> Self

Panic-free bitwise shift-right; yields self >> mask(rhs), where mask removes any high order bits of rhs that would cause the shift to exceed the bitwidth of the type. Read more
source§

impl<Frac> WrappingSub for FixedI128<Frac>

source§

fn wrapping_sub(&self, v: &Self) -> Self

Wrapping (modular) subtraction. Computes self - other, wrapping around at the boundary of the type.
source§

impl<Frac> Zero for FixedI128<Frac>

source§

fn zero() -> Self

Returns the additive identity element of Self, 0. Read more
source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
source§

impl<Frac> Zeroable for FixedI128<Frac>

source§

fn zeroed() -> Self

source§

impl<Frac> Copy for FixedI128<Frac>

source§

impl<Frac: Unsigned> Eq for FixedI128<Frac>

source§

impl<Frac: LeEqU128> FixedOptionalArbitrary for FixedI128<Frac>

source§

impl<Frac: LeEqU128> FixedOptionalBorsh for FixedI128<Frac>

source§

impl<Frac: LeEqU128> FixedOptionalFeatures for FixedI128<Frac>

source§

impl<Frac: LeEqU128> FixedOptionalNightlyFloat for FixedI128<Frac>

source§

impl<Frac: LeEqU128> FixedOptionalNum for FixedI128<Frac>

source§

impl<Frac: LeEqU128> FixedOptionalSerde for FixedI128<Frac>

source§

impl<Frac: 'static> Pod for FixedI128<Frac>

Auto Trait Implementations§

§

impl<Frac> Freeze for FixedI128<Frac>

§

impl<Frac> RefUnwindSafe for FixedI128<Frac>
where Frac: RefUnwindSafe,

§

impl<Frac> Send for FixedI128<Frac>
where Frac: Send,

§

impl<Frac> Sync for FixedI128<Frac>
where Frac: Sync,

§

impl<Frac> Unpin for FixedI128<Frac>
where Frac: Unpin,

§

impl<Frac> UnwindSafe for FixedI128<Frac>
where Frac: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<T> CheckedBitPattern for T
where T: AnyBitPattern,

§

type Bits = T

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
source§

fn is_valid_bit_pattern(_bits: &T) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> LowerBounded for T
where T: Bounded,

source§

fn min_value() -> T

Returns the smallest finite number this type can represent
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> UpperBounded for T
where T: Bounded,

source§

fn max_value() -> T

Returns the largest finite number this type can represent
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> AnyBitPattern for T
where T: Pod,

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

source§

impl<T> NoUninit for T
where T: Pod,

source§

impl<T> NumAssign for T
where T: Num + NumAssignOps,

source§

impl<T, Rhs> NumAssignOps<Rhs> for T
where T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,

source§

impl<T> NumAssignRef for T
where T: NumAssign + for<'r> NumAssignOps<&'r T>,

source§

impl<T, Rhs, Output> NumOps<Rhs, Output> for T
where T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,

source§

impl<T> NumRef for T
where T: Num + for<'r> NumOps<&'r T>,

source§

impl<T, Base> RefNum<Base> for T
where T: NumOps<Base, Base> + for<'r> NumOps<&'r Base, Base>,