f128

Primitive Type f128 

🔬This is a nightly-only experimental API. (f128 #116909)
Expand description

A 128-bit floating-point type (specifically, the “binary128” type defined in IEEE 754-2008).

This type is very similar to f32 and f64, but has increased precision by using twice as many bits as f64. Please see the documentation for f32 or Wikipedia on quad-precision values for more information.

Note that no platforms have hardware support for f128 without enabling target specific features, as for all instruction set architectures f128 is considered an optional feature. Only Power ISA (“PowerPC”) and RISC-V (via the Q extension) specify it, and only certain microarchitectures actually implement it. For x86-64 and AArch64, ISA support is not even specified, so it will always be a software implementation significantly slower than f64.

Note: f128 support is incomplete. Many platforms will not be able to link math functions. On x86 in particular, these functions do link but their results are always incorrect.

See also the std::f128::consts module.

Trait Implementations§

1.0.0 (const: unstable) · Source§

impl Add<&f128> for &f128

Source§

type Output = <f128 as Add>::Output

The resulting type after applying the + operator.
Source§

fn add(self, other: &f128) -> <f128 as Add<f128>>::Output

Performs the + operation. Read more
1.0.0 (const: unstable) · Source§

impl Add<&f128> for f128

Source§

type Output = <f128 as Add>::Output

The resulting type after applying the + operator.
Source§

fn add(self, other: &f128) -> <f128 as Add<f128>>::Output

Performs the + operation. Read more
1.0.0 (const: unstable) · Source§

impl Add<f128> for &f128

Source§

type Output = <f128 as Add>::Output

The resulting type after applying the + operator.
Source§

fn add(self, other: f128) -> <f128 as Add<f128>>::Output

Performs the + operation. Read more
1.0.0 (const: unstable) · Source§

impl Add for f128

Source§

type Output = f128

The resulting type after applying the + operator.
Source§

fn add(self, other: f128) -> f128

Performs the + operation. Read more
1.22.0 (const: unstable) · Source§

impl AddAssign<&f128> for f128

Source§

fn add_assign(&mut self, other: &f128)

Performs the += operation. Read more
1.8.0 (const: unstable) · Source§

impl AddAssign for f128

Source§

fn add_assign(&mut self, other: f128)

Performs the += operation. Read more
1.0.0 (const: unstable) · Source§

impl Clone for f128

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)
where Self:,

Performs copy-assignment from source. Read more
1.0.0 (const: unstable) · Source§

impl Default for f128

Source§

fn default() -> f128

Returns the default value of 0.0

1.0.0 (const: unstable) · Source§

impl Div<&f128> for &f128

Source§

type Output = <f128 as Div>::Output

The resulting type after applying the / operator.
Source§

fn div(self, other: &f128) -> <f128 as Div<f128>>::Output

Performs the / operation. Read more
1.0.0 (const: unstable) · Source§

impl Div<&f128> for f128

Source§

type Output = <f128 as Div>::Output

The resulting type after applying the / operator.
Source§

fn div(self, other: &f128) -> <f128 as Div<f128>>::Output

Performs the / operation. Read more
1.0.0 (const: unstable) · Source§

impl Div<f128> for &f128

Source§

type Output = <f128 as Div>::Output

The resulting type after applying the / operator.
Source§

fn div(self, other: f128) -> <f128 as Div<f128>>::Output

Performs the / operation. Read more
1.0.0 (const: unstable) · Source§

impl Div for f128

Source§

type Output = f128

The resulting type after applying the / operator.
Source§

fn div(self, other: f128) -> f128

Performs the / operation. Read more
1.22.0 (const: unstable) · Source§

impl DivAssign<&f128> for f128

Source§

fn div_assign(&mut self, other: &f128)

Performs the /= operation. Read more
1.8.0 (const: unstable) · Source§

impl DivAssign for f128

Source§

fn div_assign(&mut self, other: f128)

Performs the /= operation. Read more
1.0.0 (const: unstable) · Source§

impl Mul<&f128> for &f128

Source§

type Output = <f128 as Mul>::Output

The resulting type after applying the * operator.
Source§

fn mul(self, other: &f128) -> <f128 as Mul<f128>>::Output

Performs the * operation. Read more
1.0.0 (const: unstable) · Source§

impl Mul<&f128> for f128

Source§

type Output = <f128 as Mul>::Output

The resulting type after applying the * operator.
Source§

fn mul(self, other: &f128) -> <f128 as Mul<f128>>::Output

Performs the * operation. Read more
1.0.0 (const: unstable) · Source§

impl Mul<f128> for &f128

Source§

type Output = <f128 as Mul>::Output

The resulting type after applying the * operator.
Source§

fn mul(self, other: f128) -> <f128 as Mul<f128>>::Output

Performs the * operation. Read more
1.0.0 (const: unstable) · Source§

impl Mul for f128

Source§

type Output = f128

The resulting type after applying the * operator.
Source§

fn mul(self, other: f128) -> f128

Performs the * operation. Read more
1.22.0 (const: unstable) · Source§

impl MulAssign<&f128> for f128

Source§

fn mul_assign(&mut self, other: &f128)

Performs the *= operation. Read more
1.8.0 (const: unstable) · Source§

impl MulAssign for f128

Source§

fn mul_assign(&mut self, other: f128)

Performs the *= operation. Read more
1.0.0 (const: unstable) · Source§

impl Neg for &f128

Source§

type Output = <f128 as Neg>::Output

The resulting type after applying the - operator.
Source§

fn neg(self) -> <f128 as Neg>::Output

Performs the unary - operation. Read more
1.0.0 (const: unstable) · Source§

impl Neg for f128

Source§

type Output = f128

The resulting type after applying the - operator.
Source§

fn neg(self) -> f128

Performs the unary - operation. Read more
1.0.0 (const: unstable) · Source§

impl PartialEq for f128

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
Source§

fn ne(&self, other: &Self) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
1.0.0 (const: unstable) · Source§

impl PartialOrd for f128

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
Source§

fn lt(&self, other: &Self) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
Source§

fn le(&self, other: &Self) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
Source§

fn gt(&self, other: &Self) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
Source§

fn ge(&self, other: &Self) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
1.0.0 (const: unstable) · Source§

impl Rem<&f128> for &f128

Source§

type Output = <f128 as Rem>::Output

The resulting type after applying the % operator.
Source§

fn rem(self, other: &f128) -> <f128 as Rem<f128>>::Output

Performs the % operation. Read more
1.0.0 (const: unstable) · Source§

impl Rem<&f128> for f128

Source§

type Output = <f128 as Rem>::Output

The resulting type after applying the % operator.
Source§

fn rem(self, other: &f128) -> <f128 as Rem<f128>>::Output

Performs the % operation. Read more
1.0.0 (const: unstable) · Source§

impl Rem<f128> for &f128

Source§

type Output = <f128 as Rem>::Output

The resulting type after applying the % operator.
Source§

fn rem(self, other: f128) -> <f128 as Rem<f128>>::Output

Performs the % operation. Read more
1.0.0 (const: unstable) · Source§

impl Rem for f128

The remainder from the division of two floats.

The remainder has the same sign as the dividend and is computed as: x - (x / y).trunc() * y.

§Examples

let x: f32 = 50.50;
let y: f32 = 8.125;
let remainder = x - (x / y).trunc() * y;

// The answer to both operations is 1.75
assert_eq!(x % y, remainder);
Source§

type Output = f128

The resulting type after applying the % operator.
Source§

fn rem(self, other: f128) -> f128

Performs the % operation. Read more
1.22.0 (const: unstable) · Source§

impl RemAssign<&f128> for f128

Source§

fn rem_assign(&mut self, other: &f128)

Performs the %= operation. Read more
1.8.0 (const: unstable) · Source§

impl RemAssign for f128

Source§

fn rem_assign(&mut self, other: f128)

Performs the %= operation. Read more
1.0.0 (const: unstable) · Source§

impl Sub<&f128> for &f128

Source§

type Output = <f128 as Sub>::Output

The resulting type after applying the - operator.
Source§

fn sub(self, other: &f128) -> <f128 as Sub<f128>>::Output

Performs the - operation. Read more
1.0.0 (const: unstable) · Source§

impl Sub<&f128> for f128

Source§

type Output = <f128 as Sub>::Output

The resulting type after applying the - operator.
Source§

fn sub(self, other: &f128) -> <f128 as Sub<f128>>::Output

Performs the - operation. Read more
1.0.0 (const: unstable) · Source§

impl Sub<f128> for &f128

Source§

type Output = <f128 as Sub>::Output

The resulting type after applying the - operator.
Source§

fn sub(self, other: f128) -> <f128 as Sub<f128>>::Output

Performs the - operation. Read more
1.0.0 (const: unstable) · Source§

impl Sub for f128

Source§

type Output = f128

The resulting type after applying the - operator.
Source§

fn sub(self, other: f128) -> f128

Performs the - operation. Read more
1.22.0 (const: unstable) · Source§

impl SubAssign<&f128> for f128

Source§

fn sub_assign(&mut self, other: &f128)

Performs the -= operation. Read more
1.8.0 (const: unstable) · Source§

impl SubAssign for f128

Source§

fn sub_assign(&mut self, other: f128)

Performs the -= operation. Read more
1.0.0 · Source§

impl Copy for f128