native_neural_network_std 0.2.1

Ergonomic std wrapper for the `native_neural_network` crate (no_std) — std-friendly re-exports and utilities.
Documentation
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum GradientStdError {
    Empty,
    InvalidThreshold,
}

impl From<native_neural_network::gradients::GradientError> for GradientStdError {
    fn from(e: native_neural_network::gradients::GradientError) -> Self {
        match e {
            native_neural_network::gradients::GradientError::Empty => GradientStdError::Empty,
            native_neural_network::gradients::GradientError::InvalidThreshold => {
                GradientStdError::InvalidThreshold
            }
        }
    }
}

pub fn l2_norm(values: &[f32]) -> Result<f32, GradientStdError> {
    native_neural_network::gradients::l2_norm_f32(values).map_err(|e| e.into())
}

pub fn clip_by_global_norm(values: &mut [f32], max_norm: f32) -> Result<f32, GradientStdError> {
    native_neural_network::gradients::clip_by_global_norm_f32(values, max_norm)
        .map_err(|e| e.into())
}

pub fn all_finite(values: &[f32]) -> bool {
    native_neural_network::gradients::all_finite_f32(values)
}

pub fn has_nan(values: &[f32]) -> bool {
    native_neural_network::gradients::has_nan_f32(values)
}

pub fn has_inf(values: &[f32]) -> bool {
    native_neural_network::gradients::has_inf_f32(values)
}

pub fn within_abs_bound(values: &[f32], bound: f32) -> bool {
    native_neural_network::gradients::within_abs_bound_f32(values, bound)
}