pub struct StridedMapSimd<'a, I, T: 'a, F, F2>where
I: 'a + IterGetSetSimd<Item = T>,{ /* private fields */ }Expand description
§StridedMapSimd
A structure representing a SIMD (Single Instruction, Multiple Data) version of the strided map operation.
This structure allows applying SIMD operations on tensors or arrays with strided memory layouts, optimizing performance for certain types of computations.
Implementations§
Source§impl<'a, I: 'a + IterGetSetSimd<Item = T>, T: 'a, F, F2> StridedMapSimd<'a, I, T, F, F2>
impl<'a, I: 'a + IterGetSetSimd<Item = T>, T: 'a, F, F2> StridedMapSimd<'a, I, T, F, F2>
Sourcepub fn collect<U>(self) -> Uwhere
F: Fn(T) -> U::Meta + Sync + Send + 'a,
F2: Fn(<I as IterGetSetSimd>::SimdItem) -> <<U as TensorCreator>::Meta as TypeCommon>::Vec + Sync + Send + 'a,
U: Clone + TensorInfo<U::Meta> + TensorCreator<Output = U>,
<I as IterGetSetSimd>::Item: Send,
<U as TensorCreator>::Meta: CommonBounds,
<<U as TensorCreator>::Meta as TypeCommon>::Vec: Send,
pub fn collect<U>(self) -> Uwhere
F: Fn(T) -> U::Meta + Sync + Send + 'a,
F2: Fn(<I as IterGetSetSimd>::SimdItem) -> <<U as TensorCreator>::Meta as TypeCommon>::Vec + Sync + Send + 'a,
U: Clone + TensorInfo<U::Meta> + TensorCreator<Output = U>,
<I as IterGetSetSimd>::Item: Send,
<U as TensorCreator>::Meta: CommonBounds,
<<U as TensorCreator>::Meta as TypeCommon>::Vec: Send,
Collects the results of applying the SIMD operations into a new tensor of type U.
This method applies two functions, f for individual elements and f2 for SIMD elements,
and collects the results into a new tensor of type U.
§Type Parameters
U: The type of the resulting tensor, which must implementTensorAllocandTensorInfo.
§Returns
A new tensor of type U containing the results of applying the functions.
Trait Implementations§
Source§impl<'a, I, T: Clone + 'a, F: Clone, F2: Clone> Clone for StridedMapSimd<'a, I, T, F, F2>where
I: 'a + IterGetSetSimd<Item = T> + Clone,
impl<'a, I, T: Clone + 'a, F: Clone, F2: Clone> Clone for StridedMapSimd<'a, I, T, F, F2>where
I: 'a + IterGetSetSimd<Item = T> + Clone,
Source§fn clone(&self) -> StridedMapSimd<'a, I, T, F, F2>
fn clone(&self) -> StridedMapSimd<'a, I, T, F, F2>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'a, I, T, F, F2> Freeze for StridedMapSimd<'a, I, T, F, F2>
impl<'a, I, T, F, F2> RefUnwindSafe for StridedMapSimd<'a, I, T, F, F2>
impl<'a, I, T, F, F2> Send for StridedMapSimd<'a, I, T, F, F2>
impl<'a, I, T, F, F2> Sync for StridedMapSimd<'a, I, T, F, F2>
impl<'a, I, T, F, F2> Unpin for StridedMapSimd<'a, I, T, F, F2>
impl<'a, I, T, F, F2> UnwindSafe for StridedMapSimd<'a, I, T, F, F2>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more