diff options
Diffstat (limited to 'vendor/ryu/src/pretty/mantissa.rs')
-rw-r--r-- | vendor/ryu/src/pretty/mantissa.rs | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/vendor/ryu/src/pretty/mantissa.rs b/vendor/ryu/src/pretty/mantissa.rs deleted file mode 100644 index 0149f5c..0000000 --- a/vendor/ryu/src/pretty/mantissa.rs +++ /dev/null @@ -1,82 +0,0 @@ -use crate::digit_table::*; -use core::ptr; - -#[cfg_attr(feature = "no-panic", inline)] -pub unsafe fn write_mantissa_long(mut output: u64, mut result: *mut u8) { - if (output >> 32) != 0 { - // One expensive 64-bit division. - let mut output2 = (output - 100_000_000 * (output / 100_000_000)) as u32; - output /= 100_000_000; - - let c = output2 % 10_000; - output2 /= 10_000; - let d = output2 % 10_000; - let c0 = (c % 100) << 1; - let c1 = (c / 100) << 1; - let d0 = (d % 100) << 1; - let d1 = (d / 100) << 1; - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(c0 as isize), - result.offset(-2), - 2, - ); - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(c1 as isize), - result.offset(-4), - 2, - ); - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(d0 as isize), - result.offset(-6), - 2, - ); - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(d1 as isize), - result.offset(-8), - 2, - ); - result = result.offset(-8); - } - write_mantissa(output as u32, result); -} - -#[cfg_attr(feature = "no-panic", inline)] -pub unsafe fn write_mantissa(mut output: u32, mut result: *mut u8) { - while output >= 10_000 { - let c = output - 10_000 * (output / 10_000); - output /= 10_000; - let c0 = (c % 100) << 1; - let c1 = (c / 100) << 1; - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(c0 as isize), - result.offset(-2), - 2, - ); - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(c1 as isize), - result.offset(-4), - 2, - ); - result = result.offset(-4); - } - if output >= 100 { - let c = (output % 100) << 1; - output /= 100; - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(c as isize), - result.offset(-2), - 2, - ); - result = result.offset(-2); - } - if output >= 10 { - let c = output << 1; - ptr::copy_nonoverlapping( - DIGIT_TABLE.as_ptr().offset(c as isize), - result.offset(-2), - 2, - ); - } else { - *result.offset(-1) = b'0' + output as u8; - } -} |