Trait gemm_common::simd::MixedSimd
source · pub unsafe trait MixedSimd<Lhs, Rhs, Dst, Acc>: Simd {
type LhsN: Boilerplate;
type RhsN: Boilerplate;
type DstN: Boilerplate;
type AccN: Boilerplate;
const SIMD_WIDTH: usize;
Show 17 methods
// Required methods
fn try_new() -> Option<Self>;
fn vectorize<F: NullaryFnOnce>(self, f: F) -> F::Output;
fn add(self, lhs: Acc, rhs: Acc) -> Acc;
fn mult(self, lhs: Acc, rhs: Acc) -> Acc;
fn mult_add(self, lhs: Acc, rhs: Acc, acc: Acc) -> Acc;
fn from_lhs(self, lhs: Lhs) -> Acc;
fn from_rhs(self, rhs: Rhs) -> Acc;
fn from_dst(self, dst: Dst) -> Acc;
fn into_dst(self, acc: Acc) -> Dst;
fn simd_mul(self, lhs: Self::AccN, rhs: Self::AccN) -> Self::AccN;
fn simd_add(self, lhs: Self::AccN, rhs: Self::AccN) -> Self::AccN;
fn simd_mult_add(
self,
lhs: Self::AccN,
rhs: Self::AccN,
acc: Self::AccN
) -> Self::AccN;
fn simd_from_lhs(self, lhs: Self::LhsN) -> Self::AccN;
fn simd_from_rhs(self, rhs: Self::RhsN) -> Self::AccN;
fn simd_splat(self, lhs: Acc) -> Self::AccN;
fn simd_from_dst(self, dst: Self::DstN) -> Self::AccN;
fn simd_into_dst(self, acc: Self::AccN) -> Self::DstN;
}
Required Associated Types§
type LhsN: Boilerplate
type RhsN: Boilerplate
type DstN: Boilerplate
type AccN: Boilerplate
Required Associated Constants§
const SIMD_WIDTH: usize
Required Methods§
fn try_new() -> Option<Self>
fn vectorize<F: NullaryFnOnce>(self, f: F) -> F::Output
fn add(self, lhs: Acc, rhs: Acc) -> Acc
fn mult(self, lhs: Acc, rhs: Acc) -> Acc
fn mult_add(self, lhs: Acc, rhs: Acc, acc: Acc) -> Acc
fn from_lhs(self, lhs: Lhs) -> Acc
fn from_rhs(self, rhs: Rhs) -> Acc
fn from_dst(self, dst: Dst) -> Acc
fn into_dst(self, acc: Acc) -> Dst
fn simd_mul(self, lhs: Self::AccN, rhs: Self::AccN) -> Self::AccN
fn simd_add(self, lhs: Self::AccN, rhs: Self::AccN) -> Self::AccN
fn simd_mult_add( self, lhs: Self::AccN, rhs: Self::AccN, acc: Self::AccN ) -> Self::AccN
fn simd_from_lhs(self, lhs: Self::LhsN) -> Self::AccN
fn simd_from_rhs(self, rhs: Self::RhsN) -> Self::AccN
fn simd_splat(self, lhs: Acc) -> Self::AccN
fn simd_from_dst(self, dst: Self::DstN) -> Self::AccN
fn simd_into_dst(self, acc: Self::AccN) -> Self::DstN
Object Safety§
This trait is not object safe.