fn r(z: f64) -> f64 {
let p: f64 = z * (PS0 + z * (PS1 + z * (PS2 + z * (PS3 + z * (PS4 + z * PS5)))));
let q: f64 = 1.0 + z * (QS1 + z * (QS2 + z * (QS3 + z * QS4)));
- return p / q;
+ p / q
}
#[inline]
+#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)]
pub fn acos(x: f64) -> f64 {
let x1p_120f = f64::from_bits(0x3870000000000000); // 0x1p-120 === 2 ^ -120
let z: f64;
if ix >= 0x3ff00000 {
let lx: u32 = x.to_bits() as u32;
- if (ix - 0x3ff00000 | lx) == 0 {
+ if ((ix - 0x3ff00000) | lx) == 0 {
/* acos(1)=0, acos(-1)=pi */
if (hx >> 31) != 0 {
return 2. * PIO2_HI + x1p_120f;
c = (z - df * df) / (s + df);
w = r(z) * s + c;
- return 2. * (df + w);
+ 2. * (df + w)
}