Trait guff_matrix::Simd [−][src]
pub trait Simd { type E: Display; type V; const SIMD_BYTES: usize; fn zero_vector() -> Self; fn cross_product(a: Self, b: Self) -> Self; unsafe fn sum_across_n(
m0: Self,
m1: Self,
n: usize,
off: usize
) -> (Self::E, Self); fn zero_element() -> Self::E; fn add_elements(a: Self::E, b: Self::E) -> Self::E; unsafe fn read_next(
mod_index: &mut usize,
array_index: &mut usize,
array: &[Self::E],
size: usize,
ra_size: &mut usize,
ra: &mut Self
) -> Self
where
Self: Sized; unsafe fn from_ptr(ptr: *const Self::E) -> Self
where
Self: Sized; fn cross_product_slices(
dest: &mut [Self::E],
av: &[Self::E],
bv: &[Self::E]
); }
Expand description
SIMD support, based on simulator
module
This trait will be in main module and will have to be implemented for each architecture
Associated Types
Associated Constants
const SIMD_BYTES: usize
Required methods
fn zero_vector() -> Self
fn cross_product(a: Self, b: Self) -> Self
fn zero_element() -> Self::E
fn add_elements(a: Self::E, b: Self::E) -> Self::E
unsafe fn read_next(
mod_index: &mut usize,
array_index: &mut usize,
array: &[Self::E],
size: usize,
ra_size: &mut usize,
ra: &mut Self
) -> Self where
Self: Sized,
load from memory (useful for testing, benchmarking)