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
}