Skip to main content

SIMDMulAdd

Trait SIMDMulAdd 

Source
pub trait SIMDMulAdd {
    // Required method
    fn mul_add_simd(self, rhs: Self, accumulator: Self) -> Self;
}
Expand description

Efficiently perform the operation

self * rhs + accumulator

with the following semantics dependent on the associated scalar type.

  • floating point: Perform a fused multiply-add, implementing the operation with only a single rounding instance.

  • integer: Perform the multiplication followed by the accumulation. Both binary operations will be performed using wrap-around arithmetic.

Required Methods§

Source

fn mul_add_simd(self, rhs: Self, accumulator: Self) -> Self

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::f32x4_::f32x4

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::f32x4_::f32x4

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::f32x8_::f32x8

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::f32x8_::f32x8

Source§

impl SIMDMulAdd for f32x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::i8x16_::i8x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::i8x16_::i8x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::i8x32_::i8x32

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::i8x32_::i8x32

Source§

impl SIMDMulAdd for i8x64

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::i16x8_::i16x8

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::i16x8_::i16x8

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::i16x16_::i16x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::i16x16_::i16x16

Source§

impl SIMDMulAdd for i16x32

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::i32x4_::i32x4

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::i32x4_::i32x4

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::i32x8_::i32x8

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::i32x8_::i32x8

Source§

impl SIMDMulAdd for i32x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::u8x16_::u8x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::u8x16_::u8x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::u8x32_::u8x32

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::u8x32_::u8x32

Source§

impl SIMDMulAdd for u8x64

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::u32x4_::u32x4

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::u32x4_::u32x4

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::u32x8_::u32x8

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::u32x8_::u32x8

Source§

impl SIMDMulAdd for u32x16

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::u64x2_::u64x2

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::u64x2_::u64x2

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v3::u64x4_::u64x4

Source§

impl SIMDMulAdd for diskann_wide::arch::x86_64::v4::u64x4_::u64x4

Source§

impl<T, const N: usize, A> SIMDMulAdd for Emulated<T, N, A>
where T: ReferenceScalarOps,

MulAdd