pub struct FBig<RoundingMode = Zero, const BASE: u64 = 2>where
RoundingMode: Round,{ /* private fields */ }Expand description
An arbitrary precision floating point number with arbitrary base and rounding mode.
An FBig is a Repr (the value: significand × baseexponent) paired with a
Context (the precision cap and rounding mode). Arithmetic follows the associated context;
use the Context methods directly when you need a different precision/rounding, or to receive
the rounding direction and errors instead of a panic.
The generic parameters are BASE (B, in [2, isize::MAX]) and RoundingMode (R, chosen from
the mode module). With the defaults the number is base 2 rounded towards zero (the most
efficient format); DBig aliases base 10 rounded to nearest.
Binary operators require both operands to share the same base and rounding mode (no hidden conversion is performed); comparison allows differing rounding modes but not differing bases.
See the user guide for the
memory layout, and the
construction,
parsing & printing,
IEEE 754 compliance, and
conversion pages for those
topics. (Notably: FBig has no NaN, supports IEEE-754 signed zero, and treats infinities as
terminal values.) The accepted string format is documented on the core::str::FromStr impl.
§Examples
use core::str::FromStr;
// parsing
let a = DBig::from_parts(123456789.into(), -5);
let b = DBig::from_str("1234.56789")?;
let c = DBig::from_str("1.23456789e3")?;
assert_eq!(a, b);
assert_eq!(b, c);
// printing
assert_eq!(format!("{}", DBig::from_str("12.34")?), "12.34");
let x = DBig::from_str("10.01")?
.with_precision(0) // use unlimited precision
.value();
if dashu_int::Word::BITS == 64 {
// number of digits to display depends on the word size
assert_eq!(
format!("{:?}", x.powi(100.into())),
"1105115697720767968..1441386704950100001 * 10 ^ -200 (prec: 0)"
);
}Implementations§
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn to_decimal(&self) -> Approximation<FBig<HalfAway, 10>, Rounding>
pub fn to_decimal(&self) -> Approximation<FBig<HalfAway, 10>, Rounding>
Convert the float number to base 10 (with decimal exponents) rounding to even and tying away from zero.
It’s equivalent to self.with_rounding::<HalfAway>().with_base::<10>().
The output is directly of type DBig.
See with_base() for the precision behavior.
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::Rounding::*;
type Real = FBig;
assert_eq!(
Real::from_str("0x1234")?.to_decimal(),
Exact(DBig::from_str("4660")?)
);
assert_eq!(
Real::from_str("0x12.34")?.to_decimal(),
Inexact(DBig::from_str("18.20")?, NoOp)
);
assert_eq!(
Real::from_str("0x1.234p-4")?.to_decimal(),
Inexact(DBig::from_str("0.07111")?, AddOne)
);§Panics
Panics if the associated context has unlimited precision and the conversion cannot be performed losslessly.
Sourcepub fn to_binary(&self) -> Approximation<FBig, Rounding>
pub fn to_binary(&self) -> Approximation<FBig, Rounding>
Convert the float number to base 2 (with binary exponents) rounding towards zero.
It’s equivalent to self.with_rounding::<Zero>().with_base::<2>().
See with_base() for the precision and rounding behavior.
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::{mode::HalfAway, Rounding::*};
type Real = FBig;
assert_eq!(
DBig::from_str("1234")?.to_binary(),
Exact(Real::from_str("0x4d2")?)
);
assert_eq!(
DBig::from_str("12.34")?.to_binary(),
Inexact(Real::from_str("0xc.57")?, NoOp)
);
assert_eq!(
DBig::from_str("1.234e-1")?.to_binary(),
Inexact(Real::from_str("0x1.f97p-4")?, NoOp)
);§Panics
Panics if the associated context has unlimited precision and the conversion cannot be performed losslessly.
Sourcepub fn with_precision(
self,
precision: usize,
) -> Approximation<FBig<R, B>, Rounding>
pub fn with_precision( self, precision: usize, ) -> Approximation<FBig<R, B>, Rounding>
Explicitly change the precision of the float number.
If the given precision is less than the current value in the context, it will be rounded with the rounding mode specified by the generic parameter.
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::{mode::HalfAway, Rounding::*};
let a = DBig::from_str("2.345")?;
assert_eq!(a.precision(), 4);
assert_eq!(
a.clone().with_precision(3),
Inexact(DBig::from_str("2.35")?, AddOne)
);
assert_eq!(
a.clone().with_precision(5),
Exact(DBig::from_str("2.345")?)
);Sourcepub fn with_rounding<NewR>(self) -> FBig<NewR, B>where
NewR: Round,
pub fn with_rounding<NewR>(self) -> FBig<NewR, B>where
NewR: Round,
Explicitly change the rounding mode of the number.
This operation doesn’t modify the underlying representation, it only changes the rounding mode in the context.
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::{mode::{HalfAway, Zero}, Rounding::*};
type DBigHalfAway = DBig;
type DBigZero = FBig::<Zero, 10>;
let a = DBigHalfAway::from_str("2.345")?;
let b = DBigZero::from_str("2.345")?;
assert_eq!(a.with_rounding::<Zero>(), b);Sourcepub fn with_base<const NewB: u64>(
self,
) -> Approximation<FBig<R, NewB>, Rounding>
pub fn with_base<const NewB: u64>( self, ) -> Approximation<FBig<R, NewB>, Rounding>
Explicitly change the base of the float number.
This function internally calls with_base_and_precision. The precision of the result number will be calculated in such a way that the new limit of the significand is less than or equal to before. That is, the new precision will be the max integer such that
NewB ^ new_precision <= B ^ old_precision
If any rounding happens during the conversion, it follows the rounding mode specified by the generic parameter.
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::{mode::Zero, Rounding::*};
type FBin = FBig;
type FDec = FBig<Zero, 10>;
type FHex = FBig<Zero, 16>;
let a = FBin::from_str("0x1.234")?; // 0x1234 * 2^-12
assert_eq!(
a.clone().with_base::<10>(),
// 1.1376953125 rounded towards zero
Inexact(FDec::from_str("1.137")?, NoOp)
);
assert_eq!(
a.clone().with_base::<16>(),
// conversion is exact when the new base is a power of the old base
Exact(FHex::from_str("1.234")?)
);§Panics
Panics if the associated context has unlimited precision and the conversion cannot be performed losslessly.
Sourcepub fn with_base_and_precision<const NewB: u64>(
self,
precision: usize,
) -> Approximation<FBig<R, NewB>, Rounding>
pub fn with_base_and_precision<const NewB: u64>( self, precision: usize, ) -> Approximation<FBig<R, NewB>, Rounding>
Explicitly change the base of the float number with given precision (under the new base).
Infinities are mapped to infinities inexactly, the error will be NoOp.
Conversion for float numbers with unlimited precision is only allowed in following cases:
- The number is infinite
- The new base NewB is a power of B
- B is a power of the new base NewB
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::{mode::Zero, Rounding::*};
type FBin = FBig;
type FDec = FBig<Zero, 10>;
type FHex = FBig<Zero, 16>;
let a = FBin::from_str("0x1.234")?; // 0x1234 * 2^-12
assert_eq!(
a.clone().with_base_and_precision::<10>(8),
// 1.1376953125 rounded towards zero
Inexact(FDec::from_str("1.1376953")?, NoOp)
);
assert_eq!(
a.clone().with_base_and_precision::<16>(8),
// conversion can be exact when the new base is a power of the old base
Exact(FHex::from_str("1.234")?)
);
assert_eq!(
a.clone().with_base_and_precision::<16>(2),
// but the conversion is still inexact if the target precision is smaller
Inexact(FHex::from_str("1.2")?, NoOp)
);§Panics
Panics if the associated context has unlimited precision and the conversion cannot be performed losslessly.
Sourcepub fn to_int(&self) -> Approximation<IBig, Rounding>
pub fn to_int(&self) -> Approximation<IBig, Rounding>
Convert the float number to integer with the given rounding mode.
§Warning
If the float number has a very large exponent, it will be evaluated and result in allocating an huge integer and it might eat up all your memory.
To get a rough idea of how big the number is, it’s recommended to use EstimatedLog2.
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::Rounding::*;
assert_eq!(
DBig::from_str("1234")?.to_int(),
Exact(1234.into())
);
assert_eq!(
DBig::from_str("1.234e6")?.to_int(),
Exact(1234000.into())
);
assert_eq!(
DBig::from_str("1.234")?.to_int(),
Inexact(1.into(), NoOp)
);§Panics
Panics if the number is infinte
Sourcepub fn to_f32(&self) -> Approximation<f32, Rounding>
pub fn to_f32(&self) -> Approximation<f32, Rounding>
Sourcepub fn to_f64(&self) -> Approximation<f64, Rounding>
pub fn to_f64(&self) -> Approximation<f64, Rounding>
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn powi(&self, exp: IBig) -> FBig<R, B>
pub fn powi(&self, exp: IBig) -> FBig<R, B>
Raise the floating point number to an integer power.
§Examples
let a = DBig::from_str("-1.234")?;
assert_eq!(a.powi(10.into()), DBig::from_str("8.188")?);Sourcepub fn powf(&self, exp: &FBig<R, B>) -> FBig<R, B>
pub fn powf(&self, exp: &FBig<R, B>) -> FBig<R, B>
Raise the floating point number to an floating point power.
§Examples
let x = DBig::from_str("1.23")?;
let y = DBig::from_str("-4.56")?;
assert_eq!(x.powf(&y), DBig::from_str("0.389")?);Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub const ZERO: FBig<R, B>
pub const ZERO: FBig<R, B>
FBig with value 0 and unlimited precision
To test if the float number is +0, use self.repr().is_pos_zero() (or
self.repr().significand().is_zero() to detect either signed zero).
Sourcepub const ONE: FBig<R, B>
pub const ONE: FBig<R, B>
FBig with value 1 and unlimited precision
To test if the float number is one, use self.repr().is_one().
Sourcepub const INFINITY: FBig<R, B>
pub const INFINITY: FBig<R, B>
FBig instance representing the positive infinity (+∞)
To test if the float number is infinite, use self.repr().infinite().
Sourcepub const NEG_INFINITY: FBig<R, B>
pub const NEG_INFINITY: FBig<R, B>
FBig instance representing the negative infinity (-∞)
To test if the float number is infinite, use self.repr().infinite().
Sourcepub fn from_repr(repr: Repr<B>, context: Context<R>) -> FBig<R, B>
pub fn from_repr(repr: Repr<B>, context: Context<R>) -> FBig<R, B>
Create a FBig instance from Repr and Context.
This method should not be used in most cases. It’s designed to be used when you hold a Repr instance and want to create an FBig from that.
§Examples
use dashu_float::{Repr, Context};
assert_eq!(DBig::from_repr(Repr::one(), Context::new(1)), DBig::ONE);
assert_eq!(DBig::from_repr(Repr::infinity(), Context::new(1)), DBig::INFINITY);§Panics
Panics if the Repr has more digits than precision + 1 (the one allowed guard digit from
an inexact add/sub — see Repr). Note that this condition is not checked in release builds.
Sourcepub const fn from_repr_const(repr: Repr<B>) -> FBig<R, B>
pub const fn from_repr_const(repr: Repr<B>) -> FBig<R, B>
Sourcepub const fn precision(&self) -> usize
pub const fn precision(&self) -> usize
Get the maximum precision set for the float number.
It’s equivalent to self.context().precision().
§Examples
use dashu_float::Repr;
let a = DBig::from_str("1.234")?;
assert!(a.repr().significand() <= &IBig::from(10).pow(a.precision()));Sourcepub fn digits(&self) -> usize
pub fn digits(&self) -> usize
Get the number of the significant digits in the float number
It’s equivalent to self.repr().digits().
This value is also the actual precision needed for the float number. Shrink to this value using with_precision() will not cause loss of float precision.
§Examples
use dashu_base::Approximation::*;
let a = DBig::from_str("-1.234e-3")?;
assert_eq!(a.digits(), 4);
assert!(matches!(a.clone().with_precision(4), Exact(_)));
assert!(matches!(a.clone().with_precision(3), Inexact(_, _)));Sourcepub fn into_repr(self) -> Repr<B>
pub fn into_repr(self) -> Repr<B>
Get the underlying numeric representation
§Examples
use dashu_float::Repr;
let a = DBig::ONE;
assert_eq!(a.into_repr(), Repr::<10>::one());Sourcepub fn from_parts(significand: IBig, exponent: isize) -> FBig<R, B>
pub fn from_parts(significand: IBig, exponent: isize) -> FBig<R, B>
Convert raw parts (significand, exponent) into a float number.
The precision will be inferred from significand (the lowest k such that significand <= base^k)
§Examples
use core::str::FromStr;
let a = DBig::from_parts((-1234).into(), -2);
assert_eq!(a, DBig::from_str("-12.34")?);
assert_eq!(a.precision(), 4); // 1234 has 4 (decimal) digitsSourcepub const fn from_parts_const(
sign: Sign,
significand: u128,
exponent: isize,
min_precision: Option<usize>,
) -> FBig<R, B>
pub const fn from_parts_const( sign: Sign, significand: u128, exponent: isize, min_precision: Option<usize>, ) -> FBig<R, B>
Convert raw parts (significand, exponent) into a float number in a const context.
It requires that the significand fits in a DoubleWord.
The precision will be inferred from significand (the lowest k such that significand <= base^k).
If the min_precision is provided, then the higher one from the given and inferred precision
will be used as the final precision.
§Examples
use core::str::FromStr;
use dashu_base::Sign;
const A: DBig = DBig::from_parts_const(Sign::Negative, 1234, -2, None);
assert_eq!(A, DBig::from_str("-12.34")?);
assert_eq!(A.precision(), 4); // 1234 has 4 (decimal) digits
const B: DBig = DBig::from_parts_const(Sign::Negative, 1234, -2, Some(5));
assert_eq!(B.precision(), 5); // overrided by the argumentSourcepub fn ulp(&self) -> FBig<R, B>
pub fn ulp(&self) -> FBig<R, B>
Return the value of the least significant digit of the float number x,
such that x + ulp is the first float number greater than x (given the precision from the context).
§Examples
assert_eq!(DBig::from_str("1.23")?.ulp(), DBig::from_str("0.01")?);
assert_eq!(DBig::from_str("01.23")?.ulp(), DBig::from_str("0.001")?);§Panics
Panics if the precision of the number is 0 (unlimited).
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn into_cached(self, cache: Rc<RefCell<ConstCache>>) -> CachedFBig<R, B>
pub fn into_cached(self, cache: Rc<RefCell<ConstCache>>) -> CachedFBig<R, B>
Attach a shared cache handle, turning this FBig into a CachedFBig.
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn sinh(&self) -> FBig<R, B>
pub fn sinh(&self) -> FBig<R, B>
Calculate the hyperbolic sine of the floating point number.
§Examples
let a = DBig::from_str("0.5000000")?;
assert_eq!(a.sinh(), DBig::from_str("0.52109531")?);Sourcepub fn cosh(&self) -> FBig<R, B>
pub fn cosh(&self) -> FBig<R, B>
Calculate the hyperbolic cosine of the floating point number.
§Examples
let a = DBig::from_str("0.5000000")?;
assert_eq!(a.cosh(), DBig::from_str("1.127626")?);Sourcepub fn sinh_cosh(&self) -> (FBig<R, B>, FBig<R, B>)
pub fn sinh_cosh(&self) -> (FBig<R, B>, FBig<R, B>)
Simultaneously calculate the hyperbolic sine and cosine of the number.
This is more efficient than calling sinh and cosh
separately, since the two share the exp_m1(±x) sub-computations.
§Examples
let a = DBig::from_str("0.5000000")?;
let (s, c) = a.sinh_cosh();
assert_eq!(s, DBig::from_str("0.52109531")?);
assert_eq!(c, DBig::from_str("1.127626")?);Sourcepub fn tanh(&self) -> FBig<R, B>
pub fn tanh(&self) -> FBig<R, B>
Calculate the hyperbolic tangent of the floating point number.
§Examples
let a = DBig::from_str("0.5000000")?;
assert_eq!(a.tanh(), DBig::from_str("0.46211716")?);Sourcepub fn asinh(&self) -> FBig<R, B>
pub fn asinh(&self) -> FBig<R, B>
Calculate the inverse hyperbolic sine of the floating point number.
§Examples
let a = DBig::from_str("0.5000000")?;
assert_eq!(a.asinh(), DBig::from_str("0.48121183")?);Sourcepub fn atanh(&self) -> FBig<R, B>
pub fn atanh(&self) -> FBig<R, B>
Calculate the inverse hyperbolic tangent of the floating point number.
§Panics
Panics if the absolute value is greater than or equal to 1 (out of domain;
|x| = 1 is infinite and |x| > 1 is not real).
§Examples
let a = DBig::from_str("0.5000000")?;
assert_eq!(a.atanh(), DBig::from_str("0.54930614")?);Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn sin_cos(&self) -> (FBig<R, B>, FBig<R, B>)
pub fn sin_cos(&self) -> (FBig<R, B>, FBig<R, B>)
Calculate both the sine and cosine of the floating point number.
This is more efficient than calling sin and cos separately.
§Panics
Panics if the input is infinite.
Sourcepub fn tan(&self) -> FBig<R, B>
pub fn tan(&self) -> FBig<R, B>
Calculate the tangent of the floating point number.
At odd multiples of π/2 the result is an infinity (returned as a value).
§Panics
Panics if the input is infinite.
Sourcepub fn asin(&self) -> FBig<R, B>
pub fn asin(&self) -> FBig<R, B>
Calculate the arcsine of the floating point number.
§Panics
Panics if the input is infinite or |self| > 1 (out of domain).
Sourcepub fn acos(&self) -> FBig<R, B>
pub fn acos(&self) -> FBig<R, B>
Calculate the arccosine of the floating point number.
§Panics
Panics if the input is infinite or |self| > 1 (out of domain).
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn sqrt(&self) -> FBig<R, B>
pub fn sqrt(&self) -> FBig<R, B>
Calculate the square root of the floating point number.
§Panics
Panics if the precision is unlimited.
Sourcepub fn nth_root(&self, n: usize) -> FBig<R, B>
pub fn nth_root(&self, n: usize) -> FBig<R, B>
Calculate the nth root of the floating point number.
When n is large the computation can be expensive — the significand is
padded to n · precision digits before the integer root is taken, and
the integer Newton iteration works with numbers of that size. For large
n consider powf with a rational exponent 1 / n
as a faster approximate alternative.
§Examples
let a = DBig::from_str("16")?;
assert_eq!(a.nth_root(4), DBig::from_str("2")?);§Panics
Panics if n is zero, or if n is even and the number is negative.
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn hypot(&self, other: &FBig<R, B>) -> FBig<R, B>
pub fn hypot(&self, other: &FBig<R, B>) -> FBig<R, B>
Compute sqrt(self² + other²) without spurious overflow/underflow.
The result precision is max(self.precision(), other.precision()). See
Context::hypot for the overflow-safety strategy.
§Examples
let a = DBig::from_str("3")?;
let b = DBig::from_str("4")?;
assert_eq!(a.hypot(&b), DBig::from_str("5")?);§Panics
Panics if the precision is unlimited.
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub fn trunc(&self) -> FBig<R, B>
pub fn trunc(&self) -> FBig<R, B>
Get the integral part of the float
See FBig::round for how the output precision is determined.
§Examples
let a = DBig::from_str("1.234")?;
assert_eq!(a.trunc(), DBig::from_str("1")?);
// the actual precision of the integral part is 1 digit
assert_eq!(a.trunc().precision(), 1);§Panics
Panics if the number is infinte
Sourcepub fn split_at_point(self) -> (FBig<R, B>, FBig<R, B>)
pub fn split_at_point(self) -> (FBig<R, B>, FBig<R, B>)
Split the rational number into integral and fractional parts (split at the radix point)
It’s equivalent to (self.trunc(), self.fract())
§Examples
let a = DBig::from_str("1.234")?;
let (trunc, fract) = a.split_at_point();
assert_eq!(trunc, DBig::from_str("1.0")?);
assert_eq!(fract, DBig::from_str("0.234")?);
// the actual precision of the fractional part is 3 digits
assert_eq!(trunc.precision(), 1);
assert_eq!(fract.precision(), 3);Sourcepub fn fract(&self) -> FBig<R, B>
pub fn fract(&self) -> FBig<R, B>
Get the fractional part of the float
Note: this function will adjust the precision accordingly!
§Examples
let a = DBig::from_str("1.234")?;
assert_eq!(a.fract(), DBig::from_str("0.234")?);
// the actual precision of the fractional part is 3 digits
assert_eq!(a.fract().precision(), 3);§Panics
Panics if the number is infinte
Sourcepub fn ceil(&self) -> FBig<R, B>
pub fn ceil(&self) -> FBig<R, B>
Returns the smallest integer greater than or equal to self.
See FBig::round for how the output precision is determined.
§Examples
let a = DBig::from_str("1.234")?;
assert_eq!(a.ceil(), DBig::from_str("2")?);
// works for very large exponent
let b = DBig::from_str("1.234e10000")?;
assert_eq!(b.ceil(), b);§Panics
Panics if the number is infinte
Sourcepub fn floor(&self) -> FBig<R, B>
pub fn floor(&self) -> FBig<R, B>
Returns the largest integer less than or equal to self.
See FBig::round for how the output precision is determined.
§Examples
let a = DBig::from_str("1.234")?;
assert_eq!(a.floor(), DBig::from_str("1")?);
// works for very large exponent
let b = DBig::from_str("1.234e10000")?;
assert_eq!(b.floor(), b);§Panics
Panics if the number is infinte
Sourcepub fn round(&self) -> FBig<R, B>
pub fn round(&self) -> FBig<R, B>
Returns the integer nearest to self.
If there are two integers equally close, then the one farther from zero is chosen.
§Examples
let a = DBig::from_str("1.234")?;
assert_eq!(a.round(), DBig::from_str("1")?);
// works for very large exponent
let b = DBig::from_str("1.234e10000")?;
assert_eq!(b.round(), b);§Precision
If self is an integer, the result will have the same precision as self.
If self has fractional part, then the precision will be subtracted by the digits
in the fractional part. Examples:
1.00e100(precision = 3) rounds to1.00e100(precision = 3)1.234(precision = 4) rounds to1.(precision = 1)1.234e-10(precision = 4) rounds to0.(precision = 0, i.e arbitrary precision)
§Panics
Panics if the number is infinte
Sourcepub fn quantize(&self, exp: isize) -> Approximation<FBig<R, B>, Rounding>
pub fn quantize(&self, exp: isize) -> Approximation<FBig<R, B>, Rounding>
Round the number to the nearest multiple of BASE^exp.
This is the dashu analog of Python’s Decimal.quantize(). The result’s
value is an exact multiple of BASE^exp, and its precision is set so that
ulp() equals BASE^exp. Because dashu floats are
normalized, trailing zeros are not preserved in storage (the stored
exponent may be coarser than exp), but the value and ULP are exact. The
result keeps self’s rounding mode.
§Examples
use dashu_base::Approximation::*;
use dashu_float::round::Rounding::*;
let a = DBig::from_str("1.234")?; // precision 4
// round to 2 fractional digits (exp = -2): 3 significant figures remain
assert_eq!(a.quantize(-2), Inexact(DBig::from_str("1.23")?, NoOp));
assert_eq!(a.quantize(-2).value().precision(), 3);
// a finer quantum is exact (no rounding) and *increases* the precision
assert_eq!(a.quantize(-10), Exact(DBig::from_str("1.234")?));
assert_eq!(a.quantize(-10).value().precision(), 11);
// round to integer (exp = 0), or to the nearest 1000 (exp = 3)
assert_eq!(a.quantize(0), Inexact(DBig::from_str("1")?, NoOp));
assert_eq!(DBig::from_str("999")?.quantize(3), Inexact(DBig::from_str("1000")?, AddOne));§Panics
Panics if the number is infinte
Source§impl<R, const B: u64> FBig<R, B>where
R: Round,
impl<R, const B: u64> FBig<R, B>where
R: Round,
Sourcepub const fn sign(&self) -> Sign
pub const fn sign(&self) -> Sign
Get the sign of the number. Positive zero has a positive sign, negative zero has a negative sign.
§Examples
assert_eq!(DBig::ZERO.sign(), Sign::Positive);
assert_eq!(DBig::from_str("-1.234")?.sign(), Sign::Negative);Sourcepub const fn signum(&self) -> FBig<R, B>
pub const fn signum(&self) -> FBig<R, B>
A number representing the sign of self.
- FBig::ONE if the number is positive (including
inf) - FBig::ZERO if the number is zero
- FBig::NEG_ONE if the number is negative (including
-inf)
§Examples
assert_eq!(DBig::from_str("2.01")?.signum(), DBig::ONE);
assert_eq!(DBig::from_str("-1.234")?.signum(), DBig::NEG_ONE);Trait Implementations§
Source§impl<'r, R, const B: u64> Add<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<'r, R, const B: u64> Add<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
+ operator.Source§fn add(
self,
rhs: &CachedFBig<R, B>,
) -> <FBig<R, B> as Add<&'r CachedFBig<R, B>>>::Output
fn add( self, rhs: &CachedFBig<R, B>, ) -> <FBig<R, B> as Add<&'r CachedFBig<R, B>>>::Output
+ operation. Read moreSource§impl<'l, 'r, R, const B: u64> Add<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, 'r, R, const B: u64> Add<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
+ operator.Source§fn add(
self,
rhs: &CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Add<&'r CachedFBig<R, B>>>::Output
fn add( self, rhs: &CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Add<&'r CachedFBig<R, B>>>::Output
+ operation. Read moreSource§impl<R, const B: u64> Add<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> Add<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
+ operator.Source§fn add(
self,
rhs: CachedFBig<R, B>,
) -> <FBig<R, B> as Add<CachedFBig<R, B>>>::Output
fn add( self, rhs: CachedFBig<R, B>, ) -> <FBig<R, B> as Add<CachedFBig<R, B>>>::Output
+ operation. Read moreSource§impl<'l, R, const B: u64> Add<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, R, const B: u64> Add<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
+ operator.Source§fn add(
self,
rhs: CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Add<CachedFBig<R, B>>>::Output
fn add( self, rhs: CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Add<CachedFBig<R, B>>>::Output
+ operation. Read moreSource§impl<R, const B: u64> AddAssign for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: FBig<R, B>)
fn add_assign(&mut self, rhs: FBig<R, B>)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &FBig<R, B>)
fn add_assign(&mut self, rhs: &FBig<R, B>)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&IBig> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &IBig)
fn add_assign(&mut self, rhs: &IBig)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&UBig> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &UBig)
fn add_assign(&mut self, rhs: &UBig)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&i8> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &i8)
fn add_assign(&mut self, rhs: &i8)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&i16> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &i16)
fn add_assign(&mut self, rhs: &i16)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&i32> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &i32)
fn add_assign(&mut self, rhs: &i32)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&i64> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &i64)
fn add_assign(&mut self, rhs: &i64)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&i128> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &i128)
fn add_assign(&mut self, rhs: &i128)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&isize> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &isize)
fn add_assign(&mut self, rhs: &isize)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&u8> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &u8)
fn add_assign(&mut self, rhs: &u8)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&u16> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &u16)
fn add_assign(&mut self, rhs: &u16)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&u32> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &u32)
fn add_assign(&mut self, rhs: &u32)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&u64> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &u64)
fn add_assign(&mut self, rhs: &u64)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&u128> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &u128)
fn add_assign(&mut self, rhs: &u128)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<&usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<&usize> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: &usize)
fn add_assign(&mut self, rhs: &usize)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<IBig> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: IBig)
fn add_assign(&mut self, rhs: IBig)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<UBig> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: UBig)
fn add_assign(&mut self, rhs: UBig)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<i8> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: i8)
fn add_assign(&mut self, rhs: i8)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<i16> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: i16)
fn add_assign(&mut self, rhs: i16)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<i32> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: i32)
fn add_assign(&mut self, rhs: i32)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<i64> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: i64)
fn add_assign(&mut self, rhs: i64)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<i128> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: i128)
fn add_assign(&mut self, rhs: i128)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<isize> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: isize)
fn add_assign(&mut self, rhs: isize)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<u8> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: u8)
fn add_assign(&mut self, rhs: u8)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<u16> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: u16)
fn add_assign(&mut self, rhs: u16)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<u32> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: u32)
fn add_assign(&mut self, rhs: u32)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<u64> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: u64)
fn add_assign(&mut self, rhs: u64)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<u128> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: u128)
fn add_assign(&mut self, rhs: u128)
+= operation. Read moreSource§impl<R, const B: u64> AddAssign<usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> AddAssign<usize> for FBig<R, B>where
R: Round,
Source§fn add_assign(&mut self, rhs: usize)
fn add_assign(&mut self, rhs: usize)
+= operation. Read moreSource§impl<'de, R, const B: u64> Deserialize<'de> for FBig<R, B>where
R: Round,
impl<'de, R, const B: u64> Deserialize<'de> for FBig<R, B>where
R: Round,
Source§fn deserialize<D>(
deserializer: D,
) -> Result<FBig<R, B>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<FBig<R, B>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl<'r, R: Round, const B: Word> Div<&'r CachedCBig<R, B>> for FBig<R, B>
impl<'r, R: Round, const B: Word> Div<&'r CachedCBig<R, B>> for FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
/ operator.Source§impl<'l, 'r, R: Round, const B: Word> Div<&'r CachedCBig<R, B>> for &'l FBig<R, B>
impl<'l, 'r, R: Round, const B: Word> Div<&'r CachedCBig<R, B>> for &'l FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
/ operator.Source§impl<'r, R, const B: u64> Div<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<'r, R, const B: u64> Div<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
/ operator.Source§fn div(
self,
rhs: &CachedFBig<R, B>,
) -> <FBig<R, B> as Div<&'r CachedFBig<R, B>>>::Output
fn div( self, rhs: &CachedFBig<R, B>, ) -> <FBig<R, B> as Div<&'r CachedFBig<R, B>>>::Output
/ operation. Read moreSource§impl<'l, 'r, R, const B: u64> Div<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, 'r, R, const B: u64> Div<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
/ operator.Source§fn div(
self,
rhs: &CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Div<&'r CachedFBig<R, B>>>::Output
fn div( self, rhs: &CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Div<&'r CachedFBig<R, B>>>::Output
/ operation. Read moreSource§impl<R: Round, const B: Word> Div<CachedCBig<R, B>> for FBig<R, B>
impl<R: Round, const B: Word> Div<CachedCBig<R, B>> for FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
/ operator.Source§impl<'l, R: Round, const B: Word> Div<CachedCBig<R, B>> for &'l FBig<R, B>
impl<'l, R: Round, const B: Word> Div<CachedCBig<R, B>> for &'l FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
/ operator.Source§impl<R, const B: u64> Div<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> Div<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
/ operator.Source§fn div(
self,
rhs: CachedFBig<R, B>,
) -> <FBig<R, B> as Div<CachedFBig<R, B>>>::Output
fn div( self, rhs: CachedFBig<R, B>, ) -> <FBig<R, B> as Div<CachedFBig<R, B>>>::Output
/ operation. Read moreSource§impl<'l, R, const B: u64> Div<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, R, const B: u64> Div<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
/ operator.Source§fn div(
self,
rhs: CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Div<CachedFBig<R, B>>>::Output
fn div( self, rhs: CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Div<CachedFBig<R, B>>>::Output
/ operation. Read moreSource§impl<R, const B: u64> DivAssign for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: FBig<R, B>)
fn div_assign(&mut self, rhs: FBig<R, B>)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &FBig<R, B>)
fn div_assign(&mut self, rhs: &FBig<R, B>)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&IBig> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &IBig)
fn div_assign(&mut self, rhs: &IBig)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&UBig> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &UBig)
fn div_assign(&mut self, rhs: &UBig)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&i8> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &i8)
fn div_assign(&mut self, rhs: &i8)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&i16> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &i16)
fn div_assign(&mut self, rhs: &i16)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&i32> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &i32)
fn div_assign(&mut self, rhs: &i32)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&i64> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &i64)
fn div_assign(&mut self, rhs: &i64)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&i128> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &i128)
fn div_assign(&mut self, rhs: &i128)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&isize> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &isize)
fn div_assign(&mut self, rhs: &isize)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&u8> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &u8)
fn div_assign(&mut self, rhs: &u8)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&u16> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &u16)
fn div_assign(&mut self, rhs: &u16)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&u32> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &u32)
fn div_assign(&mut self, rhs: &u32)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&u64> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &u64)
fn div_assign(&mut self, rhs: &u64)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&u128> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &u128)
fn div_assign(&mut self, rhs: &u128)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<&usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<&usize> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: &usize)
fn div_assign(&mut self, rhs: &usize)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<IBig> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: IBig)
fn div_assign(&mut self, rhs: IBig)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<UBig> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: UBig)
fn div_assign(&mut self, rhs: UBig)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<i8> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: i8)
fn div_assign(&mut self, rhs: i8)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<i16> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: i16)
fn div_assign(&mut self, rhs: i16)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<i32> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: i32)
fn div_assign(&mut self, rhs: i32)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<i64> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: i64)
fn div_assign(&mut self, rhs: i64)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<i128> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: i128)
fn div_assign(&mut self, rhs: i128)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<isize> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: isize)
fn div_assign(&mut self, rhs: isize)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<u8> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: u8)
fn div_assign(&mut self, rhs: u8)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<u16> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: u16)
fn div_assign(&mut self, rhs: u16)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<u32> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: u32)
fn div_assign(&mut self, rhs: u32)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<u64> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: u64)
fn div_assign(&mut self, rhs: u64)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<u128> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: u128)
fn div_assign(&mut self, rhs: u128)
/= operation. Read moreSource§impl<R, const B: u64> DivAssign<usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> DivAssign<usize> for FBig<R, B>where
R: Round,
Source§fn div_assign(&mut self, rhs: usize)
fn div_assign(&mut self, rhs: usize)
/= operation. Read moreimpl<R, const B: u64> Eq for FBig<R, B>where
R: Round,
Source§impl<R, const B: u64> Euclid for FBig<R, B>where
R: Round,
impl<R, const B: u64> Euclid for FBig<R, B>where
R: Round,
Source§fn div_euclid(&self, v: &FBig<R, B>) -> FBig<R, B>
fn div_euclid(&self, v: &FBig<R, B>) -> FBig<R, B>
rem_euclid. Read moreSource§fn rem_euclid(&self, v: &FBig<R, B>) -> FBig<R, B>
fn rem_euclid(&self, v: &FBig<R, B>) -> FBig<R, B>
self (mod v). Read moreSource§fn div_rem_euclid(&self, v: &Self) -> (Self, Self)
fn div_rem_euclid(&self, v: &Self) -> (Self, Self)
Source§impl<R, const B: u64> From<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> From<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§fn from(cached: CachedFBig<R, B>) -> FBig<R, B>
fn from(cached: CachedFBig<R, B>) -> FBig<R, B>
Source§impl<R, const B: u64> FromPrimitive for FBig<R, B>where
R: Round,
impl<R, const B: u64> FromPrimitive for FBig<R, B>where
R: Round,
Source§fn from_i8(n: i8) -> Option<FBig<R, B>>
fn from_i8(n: i8) -> Option<FBig<R, B>>
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<FBig<R, B>>
fn from_i16(n: i16) -> Option<FBig<R, B>>
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<FBig<R, B>>
fn from_i32(n: i32) -> Option<FBig<R, B>>
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_i64(n: i64) -> Option<FBig<R, B>>
fn from_i64(n: i64) -> Option<FBig<R, B>>
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_i128(n: i128) -> Option<FBig<R, B>>
fn from_i128(n: i128) -> Option<FBig<R, B>>
i128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§fn from_isize(n: isize) -> Option<FBig<R, B>>
fn from_isize(n: isize) -> Option<FBig<R, B>>
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_u8(n: u8) -> Option<FBig<R, B>>
fn from_u8(n: u8) -> Option<FBig<R, B>>
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<FBig<R, B>>
fn from_u16(n: u16) -> Option<FBig<R, B>>
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<FBig<R, B>>
fn from_u32(n: u32) -> Option<FBig<R, B>>
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_u64(n: u64) -> Option<FBig<R, B>>
fn from_u64(n: u64) -> Option<FBig<R, B>>
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_u128(n: u128) -> Option<FBig<R, B>>
fn from_u128(n: u128) -> Option<FBig<R, B>>
u128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§fn from_usize(n: usize) -> Option<FBig<R, B>>
fn from_usize(n: usize) -> Option<FBig<R, B>>
usize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§impl<R, const B: u64> FromStr for FBig<R, B>where
R: Round,
impl<R, const B: u64> FromStr for FBig<R, B>where
R: Round,
Source§fn from_str(s: &str) -> Result<FBig<R, B>, ParseError>
fn from_str(s: &str) -> Result<FBig<R, B>, ParseError>
Convert a string in the native base (i.e. radix B) to FBig.
If parsing succeeds, the result is losslessly parsed from the input string, and its precision equals the number of significant digits in the input.
Note: Infinites are intentionally not supported by this function.
§Format
The valid representations include
aaaoraaa.aaais represented in native baseBwithout base prefixes.
aaa.bbb=aaabbb / base ^ len(bbb)aaaandbbbare represented in native baseBwithout base prefixes.len(bbb)represents the number of digits inbbb, e.glen(bbb)is 3. (Same below)
aaa.bbb@cc=aaabbb * base ^ (cc - len(bbb))aaaandbbbare represented in native baseB- This is consistent with the representation used by GNU GMP.
aaa.bbbEcc=aaabbb * 10 ^ (cc - len(bbb))Ecould be lower case, baseBmust be 10aaaandbbbare all represented in decimal
0xaaaor0xaaa0xaaa.bbb=0xaaabbb / 16 ^ len(bbb)0xaaa.bbbPcc=0xaaabbb / 16 ^ len(bbb) * 2 ^ ccPcould be lower case, baseBmust be 2 (not 16!)aaaandbbbare represented in hexadecimal- This is consistent with the C++ hexadecimal literals.
aaa.bbbBcc=aaabbb * 2 ^ (cc - len(bbb))aaa.bbbOcc=aaabbb * 8 ^ (cc - len(bbb))aaa.bbbHcc=aaabbb * 16 ^ (cc - len(bbb))B/O/Hcould be lower case, and baseBmust be consistent with the marker.aaaandbbbare represented in binary/octal/hexadecimal correspondingly without prefix.- This is consistent with some scientific notations described in Wikipedia.
Digits 10-35 are represented by a-z or A-Z.
Literal aaa and cc above can be signed, but bbb must be unsigned.
All cc are represented in decimal. Either aaa or bbb can be omitted
when its value is zero, but they are not allowed to be omitted at the same time.
§Precision
The precision of the parsed number is determined by the number of digits that are presented
in the input string. For example, the numbers parsed from 12.34 or 1.234e-1 will have a
precision of 4, while the ones parsed from 12.34000 or 00012.34 will have a precision of 7.
§Panics
Panics if the base B is not between MIN_RADIX and MAX_RADIX inclusive.
§Examples
let a = DBig::from_str("-1.23400e-3")?;
let b = DBig::from_str("-123.4@-05")?;
assert_eq!(a, b);
assert_eq!(a.precision(), 6);
assert_eq!(b.precision(), 4);
assert!(DBig::from_str("-0x1.234p-3").is_err());
assert!(DBig::from_str("-1.234H-3").is_err());Source§type Err = ParseError
type Err = ParseError
Source§impl<'r, R: Round, const B: Word> Mul<&'r CachedCBig<R, B>> for FBig<R, B>
impl<'r, R: Round, const B: Word> Mul<&'r CachedCBig<R, B>> for FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
* operator.Source§impl<'l, 'r, R: Round, const B: Word> Mul<&'r CachedCBig<R, B>> for &'l FBig<R, B>
impl<'l, 'r, R: Round, const B: Word> Mul<&'r CachedCBig<R, B>> for &'l FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
* operator.Source§impl<'r, R, const B: u64> Mul<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<'r, R, const B: u64> Mul<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
* operator.Source§fn mul(
self,
rhs: &CachedFBig<R, B>,
) -> <FBig<R, B> as Mul<&'r CachedFBig<R, B>>>::Output
fn mul( self, rhs: &CachedFBig<R, B>, ) -> <FBig<R, B> as Mul<&'r CachedFBig<R, B>>>::Output
* operation. Read moreSource§impl<'l, 'r, R, const B: u64> Mul<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, 'r, R, const B: u64> Mul<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
* operator.Source§fn mul(
self,
rhs: &CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Mul<&'r CachedFBig<R, B>>>::Output
fn mul( self, rhs: &CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Mul<&'r CachedFBig<R, B>>>::Output
* operation. Read moreSource§impl<R: Round, const B: Word> Mul<CachedCBig<R, B>> for FBig<R, B>
impl<R: Round, const B: Word> Mul<CachedCBig<R, B>> for FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
* operator.Source§impl<'l, R: Round, const B: Word> Mul<CachedCBig<R, B>> for &'l FBig<R, B>
impl<'l, R: Round, const B: Word> Mul<CachedCBig<R, B>> for &'l FBig<R, B>
Source§type Output = CachedCBig<R, B>
type Output = CachedCBig<R, B>
* operator.Source§impl<R, const B: u64> Mul<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> Mul<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
* operator.Source§fn mul(
self,
rhs: CachedFBig<R, B>,
) -> <FBig<R, B> as Mul<CachedFBig<R, B>>>::Output
fn mul( self, rhs: CachedFBig<R, B>, ) -> <FBig<R, B> as Mul<CachedFBig<R, B>>>::Output
* operation. Read moreSource§impl<'l, R, const B: u64> Mul<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, R, const B: u64> Mul<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
* operator.Source§fn mul(
self,
rhs: CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Mul<CachedFBig<R, B>>>::Output
fn mul( self, rhs: CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Mul<CachedFBig<R, B>>>::Output
* operation. Read moreSource§impl<R, const B: u64> MulAssign for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: FBig<R, B>)
fn mul_assign(&mut self, rhs: FBig<R, B>)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &FBig<R, B>)
fn mul_assign(&mut self, rhs: &FBig<R, B>)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&IBig> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &IBig)
fn mul_assign(&mut self, rhs: &IBig)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&UBig> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &UBig)
fn mul_assign(&mut self, rhs: &UBig)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&i8> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &i8)
fn mul_assign(&mut self, rhs: &i8)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&i16> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &i16)
fn mul_assign(&mut self, rhs: &i16)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&i32> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &i32)
fn mul_assign(&mut self, rhs: &i32)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&i64> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &i64)
fn mul_assign(&mut self, rhs: &i64)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&i128> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &i128)
fn mul_assign(&mut self, rhs: &i128)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&isize> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &isize)
fn mul_assign(&mut self, rhs: &isize)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&u8> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &u8)
fn mul_assign(&mut self, rhs: &u8)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&u16> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &u16)
fn mul_assign(&mut self, rhs: &u16)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&u32> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &u32)
fn mul_assign(&mut self, rhs: &u32)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&u64> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &u64)
fn mul_assign(&mut self, rhs: &u64)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&u128> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &u128)
fn mul_assign(&mut self, rhs: &u128)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<&usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<&usize> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: &usize)
fn mul_assign(&mut self, rhs: &usize)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<IBig> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: IBig)
fn mul_assign(&mut self, rhs: IBig)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<Sign> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<Sign> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: Sign)
fn mul_assign(&mut self, rhs: Sign)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<UBig> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: UBig)
fn mul_assign(&mut self, rhs: UBig)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<i8> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: i8)
fn mul_assign(&mut self, rhs: i8)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<i16> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: i16)
fn mul_assign(&mut self, rhs: i16)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<i32> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: i32)
fn mul_assign(&mut self, rhs: i32)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<i64> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: i64)
fn mul_assign(&mut self, rhs: i64)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<i128> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: i128)
fn mul_assign(&mut self, rhs: i128)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<isize> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: isize)
fn mul_assign(&mut self, rhs: isize)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<u8> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: u8)
fn mul_assign(&mut self, rhs: u8)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<u16> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: u16)
fn mul_assign(&mut self, rhs: u16)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<u32> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: u32)
fn mul_assign(&mut self, rhs: u32)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<u64> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: u64)
fn mul_assign(&mut self, rhs: u64)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<u128> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: u128)
fn mul_assign(&mut self, rhs: u128)
*= operation. Read moreSource§impl<R, const B: u64> MulAssign<usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> MulAssign<usize> for FBig<R, B>where
R: Round,
Source§fn mul_assign(&mut self, rhs: usize)
fn mul_assign(&mut self, rhs: usize)
*= operation. Read moreSource§impl<R, const B: u64> Num for FBig<R, B>where
R: Round,
impl<R, const B: u64> Num for FBig<R, B>where
R: Round,
type FromStrRadixErr = ParseError
Source§impl<R1, R2, const B1: u64, const B2: u64> NumOrd<FBig<R2, B2>> for FBig<R1, B1>
impl<R1, R2, const B1: u64, const B2: u64> NumOrd<FBig<R2, B2>> for FBig<R1, B1>
Source§impl<R, const B: u64> NumOrd<IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<IBig> for FBig<R, B>where
R: Round,
Source§impl<R, const B: u64> NumOrd<UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<UBig> for FBig<R, B>where
R: Round,
Source§impl<R, const B: u64> NumOrd<f32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<f32> for FBig<R, B>where
R: Round,
Source§impl<R, const B: u64> NumOrd<f64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<f64> for FBig<R, B>where
R: Round,
Source§impl<R, const B: u64> NumOrd<i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<i8> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &i8) -> Option<Ordering>
fn num_partial_cmp(&self, other: &i8) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<i16> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &i16) -> Option<Ordering>
fn num_partial_cmp(&self, other: &i16) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<i32> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &i32) -> Option<Ordering>
fn num_partial_cmp(&self, other: &i32) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<i64> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &i64) -> Option<Ordering>
fn num_partial_cmp(&self, other: &i64) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<i128> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &i128) -> Option<Ordering>
fn num_partial_cmp(&self, other: &i128) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<isize> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &isize) -> Option<Ordering>
fn num_partial_cmp(&self, other: &isize) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<u8> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &u8) -> Option<Ordering>
fn num_partial_cmp(&self, other: &u8) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<u16> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &u16) -> Option<Ordering>
fn num_partial_cmp(&self, other: &u16) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<u32> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &u32) -> Option<Ordering>
fn num_partial_cmp(&self, other: &u32) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<u64> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &u64) -> Option<Ordering>
fn num_partial_cmp(&self, other: &u64) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<u128> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &u128) -> Option<Ordering>
fn num_partial_cmp(&self, other: &u128) -> Option<Ordering>
Source§impl<R, const B: u64> NumOrd<usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> NumOrd<usize> for FBig<R, B>where
R: Round,
Source§fn num_partial_cmp(&self, other: &usize) -> Option<Ordering>
fn num_partial_cmp(&self, other: &usize) -> Option<Ordering>
Source§impl<R, const B: u64> Ord for FBig<R, B>where
R: Round,
impl<R, const B: u64> Ord for FBig<R, B>where
R: Round,
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<R1, R2, const B: u64> PartialOrd<FBig<R2, B>> for FBig<R1, B>
impl<R1, R2, const B: u64> PartialOrd<FBig<R2, B>> for FBig<R1, B>
Source§impl<'r, R, const B: u64> Rem<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<'r, R, const B: u64> Rem<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
% operator.Source§fn rem(
self,
rhs: &CachedFBig<R, B>,
) -> <FBig<R, B> as Rem<&'r CachedFBig<R, B>>>::Output
fn rem( self, rhs: &CachedFBig<R, B>, ) -> <FBig<R, B> as Rem<&'r CachedFBig<R, B>>>::Output
% operation. Read moreSource§impl<'l, 'r, R, const B: u64> Rem<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, 'r, R, const B: u64> Rem<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
% operator.Source§fn rem(
self,
rhs: &CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Rem<&'r CachedFBig<R, B>>>::Output
fn rem( self, rhs: &CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Rem<&'r CachedFBig<R, B>>>::Output
% operation. Read moreSource§impl<R, const B: u64> Rem<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> Rem<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
% operator.Source§fn rem(
self,
rhs: CachedFBig<R, B>,
) -> <FBig<R, B> as Rem<CachedFBig<R, B>>>::Output
fn rem( self, rhs: CachedFBig<R, B>, ) -> <FBig<R, B> as Rem<CachedFBig<R, B>>>::Output
% operation. Read moreSource§impl<'l, R, const B: u64> Rem<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, R, const B: u64> Rem<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
% operator.Source§fn rem(
self,
rhs: CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Rem<CachedFBig<R, B>>>::Output
fn rem( self, rhs: CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Rem<CachedFBig<R, B>>>::Output
% operation. Read moreSource§impl<R, const B: u64> RemAssign for FBig<R, B>where
R: Round,
impl<R, const B: u64> RemAssign for FBig<R, B>where
R: Round,
Source§fn rem_assign(&mut self, rhs: FBig<R, B>)
fn rem_assign(&mut self, rhs: FBig<R, B>)
%= operation. Read moreSource§impl<R, const B: u64> RemAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> RemAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
Source§fn rem_assign(&mut self, rhs: &FBig<R, B>)
fn rem_assign(&mut self, rhs: &FBig<R, B>)
%= operation. Read moreSource§impl<R, const B: u64> SampleUniform for FBig<R, B>where
R: Round,
impl<R, const B: u64> SampleUniform for FBig<R, B>where
R: Round,
Source§type Sampler = UniformFBig<R, B>
type Sampler = UniformFBig<R, B>
UniformSampler implementation supporting type X.Source§impl<R, const B: u64> SampleUniform for FBig<R, B>where
R: Round,
impl<R, const B: u64> SampleUniform for FBig<R, B>where
R: Round,
Source§type Sampler = UniformFBig<R, B>
type Sampler = UniformFBig<R, B>
UniformSampler implementation supporting type X.Source§impl<R, const B: u64> SampleUniform for FBig<R, B>where
R: Round,
impl<R, const B: u64> SampleUniform for FBig<R, B>where
R: Round,
Source§type Sampler = UniformFBig<R, B>
type Sampler = UniformFBig<R, B>
UniformSampler implementation supporting type X.Source§impl<R, const B: u64> Serialize for FBig<R, B>where
R: Round,
impl<R, const B: u64> Serialize for FBig<R, B>where
R: Round,
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Source§impl<R, const B: u64> ShlAssign<isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> ShlAssign<isize> for FBig<R, B>where
R: Round,
Source§fn shl_assign(&mut self, rhs: isize)
fn shl_assign(&mut self, rhs: isize)
<<= operation. Read moreSource§impl<R, const B: u64> ShrAssign<isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> ShrAssign<isize> for FBig<R, B>where
R: Round,
Source§fn shr_assign(&mut self, rhs: isize)
fn shr_assign(&mut self, rhs: isize)
>>= operation. Read moreSource§impl<R, const B: u64> Signed for FBig<R, B>where
R: Round,
impl<R, const B: u64> Signed for FBig<R, B>where
R: Round,
Source§fn abs_sub(&self, other: &FBig<R, B>) -> FBig<R, B>
fn abs_sub(&self, other: &FBig<R, B>) -> FBig<R, B>
Source§fn is_positive(&self) -> bool
fn is_positive(&self) -> bool
Source§fn is_negative(&self) -> bool
fn is_negative(&self) -> bool
Source§impl<'r, R, const B: u64> Sub<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<'r, R, const B: u64> Sub<&'r CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
- operator.Source§fn sub(
self,
rhs: &CachedFBig<R, B>,
) -> <FBig<R, B> as Sub<&'r CachedFBig<R, B>>>::Output
fn sub( self, rhs: &CachedFBig<R, B>, ) -> <FBig<R, B> as Sub<&'r CachedFBig<R, B>>>::Output
- operation. Read moreSource§impl<'l, 'r, R, const B: u64> Sub<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, 'r, R, const B: u64> Sub<&'r CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
- operator.Source§fn sub(
self,
rhs: &CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Sub<&'r CachedFBig<R, B>>>::Output
fn sub( self, rhs: &CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Sub<&'r CachedFBig<R, B>>>::Output
- operation. Read moreSource§impl<R, const B: u64> Sub<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> Sub<CachedFBig<R, B>> for FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
- operator.Source§fn sub(
self,
rhs: CachedFBig<R, B>,
) -> <FBig<R, B> as Sub<CachedFBig<R, B>>>::Output
fn sub( self, rhs: CachedFBig<R, B>, ) -> <FBig<R, B> as Sub<CachedFBig<R, B>>>::Output
- operation. Read moreSource§impl<'l, R, const B: u64> Sub<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
impl<'l, R, const B: u64> Sub<CachedFBig<R, B>> for &'l FBig<R, B>where
R: Round,
Source§type Output = CachedFBig<R, B>
type Output = CachedFBig<R, B>
- operator.Source§fn sub(
self,
rhs: CachedFBig<R, B>,
) -> <&'l FBig<R, B> as Sub<CachedFBig<R, B>>>::Output
fn sub( self, rhs: CachedFBig<R, B>, ) -> <&'l FBig<R, B> as Sub<CachedFBig<R, B>>>::Output
- operation. Read moreSource§impl<R, const B: u64> SubAssign for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: FBig<R, B>)
fn sub_assign(&mut self, rhs: FBig<R, B>)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&FBig<R, B>> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &FBig<R, B>)
fn sub_assign(&mut self, rhs: &FBig<R, B>)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&IBig> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &IBig)
fn sub_assign(&mut self, rhs: &IBig)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&UBig> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &UBig)
fn sub_assign(&mut self, rhs: &UBig)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&i8> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &i8)
fn sub_assign(&mut self, rhs: &i8)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&i16> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &i16)
fn sub_assign(&mut self, rhs: &i16)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&i32> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &i32)
fn sub_assign(&mut self, rhs: &i32)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&i64> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &i64)
fn sub_assign(&mut self, rhs: &i64)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&i128> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &i128)
fn sub_assign(&mut self, rhs: &i128)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&isize> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &isize)
fn sub_assign(&mut self, rhs: &isize)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&u8> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &u8)
fn sub_assign(&mut self, rhs: &u8)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&u16> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &u16)
fn sub_assign(&mut self, rhs: &u16)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&u32> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &u32)
fn sub_assign(&mut self, rhs: &u32)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&u64> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &u64)
fn sub_assign(&mut self, rhs: &u64)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&u128> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &u128)
fn sub_assign(&mut self, rhs: &u128)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<&usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<&usize> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: &usize)
fn sub_assign(&mut self, rhs: &usize)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<IBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<IBig> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: IBig)
fn sub_assign(&mut self, rhs: IBig)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<UBig> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<UBig> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: UBig)
fn sub_assign(&mut self, rhs: UBig)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<i8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<i8> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: i8)
fn sub_assign(&mut self, rhs: i8)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<i16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<i16> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: i16)
fn sub_assign(&mut self, rhs: i16)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<i32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<i32> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: i32)
fn sub_assign(&mut self, rhs: i32)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<i64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<i64> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: i64)
fn sub_assign(&mut self, rhs: i64)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<i128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<i128> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: i128)
fn sub_assign(&mut self, rhs: i128)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<isize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<isize> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: isize)
fn sub_assign(&mut self, rhs: isize)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<u8> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<u8> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: u8)
fn sub_assign(&mut self, rhs: u8)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<u16> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<u16> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: u16)
fn sub_assign(&mut self, rhs: u16)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<u32> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<u32> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: u32)
fn sub_assign(&mut self, rhs: u32)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<u64> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<u64> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: u64)
fn sub_assign(&mut self, rhs: u64)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<u128> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<u128> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: u128)
fn sub_assign(&mut self, rhs: u128)
-= operation. Read moreSource§impl<R, const B: u64> SubAssign<usize> for FBig<R, B>where
R: Round,
impl<R, const B: u64> SubAssign<usize> for FBig<R, B>where
R: Round,
Source§fn sub_assign(&mut self, rhs: usize)
fn sub_assign(&mut self, rhs: usize)
-= operation. Read moreSource§impl<R, const B: u64> ToPrimitive for FBig<R, B>where
R: Round,
impl<R, const B: u64> ToPrimitive for FBig<R, B>where
R: Round,
Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
self to an i8. If the value cannot be
represented by an i8, then None is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
self to an i16. If the value cannot be
represented by an i16, then None is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
self to an i32. If the value cannot be
represented by an i32, then None is returned.Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
self to an i64. If the value cannot be
represented by an i64, then None is returned.Source§fn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
self to an i128. If the value cannot be
represented by an i128 (i64 under the default implementation), then
None is returned. Read moreSource§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
self to an isize. If the value cannot be
represented by an isize, then None is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
self to a u8. If the value cannot be
represented by a u8, then None is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
self to a u16. If the value cannot be
represented by a u16, then None is returned.Source§fn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
self to a u32. If the value cannot be
represented by a u32, then None is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
self to a u64. If the value cannot be
represented by a u64, then None is returned.Source§fn to_u128(&self) -> Option<u128>
fn to_u128(&self) -> Option<u128>
self to a u128. If the value cannot be
represented by a u128 (u64 under the default implementation), then
None is returned. Read moreSource§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
self to a usize. If the value cannot be
represented by a usize, then None is returned.Source§impl<R: Round, const B: Word> TryFrom<CBig<R, B>> for FBig<R, B>
impl<R: Round, const B: Word> TryFrom<CBig<R, B>> for FBig<R, B>
Source§fn try_from(z: CBig<R, B>) -> Result<Self, Self::Error>
fn try_from(z: CBig<R, B>) -> Result<Self, Self::Error>
Extract the real part, succeeding only when the imaginary part is zero (purely real; both
±0 count as zero). This is the guarded “is this complex actually real?” check — distinct
from CBig::re / CBig::into_parts, which return the real part unconditionally.
Source§type Error = ConversionError
type Error = ConversionError
Source§impl<R: Round, const B: Word> TryFrom<CachedCBig<R, B>> for FBig<R, B>
impl<R: Round, const B: Word> TryFrom<CachedCBig<R, B>> for FBig<R, B>
Source§type Error = ConversionError
type Error = ConversionError
Auto Trait Implementations§
impl<RoundingMode, const BASE: u64> Freeze for FBig<RoundingMode, BASE>
impl<RoundingMode, const BASE: u64> RefUnwindSafe for FBig<RoundingMode, BASE>where
RoundingMode: RefUnwindSafe,
impl<RoundingMode, const BASE: u64> Send for FBig<RoundingMode, BASE>where
RoundingMode: Send,
impl<RoundingMode, const BASE: u64> Sync for FBig<RoundingMode, BASE>where
RoundingMode: Sync,
impl<RoundingMode, const BASE: u64> Unpin for FBig<RoundingMode, BASE>where
RoundingMode: Unpin,
impl<RoundingMode, const BASE: u64> UnsafeUnpin for FBig<RoundingMode, BASE>
impl<RoundingMode, const BASE: u64> UnwindSafe for FBig<RoundingMode, BASE>where
RoundingMode: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> NumAssign for Twhere
T: Num + NumAssignOps,
impl<T, Rhs> NumAssignOps<Rhs> for T
impl<T> NumAssignRef for T
impl<T, Rhs, Output> NumOps<Rhs, Output> for T
impl<T> NumRef for T
impl<T, Base> RefNum<Base> for T
Source§impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
Source§fn borrow(&self) -> &Borrowed
fn borrow(&self) -> &Borrowed
Borrow::borrowSource§impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
Source§fn borrow(&self) -> &Borrowed
fn borrow(&self) -> &Borrowed
Borrow::borrowSource§impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
impl<Borrowed> SampleBorrow<Borrowed> for Borrowedwhere
Borrowed: SampleUniform,
Source§fn borrow(&self) -> &Borrowed
fn borrow(&self) -> &Borrowed
Borrow::borrow