easy_ml/differentiation/
operations.rs

1/*!
2 * Other operator related implementations for the differentiation module
3 *
4 * These implementations are written here but Rust docs will display them on their implemented
5 * types.
6 */
7
8use crate::differentiation::Primitive;
9use std::num::{Saturating, Wrapping};
10
11macro_rules! impl_primitive {
12    ($T:tt) => {
13        impl Primitive for $T {}
14    };
15}
16
17impl_primitive!(u8);
18impl_primitive!(i8);
19impl_primitive!(u16);
20impl_primitive!(i16);
21impl_primitive!(u32);
22impl_primitive!(i32);
23impl_primitive!(u64);
24impl_primitive!(i64);
25impl_primitive!(u128);
26impl_primitive!(i128);
27impl_primitive!(f32);
28impl_primitive!(f64);
29impl_primitive!(usize);
30impl_primitive!(isize);
31
32impl<T: Primitive> Primitive for Wrapping<T> {}
33impl<T: Primitive> Primitive for Saturating<T> {}