1mod math_traits;
2pub use math_traits::*;
3
4mod complex_traits;
5pub use complex_traits::*;
6
7pub trait MixedCeil
8{
9 fn mixed_ceil(&self) -> Self;
11}
12
13pub trait MixedFloor
14{
15 fn mixed_floor(&self) -> Self;
17}
18
19pub trait MixedNumConversion<T> {
20 fn mixed_from_num( number:T ) -> Self;
22 fn mixed_to_num( &self ) -> T;
24}
25
26pub trait MixedZero
27{
28 fn mixed_zero() -> Self;
30}
31
32pub trait MixedOne
33{
34 fn mixed_one() -> Self;
36}
37
38pub trait MixedPi
39{
40 fn mixed_pi() -> Self;
42 fn mixed_tau() -> Self;
43}
44
45pub trait MixedConsts
46 where Self: MixedPi + MixedZero + MixedOne
47{
48}
49
50pub trait MixedNum
51 where Self: core::cmp::PartialOrd
52 + core::marker::Sized
53 + Copy
54 + Clone
55{
56}
57
58pub trait MixedReal
59 where Self: MixedNum
60 + MixedNumConversion<u32> + MixedNumConversion<u64>
61 + MixedNumConversion<i32> + MixedNumConversion<i64>
62 + MixedNumConversion<f32> + MixedNumConversion<f64>
63{
64 fn mixed_max_value() -> Self;
66 fn mixed_min_value() -> Self;
68 fn mixed_sign( &self ) -> Self;
71 fn mixed_is_positive( &self ) -> bool;
73 fn mixed_is_negative( &self ) -> bool;
75}
76
77pub trait MixedComplex
78{
79
80}
81
82pub trait MixedNumSigned
83 where Self: core::ops::Neg<Output = Self>
84{
85}