diff options
Diffstat (limited to 'vendor/libm-0.1.4/src/math/trunc.rs')
-rw-r--r-- | vendor/libm-0.1.4/src/math/trunc.rs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/vendor/libm-0.1.4/src/math/trunc.rs b/vendor/libm-0.1.4/src/math/trunc.rs deleted file mode 100644 index 1ee46fc7d..000000000 --- a/vendor/libm-0.1.4/src/math/trunc.rs +++ /dev/null @@ -1,41 +0,0 @@ -use core::f64; - -#[inline] -#[cfg_attr(all(test, assert_no_panic), no_panic::no_panic)] -pub fn trunc(x: f64) -> f64 { - // On wasm32 we know that LLVM's intrinsic will compile to an optimized - // `f64.trunc` native instruction, so we can leverage this for both code size - // and speed. - llvm_intrinsically_optimized! { - #[cfg(target_arch = "wasm32")] { - return unsafe { ::core::intrinsics::truncf64(x) } - } - } - let x1p120 = f64::from_bits(0x4770000000000000); // 0x1p120f === 2 ^ 120 - - let mut i: u64 = x.to_bits(); - let mut e: i64 = (i >> 52 & 0x7ff) as i64 - 0x3ff + 12; - let m: u64; - - if e >= 52 + 12 { - return x; - } - if e < 12 { - e = 1; - } - m = -1i64 as u64 >> e; - if (i & m) == 0 { - return x; - } - force_eval!(x + x1p120); - i &= !m; - f64::from_bits(i) -} - -#[cfg(test)] -mod tests { - #[test] - fn sanity_check() { - assert_eq!(super::trunc(1.1), 1.0); - } -} |