Lines Matching refs:f64

7 use core::f64;
45 const POS_ZERO: &[f64] = &[0.0];
46 const NEG_ZERO: &[f64] = &[-0.0];
47 const POS_ONE: &[f64] = &[1.0];
48 const NEG_ONE: &[f64] = &[-1.0];
49 const POS_FLOATS: &[f64] = &[99.0 / 70.0, f64::consts::E, f64::consts::PI];
50 const NEG_FLOATS: &[f64] = &[-99.0 / 70.0, -f64::consts::E, -f64::consts::PI];
51 const POS_SMALL_FLOATS: &[f64] = &[(1.0 / 2.0), f64::MIN_POSITIVE, f64::EPSILON];
52 const NEG_SMALL_FLOATS: &[f64] = &[-(1.0 / 2.0), -f64::MIN_POSITIVE, -f64::EPSILON];
53 const POS_EVENS: &[f64] = &[2.0, 6.0, 8.0, 10.0, 22.0, 100.0, f64::MAX];
54 const NEG_EVENS: &[f64] = &[f64::MIN, -100.0, -22.0, -10.0, -8.0, -6.0, -2.0];
55 const POS_ODDS: &[f64] = &[3.0, 7.0];
56 const NEG_ODDS: &[f64] = &[-7.0, -3.0];
57 const NANS: &[f64] = &[f64::NAN];
58 const POS_INF: &[f64] = &[f64::INFINITY];
59 const NEG_INF: &[f64] = &[f64::NEG_INFINITY];
61 const ALL: &[&[f64]] = &[
78 const POS: &[&[f64]] = &[POS_ZERO, POS_ODDS, POS_ONE, POS_FLOATS, POS_EVENS, POS_INF];
79 const NEG: &[&[f64]] = &[NEG_ZERO, NEG_ODDS, NEG_ONE, NEG_FLOATS, NEG_EVENS, NEG_INF];
81 fn powd(base: f64, exponent: f64, expected: f64) {
97 fn powd_test_sets_as_base(sets: &[&[f64]], exponent: f64, expected: f64) {
101 fn powd_test_sets_as_exponent(base: f64, sets: &[&[f64]], expected: f64) {
105 fn powd_test_sets(sets: &[&[f64]], computed: &dyn Fn(f64) -> f64, expected: &dyn Fn(f64) -> f64) {
141 powd_test_sets_as_exponent(f64::NAN, &ALL[2..], f64::NAN);
145 powd_test_sets_as_base(&ALL[..(ALL.len() - 2)], f64::NAN, f64::NAN);
152 powd_test_sets_as_exponent(f64::INFINITY, &POS[1..], f64::INFINITY);
155 powd_test_sets_as_exponent(f64::INFINITY, &NEG[1..], 0.0);
159 powd_test_sets_as_exponent(f64::NEG_INFINITY, &[POS_ODDS], f64::NEG_INFINITY);
164 powd_test_sets(ALL, &|v: f64| libm::powd(f64::NEG_INFINITY, v), &|v: f64| libm::powd(-0.0, -v));
171 powd_test_sets_as_base(&ALL[5..(ALL.len() - 2)], f64::INFINITY, f64::INFINITY);
174 powd_test_sets_as_base(&ALL[5..ALL.len() - 2], f64::NEG_INFINITY, 0.0);
180 powd_test_sets_as_base(base_below_one, f64::INFINITY, 0.0);
183 powd_test_sets_as_base(base_below_one, f64::NEG_INFINITY, f64::INFINITY);
187 powd_test_sets_as_base(&[NEG_ONE, POS_ONE], f64::INFINITY, 1.0);
190 powd_test_sets_as_base(&[NEG_ONE, POS_ONE], f64::NEG_INFINITY, 1.0);
201 powd_test_sets_as_exponent(0.0, &NEG[1..], f64::INFINITY);
209 powd_test_sets_as_exponent(-0.0, &NEG[3..], f64::INFINITY);
216 powd_test_sets_as_exponent(-0.0, &[NEG_ODDS], f64::NEG_INFINITY);
223 powd_test_sets(ALL, &|v: f64| libm::powd(v, 1.0), &|v: f64| v);
227 powd_test_sets(ALL, &|v: f64| libm::powd(v, -1.0), &|v: f64| 1.0 / v);
233 powd_test_sets(ALL, &|v: f64| libm::powd(-v, *int), &|v: f64| {
243 powd_test_sets(&ALL[3..7], &|v: f64| libm::powd(*val, v), &|_| f64::NAN);
250 assert_eq!(libm::powd(2.0, 20.0), (1 << 20) as f64);
265 assert!(libm::fabsd(f64::NAN).is_nan());
269 for f in [f64::INFINITY, f64::NEG_INFINITY].iter().copied() {
270 assert_eq!(libm::fabsd(f), f64::INFINITY);
285 assert!(libm::sqrtd(f64::NAN).is_nan());
286 for f in [0.0, -0.0, f64::INFINITY].iter().copied() {