native_neural_network 0.3.1

Lib no_std Rust for native neural network (.rnn)
Documentation
use super::ActivationKind;

pub fn apply_activation_slice_f32(kind: ActivationKind, input: &[f32], out: &mut [f32]) -> bool {
    if out.len() < input.len() {
        return false;
    }
    for i in 0..input.len() {
        out[i] = kind.apply(input[i]);
    }
    true
}

pub fn activation_lut_f32(kind: ActivationKind, start: f32, step: f32, out: &mut [f32]) -> bool {
    if !start.is_finite() || !step.is_finite() {
        return false;
    }
    for (i, v) in out.iter_mut().enumerate() {
        *v = kind.apply(start + step * i as f32);
    }
    true
}

pub fn apply_activation_slice_f64(kind: ActivationKind, input: &[f64], out: &mut [f64]) -> bool {
    if out.len() < input.len() {
        return false;
    }
    for i in 0..input.len() {
        out[i] = kind.apply_f64(input[i]);
    }
    true
}

pub fn activation_lut_f64(kind: ActivationKind, start: f64, step: f64, out: &mut [f64]) -> bool {
    if !start.is_finite() || !step.is_finite() {
        return false;
    }
    for (i, v) in out.iter_mut().enumerate() {
        *v = kind.apply_f64(start + step * i as f64);
    }
    true
}