Skip to main content

Bf16

Struct Bf16 

Source
pub struct Bf16(pub u16);
Expand description

Brain-float 16-bit floating-point type (bf16).

Stores a u16 that represents the upper 16 bits of an IEEE 754 f32. All arithmetic is performed by widening to f32, computing, then narrowing back – this ensures deterministic results regardless of hardware bf16 support.

§Determinism

Conversion uses truncation (not rounding) of the lower 16 mantissa bits, guaranteeing identical results across all platforms.

Tuple Fields§

§0: u16

Implementations§

Source§

impl Bf16

Source

pub fn from_f32(v: f32) -> Self

Convert f32 to bf16 by truncating lower 16 mantissa bits.

Source

pub fn to_f32(self) -> f32

Convert bf16 to f32 by shifting left 16 bits.

Source

pub fn add(self, rhs: Self) -> Self

Add two bf16 values (widen to f32, add, narrow back).

Source

pub fn sub(self, rhs: Self) -> Self

Subtract two bf16 values (widen to f32, subtract, narrow back).

Source

pub fn mul(self, rhs: Self) -> Self

Multiply two bf16 values (widen to f32, multiply, narrow back).

Source

pub fn div(self, rhs: Self) -> Self

Divide two bf16 values (widen to f32, divide, narrow back).

Source

pub fn neg(self) -> Self

Negate a bf16 value (widen to f32, negate, narrow back).

Trait Implementations§

Source§

impl Clone for Bf16

Source§

fn clone(&self) -> Bf16

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Bf16

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Bf16

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for Bf16

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Bf16

Source§

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

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

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Bf16

Source§

impl Eq for Bf16

Source§

impl StructuralPartialEq for Bf16

Auto Trait Implementations§

§

impl Freeze for Bf16

§

impl RefUnwindSafe for Bf16

§

impl Send for Bf16

§

impl Sync for Bf16

§

impl Unpin for Bf16

§

impl UnsafeUnpin for Bf16

§

impl UnwindSafe for Bf16

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.