Skip to main content

MixedSimd

Trait 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 Constants§

Required Associated Types§

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

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§

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§

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

Available on crate feature f16 only.
Source§

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

Available on crate feature f16 only.
Source§

const SIMD_WIDTH: usize = 8

Source§

type LhsN = [f16; 8]

Source§

type RhsN = [f16; 8]

Source§

type DstN = [f16; 8]

Source§

type AccN = [f32; 8]

Source§

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

Available on crate feature f16 only.
Source§

const SIMD_WIDTH: usize = 4

Source§

type LhsN = [f16; 4]

Source§

type RhsN = [f16; 4]

Source§

type DstN = [f16; 4]

Source§

type AccN = [f32; 4]

Source§

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

Source§

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

Source§

const SIMD_WIDTH: usize = 8

Source§

type LhsN = [f32; 8]

Source§

type RhsN = [f32; 8]

Source§

type DstN = [f32; 8]

Source§

type AccN = [f32; 8]

Source§

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

Source§

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

Source§

const SIMD_WIDTH: usize = 4

Source§

type LhsN = [f64; 4]

Source§

type RhsN = [f64; 4]

Source§

type DstN = [f64; 4]

Source§

type AccN = [f64; 4]