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
type Vi32: SimdIntVector<Self, Element = i32> + SimdSignedVector<Self> + SimdIntegerDivision<i32> + SimdIntoBits<Self, Self::Vu32> + SimdFromBits<Self, Self::Vu32>
[src]
type Vi32: SimdIntVector<Self, Element = i32> + SimdSignedVector<Self> + SimdIntegerDivision<i32> + SimdIntoBits<Self, Self::Vu32> + SimdFromBits<Self, Self::Vu32>
[src]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.
type Vi64: SimdIntVector<Self, Element = i64> + SimdSignedVector<Self> + SimdIntegerDivision<i64> + SimdIntoBits<Self, Self::Vu64> + SimdFromBits<Self, Self::Vu64>
[src]
type Vi64: SimdIntVector<Self, Element = i64> + SimdSignedVector<Self> + SimdIntegerDivision<i64> + SimdIntoBits<Self, Self::Vu64> + SimdFromBits<Self, Self::Vu64>
[src]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.
type Vu32: SimdIntVector<Self, Element = u32> + SimdUnsignedIntVector<Self> + SimdIntegerDivision<u32>
[src]
type Vu32: SimdIntVector<Self, Element = u32> + SimdUnsignedIntVector<Self> + SimdIntegerDivision<u32>
[src]32-bit unsigned integer vector
type Vu64: SimdIntVector<Self, Element = u64> + SimdUnsignedIntVector<Self> + SimdIntegerDivision<u64>
[src]
type Vu64: SimdIntVector<Self, Element = u64> + SimdUnsignedIntVector<Self> + SimdIntegerDivision<u64>
[src]64-bit unsigned integer vector
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>
[src]
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>
[src]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.
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>
[src]
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>
[src]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.