1#![allow(non_camel_case_types)]
2
3#[cfg(feature = "use_nalgebra")]
4use nalgebra::{ Field, RealField, ComplexField, };
5#[cfg(feature = "use_nalgebra")]
6use simba::{
7 scalar::SubsetOf, simd::{ SimdValue, PrimitiveSimdValue, },
8};
9use hashed_type_def::HashedTypeDef;
10
11use approx::{ RelativeEq, UlpsEq, AbsDiffEq, };
12use serde::{ Serialize as SerdeSerialize, Deserialize as SerdeDeserialize, };
13#[cfg(feature = "be_silx")]
14use rend::BigEndian;
15#[cfg(not(feature = "be_silx"))]
16use rend::LittleEndian;
17use std::{ pin::Pin, fmt, fmt::{ Display, Debug, }, };
18pub use std::{
19 ops::{
20 Add, AddAssign, Div, DivAssign,
21 Mul, MulAssign, Neg, Rem, RemAssign, Sub, SubAssign,
22 Not, BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign, Shl, ShlAssign, Shr, ShrAssign,
23 },
24 iter::{Sum, Product,},
25 num::FpCategory, hash::{ Hash, Hasher, },
26};
27pub use num_traits::{
28 Num, Bounded, Float, FloatConst, AsPrimitive, FromPrimitive, NumCast, ToPrimitive, One, Zero, PrimInt,
29 CheckedAdd, CheckedDiv, CheckedMul, CheckedNeg, CheckedRem, CheckedShl, CheckedShr, CheckedSub, CheckedEuclid, Euclid,
30 Inv, MulAdd, MulAddAssign, Saturating, SaturatingAdd, SaturatingMul, SaturatingSub, WrappingAdd, WrappingMul, WrappingNeg,
31 WrappingShl, WrappingShr, WrappingSub, Pow, Signed, Unsigned,
32 one, zero, checked_pow, pow, abs, abs_sub, signum, bounds, cast, float, identities, int, ops, real, sign,
33};
34
35use silx_core::{ types::{DerefArch, DerefMutArch}, utils::ArchData, };
36use super::{
37 SlxFrom, SlxInto, macros::{
38 impl_num_char_type, impl_inc_int_type, impl_inc_num_type, impl_inc_signed_num_type, impl_inc_int_char_type, impl_inc_float_type,
39 },
40};
41
42pub type u8slx = u8;
44pub type i8slx = i8;
45impl_num_char_type! { u16slx-u16, u32slx-u32, u64slx-u64, u128slx-u128, i16slx-i16, i32slx-i32, i64slx-i64, i128slx-i128, f32slx-f32, f64slx-f64, char_slx-char,
47}
48
49impl_inc_int_type! { u16slx-u16slx-u16slx,
51 u32slx-u32slx-u32slx,
52 u64slx-u64slx-u64slx,
53 u128slx-u128slx-u128slx,
54 i16slx-i16slx-i16slx,
55 i32slx-i32slx-i32slx,
56 i64slx-i64slx-i64slx,
57 i128slx-i128slx-i128slx,
58}
59
60impl_inc_num_type! { u16slx-u16, u32slx-u32, u64slx-u64, u128slx-u128, i16slx-i16, i32slx-i32, i64slx-i64, i128slx-i128, f32slx-f32, f64slx-f64,
62}
63
64impl_inc_signed_num_type! { i16slx-i16, i32slx-i32, i64slx-i64, i128slx-i128, f32slx-f32, f64slx-f64,
66}
67
68impl_inc_int_char_type! { u16slx-u16, u32slx-u32, u64slx-u64, u128slx-u128,
70 i16slx-i16, i32slx-i32, i64slx-i64, i128slx-i128, char_slx-char,
71}
72
73impl_inc_float_type! { f32slx-f32, f64slx-f64,
75}