Struct rustc_apfloat::ieee::IeeeFloat [−][src]
#[must_use]pub struct IeeeFloat<S> { sig: [u128; 1], exp: ExpInt, category: Category, sign: bool, marker: PhantomData<S>, }
Fields
sig: [u128; 1]Expand description
Absolute significand value (including the integer bit).
exp: ExpIntExpand description
The signed unbiased exponent of the value.
category: CategoryExpand description
What kind of floating point number this is.
sign: boolExpand description
Sign bit of the number.
marker: PhantomData<S>Implementations
impl<S: Semantics> IeeeFloat<S>[src]
impl<S: Semantics> IeeeFloat<S>[src]fn overflow_result(round: Round) -> StatusAnd<Self>[src]
fn overflow_result(round: Round) -> StatusAnd<Self>[src]Handle positive overflow. We either return infinity or
the largest finite number. For negative overflow,
negate the round argument before calling.
fn round_away_from_zero(&self, round: Round, loss: Loss, bit: usize) -> bool[src]
fn round_away_from_zero(&self, round: Round, loss: Loss, bit: usize) -> bool[src]Returns true if, when truncating the current number, with bit the
new LSB, with the given lost fraction and rounding mode, the result
would need to be rounded away from zero (i.e., by increasing the
signficand). This routine must work for Category::Zero of both signs, and
Category::Normal numbers.
fn normalize(self, round: Round, loss: Loss) -> StatusAnd<Self>[src]
fn from_hexadecimal_string(
s: &str,
round: Round
) -> Result<StatusAnd<Self>, ParseError>[src]
s: &str,
round: Round
) -> Result<StatusAnd<Self>, ParseError>
fn from_decimal_string(
s: &str,
round: Round
) -> Result<StatusAnd<Self>, ParseError>[src]
s: &str,
round: Round
) -> Result<StatusAnd<Self>, ParseError>
Trait Implementations
impl<S> AddAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]
impl<S> AddAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]fn add_assign(&mut self, rhs: Self)[src]
fn add_assign(&mut self, rhs: Self)[src]Performs the += operation. Read more
impl<S: Semantics> Display for IeeeFloat<S>[src]
impl<S: Semantics> Display for IeeeFloat<S>[src]Prints this value as a decimal string.
\param precision The maximum number of digits of precision to output. If there are fewer digits available, zero padding will not be used unless the value is integral and small enough to be expressed in precision digits. 0 means to use the natural precision of the number. \param width The maximum number of zeros to consider inserting before falling back to scientific notation. 0 means to always use scientific notation.
\param alternate Indicate whether to remove the trailing zero in fraction part or not. Also setting this parameter to true forces producing of output more similar to default printf behavior. Specifically the lower e is used as exponent delimiter and exponent always contains no less than two digits.
Number precision width Result
1.01E+4 5 2 10100 1.01E+4 4 2 1.01E+4 1.01E+4 5 1 1.01E+4 1.01E-2 5 2 0.0101 1.01E-2 4 2 0.0101 1.01E-2 4 1 1.01E-2
impl<S> DivAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]
impl<S> DivAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]fn div_assign(&mut self, rhs: Self)[src]
fn div_assign(&mut self, rhs: Self)[src]Performs the /= operation. Read more
impl<S: Semantics> Float for IeeeFloat<S>[src]
impl<S: Semantics> Float for IeeeFloat<S>[src]const MAX_EXP: ExpInt[src]
const MAX_EXP: ExpInt[src]The largest E such that 2E is representable; this matches the definition of IEEE 754. Read more
const MIN_EXP: ExpInt[src]
const MIN_EXP: ExpInt[src]The smallest E such that 2E is a normalized number; this matches the definition of IEEE 754. Read more
const SMALLEST: Self[src]
const SMALLEST: Self[src]Smallest (by magnitude) finite number. Might be denormalized, which implies a relative loss of precision. Read more
fn smallest_normalized() -> Self[src]
fn smallest_normalized() -> Self[src]Smallest (by magnitude) normalized finite number.
fn add_r(self, rhs: Self, round: Round) -> StatusAnd<Self>[src]
fn mul_r(self, rhs: Self, round: Round) -> StatusAnd<Self>[src]
fn mul_add_r(
self,
multiplicand: Self,
addend: Self,
round: Round
) -> StatusAnd<Self>[src]
self,
multiplicand: Self,
addend: Self,
round: Round
) -> StatusAnd<Self>
fn div_r(self, rhs: Self, round: Round) -> StatusAnd<Self>[src]
fn round_to_integral(self, round: Round) -> StatusAnd<Self>[src]
fn from_bits(input: u128) -> Self[src]
fn from_u128_r(input: u128, round: Round) -> StatusAnd<Self>[src]
fn from_str_r(s: &str, round: Round) -> Result<StatusAnd<Self>, ParseError>[src]
fn to_bits(self) -> u128[src]
fn to_u128_r(
self,
width: usize,
round: Round,
is_exact: &mut bool
) -> StatusAnd<u128>[src]
self,
width: usize,
round: Round,
is_exact: &mut bool
) -> StatusAnd<u128>
fn cmp_abs_normal(self, rhs: Self) -> Ordering[src]
fn bitwise_eq(self, rhs: Self) -> bool[src]
fn bitwise_eq(self, rhs: Self) -> bool[src]Bitwise comparison for equality (QNaNs compare equal, 0!=-0).
fn is_negative(self) -> bool[src]
fn is_negative(self) -> bool[src]IEEE-754R isSignMinus: Returns whether the current value is negative. Read more
fn is_denormal(self) -> bool[src]
fn is_denormal(self) -> bool[src]IEEE-754R isSubnormal(): Returns whether the float is a denormal. Read more
fn is_signaling(self) -> bool[src]
fn is_signaling(self) -> bool[src]Returns true if the float is a signaling NaN.
fn category(self) -> Category[src]
fn get_exact_inverse(self) -> Option<Self>[src]
fn get_exact_inverse(self) -> Option<Self>[src]If this value has an exact multiplicative inverse, return it.
fn ilogb(self) -> ExpInt[src]
fn ilogb(self) -> ExpInt[src]Returns the exponent of the internal representation of the Float. Read more
fn scalbn_r(self, exp: ExpInt, round: Round) -> Self[src]
fn scalbn_r(self, exp: ExpInt, round: Round) -> Self[src]Returns: self * 2exp for integral exponents.
Equivalent to C standard library function ldexp. Read more
fn frexp_r(self, exp: &mut ExpInt, round: Round) -> Self[src]
fn frexp_r(self, exp: &mut ExpInt, round: Round) -> Self[src]Equivalent to C standard library function with the same name. Read more
fn sub_r(self, rhs: Self, round: Round) -> StatusAnd<Self>[src]
fn mul_add(self, multiplicand: Self, addend: Self) -> StatusAnd<Self>[src]
fn abs(self) -> Self[src]
fn copy_sign(self, rhs: Self) -> Self[src]
fn from_i128_r(input: i128, round: Round) -> StatusAnd<Self>[src]
fn from_i128(input: i128) -> StatusAnd<Self>[src]
fn from_u128(input: u128) -> StatusAnd<Self>[src]
fn to_i128_r(
self,
width: usize,
round: Round,
is_exact: &mut bool
) -> StatusAnd<i128>[src]
fn to_i128_r(
self,
width: usize,
round: Round,
is_exact: &mut bool
) -> StatusAnd<i128>[src]Converts a floating point number to an integer according to the rounding mode. In case of an invalid operation exception, deterministic values are returned, namely zero for NaNs and the minimal or maximal value respectively for underflow or overflow. If the rounded value is in range but the floating point number is not the exact integer, the C standard doesn’t require an inexact exception to be raised. IEEE-854 does require it so we do that. Read more
fn to_i128(self, width: usize) -> StatusAnd<i128>[src]
fn to_u128(self, width: usize) -> StatusAnd<u128>[src]
fn min(self, other: Self) -> Self[src]
fn min(self, other: Self) -> Self[src]Implements IEEE minNum semantics. Returns the smaller of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument. Read more
fn max(self, other: Self) -> Self[src]
fn max(self, other: Self) -> Self[src]Implements IEEE maxNum semantics. Returns the larger of the 2 arguments if both are not NaN. If either argument is a NaN, returns the other argument. Read more
fn is_normal(self) -> bool[src]
fn is_normal(self) -> bool[src]IEEE-754R isNormal: Returns whether the current value is normal. Read more
fn is_finite(self) -> bool[src]
fn is_finite(self) -> bool[src]Returns true if the current value is zero, subnormal, or
normal. Read more
fn is_infinite(self) -> bool[src]
fn is_infinite(self) -> bool[src]IEEE-754R isInfinite(): Returns whether the float is infinity.
fn is_non_zero(self) -> bool[src]
fn is_finite_non_zero(self) -> bool[src]
fn is_pos_zero(self) -> bool[src]
fn is_neg_zero(self) -> bool[src]
fn is_smallest(self) -> bool[src]
fn is_smallest(self) -> bool[src]Returns true if the number has the smallest possible non-zero
magnitude in the current semantics. Read more
fn is_largest(self) -> bool[src]
fn is_largest(self) -> bool[src]Returns true if the number has the largest possible finite
magnitude in the current semantics. Read more
fn is_integer(self) -> bool[src]
fn is_integer(self) -> bool[src]Returns true if the number is an exact integer.
fn scalbn(self, exp: ExpInt) -> Self[src]
fn frexp(self, exp: &mut ExpInt) -> Self[src]
impl<S: Semantics, T: Semantics> FloatConvert<IeeeFloat<T>> for IeeeFloat<S>[src]
impl<S: Semantics, T: Semantics> FloatConvert<IeeeFloat<T>> for IeeeFloat<S>[src]fn convert_r(
self,
round: Round,
loses_info: &mut bool
) -> StatusAnd<IeeeFloat<T>>[src]
fn convert_r(
self,
round: Round,
loses_info: &mut bool
) -> StatusAnd<IeeeFloat<T>>[src]Converts a value of one floating point type to another.
The return value corresponds to the IEEE754 exceptions. *loses_info
records whether the transformation lost information, i.e., whether
converting the result back to the original type will produce the
original value (this is almost the same as return value == Status::OK,
but there are edge cases where this is not so). Read more
fn convert(self, loses_info: &mut bool) -> StatusAnd<T>[src]
impl<F: FloatConvert<Self>> From<DoubleFloat<F>> for IeeeFloat<FallbackS<F>>[src]
impl<F: FloatConvert<Self>> From<DoubleFloat<F>> for IeeeFloat<FallbackS<F>>[src]fn from(DoubleFloat: DoubleFloat<F>) -> Self[src]
fn from(DoubleFloat: DoubleFloat<F>) -> Self[src]Performs the conversion.
impl<F: Float> From<IeeeFloat<FallbackS<F>>> for DoubleFloat<F> where
F: FloatConvert<IeeeFloat<FallbackExtendedS<F>>>,
IeeeFloat<FallbackExtendedS<F>>: FloatConvert<F>, [src]
impl<F: Float> From<IeeeFloat<FallbackS<F>>> for DoubleFloat<F> where
F: FloatConvert<IeeeFloat<FallbackExtendedS<F>>>,
IeeeFloat<FallbackExtendedS<F>>: FloatConvert<F>, [src]impl<S> FromStr for IeeeFloat<S> where
Self: Float, [src]
impl<S> FromStr for IeeeFloat<S> where
Self: Float, [src]type Err = ParseError
type Err = ParseErrorThe associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Self, ParseError>[src]
fn from_str(s: &str) -> Result<Self, ParseError>[src]Parses a string s to return a value of this type. Read more
impl<S> MulAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]
impl<S> MulAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]fn mul_assign(&mut self, rhs: Self)[src]
fn mul_assign(&mut self, rhs: Self)[src]Performs the *= operation. Read more
impl<S: Semantics> PartialOrd<IeeeFloat<S>> for IeeeFloat<S>[src]
impl<S: Semantics> PartialOrd<IeeeFloat<S>> for IeeeFloat<S>[src]fn partial_cmp(&self, rhs: &Self) -> Option<Ordering>[src]
fn partial_cmp(&self, rhs: &Self) -> Option<Ordering>[src]This method returns an ordering between self and other values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than (for self and other) and is used by the < operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool1.0.0[src]This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl<S> RemAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]
impl<S> RemAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]fn rem_assign(&mut self, rhs: Self)[src]
fn rem_assign(&mut self, rhs: Self)[src]Performs the %= operation. Read more
impl<S> SubAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]
impl<S> SubAssign<IeeeFloat<S>> for IeeeFloat<S> where
Self: Float, [src]fn sub_assign(&mut self, rhs: Self)[src]
fn sub_assign(&mut self, rhs: Self)[src]Performs the -= operation. Read more
impl<S> Copy for IeeeFloat<S>[src]
Auto Trait Implementations
impl<S> Send for IeeeFloat<S> where
S: Send,
S: Send,
impl<S> Sync for IeeeFloat<S> where
S: Sync,
S: Sync,
impl<S> Unpin for IeeeFloat<S> where
S: Unpin,
S: Unpin,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more