use crate::registry::InferenceRegistry;
mod data_ops;
mod elementwise;
mod linalg;
mod movement;
mod norm;
mod pooling;
mod selection;
mod sequence;
pub(crate) fn norm_axis(axis: i64, rank: usize) -> usize {
let r = rank as i64;
let a = if axis < 0 { axis + r } else { axis };
a.clamp(0, r.saturating_sub(1)) as usize
}
pub fn register_all(registry: &mut InferenceRegistry) {
elementwise::register(registry);
linalg::register(registry);
norm::register(registry);
movement::register(registry);
data_ops::register(registry);
pooling::register(registry);
selection::register(registry);
sequence::register(registry);
}