use crate::decimal::dec::convert::to_float::float::common::common_float_impl;
common_float_impl!(f32);
pub const MIN_10_EXP_REAL: i32 = -65;
pub const MIN_EXPONENT_ROUND_TO_EVEN: i32 = -17;
pub const MAX_EXPONENT_ROUND_TO_EVEN: i32 = 10;
#[inline(always)]
pub const fn pow10_fast_path(exponent: usize) -> f32 {
const TABLE: [f32; 16] = [
1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 0., 0., 0., 0., 0.,
];
TABLE[exponent & 15]
}
#[inline(always)]
pub const fn float(mantissa: u64, biased_exp: i32) -> f32 {
let mut mantissa = ((mantissa & 0xFFFFFFFF) as u32) & MAN_MASK;
mantissa |= (biased_exp as u32) << (MANTISSA_DIGITS - 1);
f32::from_bits(mantissa)
}