[−][src]Trait softfloat_wrapper::Float
arbitrary floting-point type
Examples
Float
can be used for generic functions.
use softfloat_wrapper::{Float, RoundingMode, F16, F32}; fn rsqrt<T: Float>(x: T) -> T { let ret = x.sqrt(RoundingMode::TiesToEven); let one = T::from_u8(1, RoundingMode::TiesToEven); one.div(ret, RoundingMode::TiesToEven) } let a = F16::from_bits(0x1234); let a = rsqrt(a); let a = F32::from_bits(0x12345678); let a = rsqrt(a);
Associated Types
Loading content...Associated Constants
pub const EXPONENT_BIT: Self::Payload
[src]
pub const FRACTION_BIT: Self::Payload
[src]
pub const SIGN_POS: usize
[src]
pub const EXPONENT_POS: usize
[src]
Required methods
pub fn set_payload(&mut self, x: Self::Payload)
[src]
pub fn from_bits(v: Self::Payload) -> Self
[src]
pub fn to_bits(&self) -> Self::Payload
[src]
pub fn bits(&self) -> Self::Payload
[src]
👎 Deprecated since 0.3.0:
Please use to_bits instead
pub fn add<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sub<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn mul<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn fused_mul_add<T: Borrow<Self>>(
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
[src]
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
pub fn div<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn rem<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sqrt(&self, rnd: RoundingMode) -> Self
[src]
pub fn eq<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn from_u32(x: u32, rnd: RoundingMode) -> Self
[src]
pub fn from_u64(x: u64, rnd: RoundingMode) -> Self
[src]
pub fn from_i32(x: i32, rnd: RoundingMode) -> Self
[src]
pub fn from_i64(x: i64, rnd: RoundingMode) -> Self
[src]
pub fn to_u32(&self, rnd: RoundingMode, exact: bool) -> u32
[src]
pub fn to_u64(&self, rnd: RoundingMode, exact: bool) -> u64
[src]
pub fn to_i32(&self, rnd: RoundingMode, exact: bool) -> i32
[src]
pub fn to_i64(&self, rnd: RoundingMode, exact: bool) -> i64
[src]
pub fn to_f16(&self, rnd: RoundingMode) -> F16
[src]
pub fn to_f32(&self, rnd: RoundingMode) -> F32
[src]
pub fn to_f64(&self, rnd: RoundingMode) -> F64
[src]
pub fn to_f128(&self, rnd: RoundingMode) -> F128
[src]
pub fn round_to_integral(&self, rnd: RoundingMode) -> Self
[src]
Provided methods
pub fn compare<T: Borrow<Self>>(&self, x: T) -> Option<Ordering>
[src]
pub fn from_u8(x: u8, rnd: RoundingMode) -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn from_u16(x: u16, rnd: RoundingMode) -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn from_i8(x: i8, rnd: RoundingMode) -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn from_i16(x: i16, rnd: RoundingMode) -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn neg(&self) -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn abs(&self) -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn sign(&self) -> Self::Payload
[src]
pub fn exponent(&self) -> Self::Payload
[src]
pub fn fraction(&self) -> Self::Payload
[src]
pub fn is_positive(&self) -> bool
[src]
pub fn is_positive_zero(&self) -> bool
[src]
pub fn is_positive_subnormal(&self) -> bool
[src]
pub fn is_positive_normal(&self) -> bool
[src]
pub fn is_positive_infinity(&self) -> bool
[src]
pub fn is_negative(&self) -> bool
[src]
pub fn is_negative_zero(&self) -> bool
[src]
pub fn is_negative_subnormal(&self) -> bool
[src]
pub fn is_negative_normal(&self) -> bool
[src]
pub fn is_negative_infinity(&self) -> bool
[src]
pub fn is_nan(&self) -> bool
[src]
pub fn is_zero(&self) -> bool
[src]
pub fn is_subnormal(&self) -> bool
[src]
pub fn set_sign(&mut self, x: Self::Payload)
[src]
pub fn set_exponent(&mut self, x: Self::Payload)
[src]
pub fn set_fraction(&mut self, x: Self::Payload)
[src]
pub fn positive_infinity() -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn positive_zero() -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn negative_infinity() -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn negative_zero() -> Self where
Self: Sized,
[src]
Self: Sized,
pub fn quiet_nan() -> Self where
Self: Sized,
[src]
Self: Sized,
Implementors
impl Float for F16
[src]
type Payload = u16
pub const EXPONENT_BIT: Self::Payload
[src]
pub const FRACTION_BIT: Self::Payload
[src]
pub const SIGN_POS: usize
[src]
pub const EXPONENT_POS: usize
[src]
pub fn set_payload(&mut self, x: Self::Payload)
[src]
pub fn from_bits(v: Self::Payload) -> Self
[src]
pub fn to_bits(&self) -> Self::Payload
[src]
pub fn bits(&self) -> Self::Payload
[src]
pub fn add<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sub<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn mul<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn fused_mul_add<T: Borrow<Self>>(
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
[src]
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
pub fn div<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn rem<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sqrt(&self, rnd: RoundingMode) -> Self
[src]
pub fn eq<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn from_u32(x: u32, rnd: RoundingMode) -> Self
[src]
pub fn from_u64(x: u64, rnd: RoundingMode) -> Self
[src]
pub fn from_i32(x: i32, rnd: RoundingMode) -> Self
[src]
pub fn from_i64(x: i64, rnd: RoundingMode) -> Self
[src]
pub fn to_u32(&self, rnd: RoundingMode, exact: bool) -> u32
[src]
pub fn to_u64(&self, rnd: RoundingMode, exact: bool) -> u64
[src]
pub fn to_i32(&self, rnd: RoundingMode, exact: bool) -> i32
[src]
pub fn to_i64(&self, rnd: RoundingMode, exact: bool) -> i64
[src]
pub fn to_f16(&self, _rnd: RoundingMode) -> F16
[src]
pub fn to_f32(&self, rnd: RoundingMode) -> F32
[src]
pub fn to_f64(&self, rnd: RoundingMode) -> F64
[src]
pub fn to_f128(&self, rnd: RoundingMode) -> F128
[src]
pub fn round_to_integral(&self, rnd: RoundingMode) -> Self
[src]
impl Float for F32
[src]
type Payload = u32
pub const EXPONENT_BIT: Self::Payload
[src]
pub const FRACTION_BIT: Self::Payload
[src]
pub const SIGN_POS: usize
[src]
pub const EXPONENT_POS: usize
[src]
pub fn set_payload(&mut self, x: Self::Payload)
[src]
pub fn from_bits(v: Self::Payload) -> Self
[src]
pub fn to_bits(&self) -> Self::Payload
[src]
pub fn bits(&self) -> Self::Payload
[src]
pub fn add<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sub<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn mul<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn fused_mul_add<T: Borrow<Self>>(
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
[src]
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
pub fn div<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn rem<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sqrt(&self, rnd: RoundingMode) -> Self
[src]
pub fn eq<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn from_u32(x: u32, rnd: RoundingMode) -> Self
[src]
pub fn from_u64(x: u64, rnd: RoundingMode) -> Self
[src]
pub fn from_i32(x: i32, rnd: RoundingMode) -> Self
[src]
pub fn from_i64(x: i64, rnd: RoundingMode) -> Self
[src]
pub fn to_u32(&self, rnd: RoundingMode, exact: bool) -> u32
[src]
pub fn to_u64(&self, rnd: RoundingMode, exact: bool) -> u64
[src]
pub fn to_i32(&self, rnd: RoundingMode, exact: bool) -> i32
[src]
pub fn to_i64(&self, rnd: RoundingMode, exact: bool) -> i64
[src]
pub fn to_f16(&self, rnd: RoundingMode) -> F16
[src]
pub fn to_f32(&self, _rnd: RoundingMode) -> F32
[src]
pub fn to_f64(&self, rnd: RoundingMode) -> F64
[src]
pub fn to_f128(&self, rnd: RoundingMode) -> F128
[src]
pub fn round_to_integral(&self, rnd: RoundingMode) -> Self
[src]
impl Float for F64
[src]
type Payload = u64
pub const EXPONENT_BIT: Self::Payload
[src]
pub const FRACTION_BIT: Self::Payload
[src]
pub const SIGN_POS: usize
[src]
pub const EXPONENT_POS: usize
[src]
pub fn set_payload(&mut self, x: Self::Payload)
[src]
pub fn from_bits(v: Self::Payload) -> Self
[src]
pub fn to_bits(&self) -> Self::Payload
[src]
pub fn bits(&self) -> Self::Payload
[src]
pub fn add<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sub<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn mul<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn fused_mul_add<T: Borrow<Self>>(
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
[src]
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
pub fn div<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn rem<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sqrt(&self, rnd: RoundingMode) -> Self
[src]
pub fn eq<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn lt_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn le_quiet<T: Borrow<Self>>(&self, x: T) -> bool
[src]
pub fn from_u32(x: u32, rnd: RoundingMode) -> Self
[src]
pub fn from_u64(x: u64, rnd: RoundingMode) -> Self
[src]
pub fn from_i32(x: i32, rnd: RoundingMode) -> Self
[src]
pub fn from_i64(x: i64, rnd: RoundingMode) -> Self
[src]
pub fn to_u32(&self, rnd: RoundingMode, exact: bool) -> u32
[src]
pub fn to_u64(&self, rnd: RoundingMode, exact: bool) -> u64
[src]
pub fn to_i32(&self, rnd: RoundingMode, exact: bool) -> i32
[src]
pub fn to_i64(&self, rnd: RoundingMode, exact: bool) -> i64
[src]
pub fn to_f16(&self, rnd: RoundingMode) -> F16
[src]
pub fn to_f32(&self, rnd: RoundingMode) -> F32
[src]
pub fn to_f64(&self, _rnd: RoundingMode) -> F64
[src]
pub fn to_f128(&self, rnd: RoundingMode) -> F128
[src]
pub fn round_to_integral(&self, rnd: RoundingMode) -> Self
[src]
impl Float for F128
[src]
type Payload = u128
pub const EXPONENT_BIT: Self::Payload
[src]
pub const FRACTION_BIT: Self::Payload
[src]
pub const SIGN_POS: usize
[src]
pub const EXPONENT_POS: usize
[src]
pub fn set_payload(&mut self, x: Self::Payload)
[src]
pub fn from_bits(v: Self::Payload) -> Self
[src]
pub fn to_bits(&self) -> Self::Payload
[src]
pub fn bits(&self) -> Self::Payload
[src]
pub fn add<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn sub<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn mul<T: Borrow<Self>>(&self, x: T, rnd: RoundingMode) -> Self
[src]
pub fn fused_mul_add<T: Borrow<Self>>(
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self
[src]
&self,
x: T,
y: T,
rnd: RoundingMode
) -> Self