Trait thermite::Simd[][src]

pub trait Simd: 'static + Debug + Send + Sync + Clone + Copy + PartialEq + Eq {
    type Vi32: SimdIntVector<Self, Element = i32> + SimdSignedVector<Self> + SimdIntegerDivision<i32> + SimdIntoBits<Self, Self::Vu32> + SimdFromBits<Self, Self::Vu32>;
    type Vi64: SimdIntVector<Self, Element = i64> + SimdSignedVector<Self> + SimdIntegerDivision<i64> + SimdIntoBits<Self, Self::Vu64> + SimdFromBits<Self, Self::Vu64>;
    type Vu32: SimdIntVector<Self, Element = u32> + SimdUnsignedIntVector<Self> + SimdIntegerDivision<u32>;
    type Vu64: SimdIntVector<Self, Element = u64> + SimdUnsignedIntVector<Self> + SimdIntegerDivision<u64>;
    type Vf32: SimdFloatVector<Self, Element = f32, Vu = Self::Vu32, Vi = Self::Vi32> + SimdIntoBits<Self, Self::Vu32> + SimdFromBits<Self, Self::Vu32> + SimdFloatVectorConsts<Self> + SimdVectorizedMath<Self> + SimdVectorizedMathPolicied<Self>;
    type Vf64: SimdFloatVector<Self, Element = f64, Vu = Self::Vu64, Vi = Self::Vi64> + SimdIntoBits<Self, Self::Vu64> + SimdFromBits<Self, Self::Vu64> + SimdFloatVectorConsts<Self> + SimdVectorizedMath<Self> + SimdVectorizedMathPolicied<Self>;
    type Vusize: SimdIntVector<Self, Element = u64> + SimdPointer<Self, Element = u64>;
    type Visize: SimdIntVector<Self, Element = i64> + SimdSignedVector<Self>;

    const INSTRSET: SimdInstructionSet;
}
Expand description

SIMD Instruction set, contains all types

Take your time to look through this. All trait bounds contain methods and associated values which encapsulate all functionality for this crate.

Associated Types

32-bit signed integer vector

The From/Into bits traits allow it to be cast to Vu32 at zero-cost. Some methods, such as those in SimdUnsignedIntVector, are only available in unsigned vectors.

64-bit signed integer vector

The From/Into bits traits allow it to be cast to Vu64 at zero-cost. Some methods, such as those in SimdUnsignedIntVector, are only available in unsigned vectors.

32-bit unsigned integer vector

64-bit unsigned integer vector

Single-precision 32-bit floating point vector

Note that these already implement bitwise operations between each other, but it is possible to cast to Vu32 at zero-cost using the From/Into bits traits.

Double-precision 64-bit floating point vector

Note that these already implement bitwise operations between each other, but it is possible to cast to Vu64 at zero-cost using the From/Into bits traits.

Associated Constants

Implementors