| 10 */ |
10 */ |
| 11 |
11 |
| 12 //use trait_set::trait_set; |
12 //use trait_set::trait_set; |
| 13 pub use num_traits::Float as NumTraitsFloat; // needed to re-export functions. |
13 pub use num_traits::Float as NumTraitsFloat; // needed to re-export functions. |
| 14 pub use num_traits::cast::AsPrimitive; |
14 pub use num_traits::cast::AsPrimitive; |
| |
15 |
| |
16 pub use simba::scalar::{ |
| |
17 ClosedAdd, ClosedAddAssign, |
| |
18 ClosedSub, ClosedSubAssign, |
| |
19 ClosedMul, ClosedMulAssign, |
| |
20 ClosedDiv, ClosedDivAssign, |
| |
21 ClosedNeg |
| |
22 }; |
| 15 |
23 |
| 16 /// Typical integer type |
24 /// Typical integer type |
| 17 #[allow(non_camel_case_types)] |
25 #[allow(non_camel_case_types)] |
| 18 pub type int = i64; |
26 pub type int = i64; |
| 19 |
27 |
| 55 + std::fmt::Debug + std::fmt::Display + serde::Serialize |
63 + std::fmt::Debug + std::fmt::Display + serde::Serialize |
| 56 + CastFrom<u8> + CastFrom<u16> + CastFrom<u32> + CastFrom<u64> |
64 + CastFrom<u8> + CastFrom<u16> + CastFrom<u32> + CastFrom<u64> |
| 57 + CastFrom<u128> + CastFrom<usize> |
65 + CastFrom<u128> + CastFrom<usize> |
| 58 + CastFrom<i8> + CastFrom<i16> + CastFrom<i32> + CastFrom<i64> |
66 + CastFrom<i8> + CastFrom<i16> + CastFrom<i32> + CastFrom<i64> |
| 59 + CastFrom<i128> + CastFrom<isize> |
67 + CastFrom<i128> + CastFrom<isize> |
| 60 + CastFrom<f32> + CastFrom<f64> { |
68 + CastFrom<f32> + CastFrom<f64> |
| |
69 + crate::instance::Space { |
| 61 |
70 |
| 62 const ZERO : Self; |
71 const ZERO : Self; |
| 63 const ONE : Self; |
72 const ONE : Self; |
| 64 const TWO : Self; |
73 const TWO : Self; |
| 65 /// Generic version of `Self::MAX` |
74 /// Generic version of `Self::MAX` |
| 82 const E : Self; |
91 const E : Self; |
| 83 const EPSILON : Self; |
92 const EPSILON : Self; |
| 84 const SQRT_2 : Self; |
93 const SQRT_2 : Self; |
| 85 const INFINITY : Self; |
94 const INFINITY : Self; |
| 86 const NEG_INFINITY : Self; |
95 const NEG_INFINITY : Self; |
| |
96 const NAN : Self; |
| 87 const FRAC_2_SQRT_PI : Self; |
97 const FRAC_2_SQRT_PI : Self; |
| 88 } |
98 } |
| 89 |
99 |
| 90 /// Trait for integers |
100 /// Trait for integers |
| 91 pub trait Integer : Num + num::Integer {} |
101 pub trait Integer : Num + num::Integer {} |
| 131 const E : Self = std::f64::consts::E; |
141 const E : Self = std::f64::consts::E; |
| 132 const EPSILON : Self = std::f64::EPSILON; |
142 const EPSILON : Self = std::f64::EPSILON; |
| 133 const SQRT_2 : Self = std::f64::consts::SQRT_2; |
143 const SQRT_2 : Self = std::f64::consts::SQRT_2; |
| 134 const INFINITY : Self = std::f64::INFINITY; |
144 const INFINITY : Self = std::f64::INFINITY; |
| 135 const NEG_INFINITY : Self = std::f64::NEG_INFINITY; |
145 const NEG_INFINITY : Self = std::f64::NEG_INFINITY; |
| |
146 const NAN : Self = std::f64::NAN; |
| 136 const FRAC_2_SQRT_PI : Self = std::f64::consts::FRAC_2_SQRT_PI; |
147 const FRAC_2_SQRT_PI : Self = std::f64::consts::FRAC_2_SQRT_PI; |
| 137 } |
148 } |
| 138 |
149 |
| 139 impl Float for f32 { |
150 impl Float for f32 { |
| 140 /* |
151 /* |
| 148 const E : Self = std::f32::consts::E; |
159 const E : Self = std::f32::consts::E; |
| 149 const EPSILON : Self = std::f32::EPSILON; |
160 const EPSILON : Self = std::f32::EPSILON; |
| 150 const SQRT_2 : Self = std::f32::consts::SQRT_2; |
161 const SQRT_2 : Self = std::f32::consts::SQRT_2; |
| 151 const INFINITY : Self = std::f32::INFINITY; |
162 const INFINITY : Self = std::f32::INFINITY; |
| 152 const NEG_INFINITY : Self = std::f32::NEG_INFINITY; |
163 const NEG_INFINITY : Self = std::f32::NEG_INFINITY; |
| |
164 const NAN : Self = std::f32::NAN; |
| 153 const FRAC_2_SQRT_PI : Self = std::f32::consts::FRAC_2_SQRT_PI; |
165 const FRAC_2_SQRT_PI : Self = std::f32::consts::FRAC_2_SQRT_PI; |
| 154 } |
166 } |
| 155 |
167 |
| 156 /* |
168 /* |
| 157 trait_set! { |
169 trait_set! { |