tract-linalg 0.23.7

Tiny, no-nonsense, self contained, TensorFlow and ONNX inference
Documentation
#![allow(clippy::excessive_precision)]
use tract_data::internal::*;
use tract_num_traits::Zero;

routine_ew_rust!(generic;
    f32,
    generic_leaky_relu_f32_4n,
    4,
    4,
    fn run(x: &mut [f32], alpha: f32) {
        debug_assert!(x.len() % Self::nr() == 0);
        debug_assert!(x.as_ptr() as usize % Self::alignment_bytes() == 0);
        x.iter_mut().for_each(|px| *px = if *px < 0. { *px * alpha } else { *px });
    },
    func(LeakyRelu),
    param
);

routine_ew_rust!(generic;
    f16,
    generic_leaky_relu_f16_8n,
    8,
    8,
    fn run(x: &mut [f16], alpha: f16) {
        debug_assert!(x.len() % Self::nr() == 0);
        debug_assert!(x.as_ptr() as usize % Self::alignment_bytes() == 0);
        x.iter_mut().for_each(|px| *px = if *px < f16::zero() { *px * alpha } else { *px })
    },
    func(LeakyRelu),
    param
);