[][src]Struct safe_arch::m256d

#[repr(transparent)]pub struct m256d(pub __m256d);

The data for a 256-bit AVX register of four f64 values.

  • This is very similar to having [f64; 4]. The main difference is that it's aligned to 32 instead of just 4, and of course you can perform various intrinsic operations on it.

Implementations

impl m256d[src]

#[must_use]pub fn to_array(self) -> [f64; 4][src]

Transmutes the m256d to an array.

Same as m.into(), just lets you be more explicit about what's happening.

#[must_use]pub fn from_array(f: [f64; 4]) -> Self[src]

Transmutes an array into m256d.

Same as m256d::from(arr), it just lets you be more explicit about what's happening.

#[must_use]pub fn to_bits(self) -> [u64; 4][src]

Converts into the bit patterns of these doubles ([u64;4]).

Like f64::to_bits, but both lanes at once.

#[must_use]pub fn from_bits(bits: [u64; 4]) -> Self[src]

Converts from the bit patterns of these doubles ([u64;4]).

Like f64::from_bits, but both lanes at once.

Trait Implementations

impl Add<m256d> for m256d[src]

type Output = Self

The resulting type after applying the + operator.

impl AddAssign<m256d> for m256d[src]

impl Binary for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

Binary formats each double's bit pattern (via f64::to_bits).

let f = format!("{:b}", m256d::default());
assert_eq!(&f, "(0, 0)");

impl BitAnd<m256d> for m256d[src]

type Output = Self

The resulting type after applying the & operator.

impl BitAndAssign<m256d> for m256d[src]

impl BitOr<m256d> for m256d[src]

type Output = Self

The resulting type after applying the | operator.

impl BitOrAssign<m256d> for m256d[src]

impl BitXor<m256d> for m256d[src]

type Output = Self

The resulting type after applying the ^ operator.

impl BitXorAssign<m256d> for m256d[src]

impl Clone for m256d[src]

impl Copy for m256d[src]

impl Debug for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

Debug formats each double.

let f = format!("{:?}", m256d::default());
assert_eq!(&f, "m256d(0.0, 0.0)");

impl Default for m256d[src]

impl Display for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

Display formats each double, and leaves the type name off of the font.

let f = format!("{}", m256d::default());
assert_eq!(&f, "(0, 0)");

impl Div<m256d> for m256d[src]

type Output = Self

The resulting type after applying the / operator.

impl DivAssign<m256d> for m256d[src]

impl From<[f64; 4]> for m256d[src]

impl From<m256d> for [f64; 4][src]

impl LowerExp for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

LowerExp formats each double.

let f = format!("{:e}", m256d::default());
assert_eq!(&f, "(0e0, 0e0)");

impl LowerHex for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

LowerHex formats each double's bit pattern (via f64::to_bits).

let f = format!("{:x}", m256d::default());
assert_eq!(&f, "(0, 0)");

impl Mul<m256d> for m256d[src]

type Output = Self

The resulting type after applying the * operator.

impl MulAssign<m256d> for m256d[src]

impl Neg for m256d[src]

type Output = Self

The resulting type after applying the - operator.

impl Not for m256d[src]

type Output = Self

The resulting type after applying the ! operator.

#[must_use]fn not(self) -> Self[src]

Not a direct intrinsic, but it's very useful and the implementation is simple enough.

Negates the bits by performing an xor with an all-1s bit pattern.

impl Octal for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

Octal formats each double's bit pattern (via f64::to_bits).

let f = format!("{:o}", m256d::default());
assert_eq!(&f, "(0, 0)");

impl PartialEq<m256d> for m256d[src]

#[must_use]fn eq(&self, other: &Self) -> bool[src]

let a = m256d::from([1.0, 2.0, 3.0, 4.0]);
let b = m256d::from([5.0, 6.0, 7.0, 8.0]);
assert!(a == a);
assert!(a != b);

impl Pod for m256d[src]

impl Sub<m256d> for m256d[src]

type Output = Self

The resulting type after applying the - operator.

impl SubAssign<m256d> for m256d[src]

impl TransparentWrapper<__m256d> for m256d[src]

impl UpperExp for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

UpperExp formats each double.

let f = format!("{:E}", m256d::default());
assert_eq!(&f, "(0E0, 0E0)");

impl UpperHex for m256d[src]

fn fmt(&self, f: &mut Formatter) -> Result[src]

UpperHex formats each double's bit pattern (via f64::to_bits).

let f = format!("{:X}", m256d::default());
assert_eq!(&f, "(0, 0)");

impl Zeroable for m256d[src]

Auto Trait Implementations

impl Send for m256d

impl Sync for m256d

impl Unpin for m256d

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.