integer_or_float/num_traits_impl/
float.rs1use crate::f_iof;
2use crate::IntegerOrFloat as IOF;
3use core::num::FpCategory;
4use num_traits::Float;
5
6#[rustfmt::skip]
7impl Float for IOF {
8 fn nan() -> Self { IOF::Float(f_iof::NAN) }
10 fn infinity() -> Self { IOF::Float(f_iof::INFINITY) }
11 fn neg_infinity() -> Self { IOF::Float(-f_iof::INFINITY) }
12 fn neg_zero() -> Self { IOF::Float(-f_iof::from(0.0)) }
13 fn min_value() -> Self { IOF::Float(f_iof::MIN) }
14 fn min_positive_value() -> Self { IOF::Float(f_iof::MIN_POSITIVE) }
15 fn max_value() -> Self { IOF::Float(f_iof::MAX) }
16 fn is_nan(self) -> bool { f_iof::from(self).is_nan() }
18 fn is_infinite(self) -> bool { f_iof::from(self).is_infinite() }
19 fn is_finite(self) -> bool { f_iof::from(self).is_finite() }
20 fn is_normal(self) -> bool { f_iof::from(self).is_normal() }
21 fn is_sign_positive(self) -> bool { f_iof::from(self).is_sign_positive() }
22 fn is_sign_negative(self) -> bool { f_iof::from(self).is_sign_negative() }
23 fn classify(self) -> FpCategory { f_iof::from(self).classify() }
25 fn floor(self) -> Self { IOF::Float(f_iof::from(self).floor()) }
27 fn ceil(self) -> Self { IOF::Float(f_iof::from(self).ceil()) }
28 fn round(self) -> Self { IOF::Float(f_iof::from(self).round()) }
29 fn trunc(self) -> Self { IOF::Float(f_iof::from(self).trunc()) }
30 fn fract(self) -> Self { IOF::Float(f_iof::from(self).fract()) }
31 fn abs(self) -> Self { IOF::Float(f_iof::from(self).abs()) }
32 fn signum(self) -> Self { IOF::Float(f_iof::from(self).signum()) }
33 fn recip(self) -> Self { IOF::Float(f_iof::from(self).recip()) }
34 fn sqrt(self) -> Self { IOF::Float(f_iof::from(self).sqrt()) }
35 fn exp(self) -> Self { IOF::Float(f_iof::from(self).exp()) }
36 fn exp2(self) -> Self { IOF::Float(f_iof::from(self).exp2()) }
37 fn ln(self) -> Self { IOF::Float(f_iof::from(self).ln()) }
38 fn log2(self) -> Self { IOF::Float(f_iof::from(self).log2()) }
39 fn log10(self) -> Self { IOF::Float(f_iof::from(self).log10()) }
40 fn cbrt(self) -> Self { IOF::Float(f_iof::from(self).cbrt()) }
41 fn sin(self) -> Self { IOF::Float(f_iof::from(self).sin()) }
42 fn cos(self) -> Self { IOF::Float(f_iof::from(self).cos()) }
43 fn tan(self) -> Self { IOF::Float(f_iof::from(self).tan()) }
44 fn asin(self) -> Self { IOF::Float(f_iof::from(self).asin()) }
45 fn acos(self) -> Self { IOF::Float(f_iof::from(self).acos()) }
46 fn atan(self) -> Self { IOF::Float(f_iof::from(self).atan()) }
47 fn exp_m1(self) -> Self { IOF::Float(f_iof::from(self).exp_m1()) }
48 fn ln_1p(self) -> Self { IOF::Float(f_iof::from(self).ln_1p()) }
49 fn sinh(self) -> Self { IOF::Float(f_iof::from(self).sinh()) }
50 fn cosh(self) -> Self { IOF::Float(f_iof::from(self).cosh()) }
51 fn tanh(self) -> Self { IOF::Float(f_iof::from(self).tanh()) }
52 fn asinh(self) -> Self { IOF::Float(f_iof::from(self).asinh()) }
53 fn acosh(self) -> Self { IOF::Float(f_iof::from(self).acosh()) }
54 fn atanh(self) -> Self { IOF::Float(f_iof::from(self).atanh()) }
55 fn mul_add(self, rhs: Self, rhs2: Self) -> Self { IOF::Float(f_iof::from(self).mul_add(f_iof::from(rhs), f_iof::from(rhs2))) }
57 fn powi(self, rhs: i32) -> Self { IOF::Float(f_iof::from(self).powi(rhs)) }
60 fn powf(self, rhs: Self) -> Self { IOF::Float(f_iof::from(self).powf(f_iof::from(rhs))) }
61 fn log(self, rhs: Self) -> Self { IOF::Float(f_iof::from(self).log(f_iof::from(rhs))) }
62 fn max(self, rhs: Self) -> Self { IOF::Float(f_iof::from(self).max(f_iof::from(rhs))) }
63 fn min(self, rhs: Self) -> Self { IOF::Float(f_iof::from(self).min(f_iof::from(rhs))) }
64 fn hypot(self, rhs: Self) -> Self { IOF::Float(f_iof::from(self).hypot(f_iof::from(rhs))) }
65 fn atan2(self, rhs: Self) -> Self { IOF::Float(f_iof::from(self).atan2(f_iof::from(rhs))) }
66 fn integer_decode(self) -> (u64, i16, i8) { f_iof::from(self).integer_decode() }
68 fn sin_cos(self) -> (Self, Self) {
69 let (r1, r2) = f_iof::from(self).sin_cos();
70 (IOF::Float(r1), IOF::Float(r2))
71 }
72 #[allow(deprecated)]
73 fn abs_sub(self, rhs: Self) -> Self { IOF::Float(f_iof::from(self).abs_sub(f_iof::from(rhs))) }
74}