SimdBaseIo

Trait SimdBaseIo 

Source
pub trait SimdBaseIo: SimdConsts {
Show 19 methods // Required methods fn zeroes() -> Self; fn set1(x: Self::Scalar) -> Self; unsafe fn load_from_array(array: Self::ArrayRepresentation) -> Self; unsafe fn load_from_ptr_unaligned(ptr: *const Self::Scalar) -> Self; unsafe fn copy_to_ptr_unaligned(self, ptr: *mut Self::Scalar); unsafe fn load_from_ptr_aligned(ptr: *const Self::Scalar) -> Self; unsafe fn copy_to_ptr_aligned(self, ptr: *mut Self::Scalar); unsafe fn underlying_value(self) -> Self::UnderlyingType; unsafe fn underlying_value_mut(&mut self) -> &mut Self::UnderlyingType; unsafe fn from_underlying_value(value: Self::UnderlyingType) -> Self; // Provided methods unsafe fn transmute_into_array_ref(&self) -> &Self::ArrayRepresentation { ... } unsafe fn transmute_into_array_mut( &mut self, ) -> &mut Self::ArrayRepresentation { ... } unsafe fn as_array(&self) -> Self::ArrayRepresentation { ... } unsafe fn get_unchecked(&self, index: usize) -> Self::Scalar { ... } unsafe fn get_unchecked_mut<'a>( &mut self, index: usize, ) -> &'a mut Self::Scalar { ... } fn load_from_slice_exact(slice: &[Self::Scalar]) -> Result<Self, usize> { ... } fn load_from_slice(slice: &[Self::Scalar]) -> Self { ... } fn copy_to_slice_exact( self, slice: &mut [Self::Scalar], ) -> Result<(), usize> { ... } fn copy_to_slice(self, slice: &mut [Self::Scalar]) { ... }
}

Required Methods§

Source

fn zeroes() -> Self

Initialize a vector with all elements set to zero

Source

fn set1(x: Self::Scalar) -> Self

Initialize a vector with all elements set to the same value

Source

unsafe fn load_from_array(array: Self::ArrayRepresentation) -> Self

Source

unsafe fn load_from_ptr_unaligned(ptr: *const Self::Scalar) -> Self

Load a vector from an unaligned raw pointer.

Source

unsafe fn copy_to_ptr_unaligned(self, ptr: *mut Self::Scalar)

Store a vector to an unaligned raw pointer.

Source

unsafe fn load_from_ptr_aligned(ptr: *const Self::Scalar) -> Self

Load a vector from a 32 bit aligned raw pointer.

Source

unsafe fn copy_to_ptr_aligned(self, ptr: *mut Self::Scalar)

Store a vector to a 32 bit aligned raw pointer.

Source

unsafe fn underlying_value(self) -> Self::UnderlyingType

Source

unsafe fn underlying_value_mut(&mut self) -> &mut Self::UnderlyingType

Source

unsafe fn from_underlying_value(value: Self::UnderlyingType) -> Self

Provided Methods§

Source

unsafe fn transmute_into_array_ref(&self) -> &Self::ArrayRepresentation

Transmutes the vector into a array representation defined by Self::ArrayRepresentation. Please don’t use this function directly unless necessary.

Source

unsafe fn transmute_into_array_mut(&mut self) -> &mut Self::ArrayRepresentation

Transmutes the vector into a mutable array representation defined by Self::ArrayRepresentation. Please don’t use this function directly unless necessary.

Source

unsafe fn as_array(&self) -> Self::ArrayRepresentation

Source

unsafe fn get_unchecked(&self, index: usize) -> Self::Scalar

Gets the value at the specified index, without a bounds check.

Source

unsafe fn get_unchecked_mut<'a>(&mut self, index: usize) -> &'a mut Self::Scalar

Gets the value at the specified index, without a bounds check.

Source

fn load_from_slice_exact(slice: &[Self::Scalar]) -> Result<Self, usize>

Tries to load from a slice. If the slice is too short, it returns the length of the slice.

Source

fn load_from_slice(slice: &[Self::Scalar]) -> Self

Tries to load from a slice. If the slice is too short, it uses zeroes for the remaining values.

Source

fn copy_to_slice_exact(self, slice: &mut [Self::Scalar]) -> Result<(), usize>

Tries to copy to a slice. If the slice is too short, it returns the length of the slice.

Source

fn copy_to_slice(self, slice: &mut [Self::Scalar])

Tries to copy to a slice. If the slice is too short, it copies as much as possible until the end of the slice.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§