[][src]Struct safe_arch::m128d

#[repr(transparent)]pub struct m128d(pub __m128d);

The data for a 128-bit SSE register of two f64 values.

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

Implementations

impl m128d[src]

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

Transmutes the m128d 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; 2]) -> Self[src]

Transmutes an array into m128d.

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

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

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

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

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

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

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

Trait Implementations

impl Add<m128d> for m128d[src]

type Output = Self

The resulting type after applying the + operator.

impl AddAssign<m128d> for m128d[src]

impl Binary for m128d[src]

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

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

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

impl BitAnd<m128d> for m128d[src]

type Output = Self

The resulting type after applying the & operator.

impl BitAndAssign<m128d> for m128d[src]

impl BitOr<m128d> for m128d[src]

type Output = Self

The resulting type after applying the | operator.

impl BitOrAssign<m128d> for m128d[src]

impl BitXor<m128d> for m128d[src]

type Output = Self

The resulting type after applying the ^ operator.

impl BitXorAssign<m128d> for m128d[src]

impl Clone for m128d[src]

impl Copy for m128d[src]

impl Debug for m128d[src]

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

Debug formats each double.

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

impl Default for m128d[src]

impl Display for m128d[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!("{}", m128d::default());
assert_eq!(&f, "(0, 0)");

impl Div<m128d> for m128d[src]

type Output = Self

The resulting type after applying the / operator.

impl DivAssign<m128d> for m128d[src]

impl From<[f64; 2]> for m128d[src]

impl From<m128d> for [f64; 2][src]

impl LowerExp for m128d[src]

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

LowerExp formats each double.

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

impl LowerHex for m128d[src]

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

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

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

impl Mul<m128d> for m128d[src]

type Output = Self

The resulting type after applying the * operator.

impl MulAssign<m128d> for m128d[src]

impl Neg for m128d[src]

type Output = Self

The resulting type after applying the - operator.

impl Not for m128d[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 m128d[src]

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

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

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

impl PartialEq<m128d> for m128d[src]

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

Not a direct intrinsic, this is a cmp_eq_mask and then a move_mask.

impl Pod for m128d[src]

impl Sub<m128d> for m128d[src]

type Output = Self

The resulting type after applying the - operator.

impl SubAssign<m128d> for m128d[src]

impl TransparentWrapper<__m128d> for m128d[src]

impl UpperExp for m128d[src]

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

UpperExp formats each double.

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

impl UpperHex for m128d[src]

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

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

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

impl Zeroable for m128d[src]

Auto Trait Implementations

impl Send for m128d

impl Sync for m128d

impl Unpin for m128d

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.