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§

Required Associated Constants§

Required Methods§

source

fn try_new() -> Option<Self>

source

fn vectorize<F: NullaryFnOnce>(self, f: F) -> F::Output

source

fn add(self, lhs: Acc, rhs: Acc) -> Acc

source

fn mult(self, lhs: Acc, rhs: Acc) -> Acc

source

fn mult_add(self, lhs: Acc, rhs: Acc, acc: Acc) -> Acc

source

fn from_lhs(self, lhs: Lhs) -> Acc

source

fn from_rhs(self, rhs: Rhs) -> Acc

source

fn from_dst(self, dst: Dst) -> Acc

source

fn into_dst(self, acc: Acc) -> Dst

source

fn simd_mul(self, lhs: Self::AccN, rhs: Self::AccN) -> Self::AccN

source

fn simd_add(self, lhs: Self::AccN, rhs: Self::AccN) -> Self::AccN

source

fn simd_mult_add( self, lhs: Self::AccN, rhs: Self::AccN, acc: Self::AccN ) -> Self::AccN

source

fn simd_from_lhs(self, lhs: Self::LhsN) -> Self::AccN

source

fn simd_from_rhs(self, rhs: Self::RhsN) -> Self::AccN

source

fn simd_splat(self, lhs: Acc) -> Self::AccN

source

fn simd_from_dst(self, dst: Self::DstN) -> Self::AccN

source

fn simd_into_dst(self, acc: Self::AccN) -> Self::DstN

Object Safety§

This trait is not object safe.

Implementors§

source§

impl MixedSimd<f32, f32, f32, f32> for Scalar

source§

const SIMD_WIDTH: usize = 1usize

§

type LhsN = f32

§

type RhsN = f32

§

type DstN = f32

§

type AccN = f32

source§

impl MixedSimd<f32, f32, f32, f32> for V3

source§

const SIMD_WIDTH: usize = 8usize

§

type LhsN = [f32; 8]

§

type RhsN = [f32; 8]

§

type DstN = [f32; 8]

§

type AccN = [f32; 8]

source§

impl MixedSimd<f64, f64, f64, f64> for Scalar

source§

const SIMD_WIDTH: usize = 1usize

§

type LhsN = f64

§

type RhsN = f64

§

type DstN = f64

§

type AccN = f64

source§

impl MixedSimd<f64, f64, f64, f64> for V3

source§

const SIMD_WIDTH: usize = 4usize

§

type LhsN = [f64; 4]

§

type RhsN = [f64; 4]

§

type DstN = [f64; 4]

§

type AccN = [f64; 4]

source§

impl MixedSimd<f16, f16, f16, f32> for Scalar

source§

const SIMD_WIDTH: usize = 1usize

§

type LhsN = f16

§

type RhsN = f16

§

type DstN = f16

§

type AccN = f32

source§

impl MixedSimd<f16, f16, f16, f32> for V3

source§

const SIMD_WIDTH: usize = 8usize

§

type LhsN = [f16; 8]

§

type RhsN = [f16; 8]

§

type DstN = [f16; 8]

§

type AccN = [f32; 8]

source§

impl MixedSimd<f16, f16, f16, f32> for V3Half

source§

const SIMD_WIDTH: usize = 4usize

§

type LhsN = [f16; 4]

§

type RhsN = [f16; 4]

§

type DstN = [f16; 4]

§

type AccN = [f32; 4]

source§

impl MixedSimd<Complex<f32>, Complex<f32>, Complex<f32>, Complex<f32>> for Scalar

source§

impl MixedSimd<Complex<f32>, Complex<f32>, Complex<f32>, Complex<f32>> for V3

source§

const SIMD_WIDTH: usize = 4usize

§

type LhsN = [Complex<f32>; 4]

§

type RhsN = [Complex<f32>; 4]

§

type DstN = [Complex<f32>; 4]

§

type AccN = [Complex<f32>; 4]

source§

impl MixedSimd<Complex<f64>, Complex<f64>, Complex<f64>, Complex<f64>> for Scalar

source§

impl MixedSimd<Complex<f64>, Complex<f64>, Complex<f64>, Complex<f64>> for V3

source§

const SIMD_WIDTH: usize = 2usize

§

type LhsN = [Complex<f64>; 2]

§

type RhsN = [Complex<f64>; 2]

§

type DstN = [Complex<f64>; 2]

§

type AccN = [Complex<f64>; 2]