use std::mem::size_of;
pub const BITS_PER_BYTE: usize = 8;
pub const BITS_U64: usize = 64;
pub const BYTES_U16: usize = size_of::<u16>();
pub const BYTES_U32: usize = size_of::<u32>();
pub const BYTES_U64: usize = size_of::<u64>();
pub const TYPE_F64: u8 = 1;
pub const TYPE_F32: u8 = 2;
pub const TYPE_F64_RAW: u8 = 3;
pub const TYPE_F32_RAW: u8 = 4;
pub const MAX_EXPONENT_F64: u8 = 18;
pub const MAX_EXPONENT_F32: u8 = 10;
pub const MAX_FAC_F64: u8 = 8;
pub const MAX_FAC_F32: u8 = 4;
pub const MAGIC_NUMBER_F64: f64 = 6755399441055744.0;
pub const MAGIC_NUMBER_F32: f32 = 12582912.0;
pub const ENCODING_UPPER_LIMIT_F64: f64 = 9223372036854774784.0;
pub const ENCODING_UPPER_LIMIT_F32: f32 = 2147483520.0;
pub const MIN_HEADER_LEN: usize = 3;
pub const HEADER_LEN: usize = 5;
pub const HDR_TYPE_IDX: usize = 0;
pub const HDR_COUNT_START: usize = 1;
pub const HDR_COUNT_END: usize = 3;
pub const HDR_PARAMS_START: usize = 3;
pub const HDR_PARAMS_END: usize = 5;
pub const EXC_COUNT_LEN: usize = size_of::<u16>();
pub const EXC_POS_LEN: usize = size_of::<u16>();
pub const SAMPLES_COUNT: usize = 32;
pub const EARLY_EXIT_BIT_WIDTH: usize = 8;
pub const LUT_SIZE_1BIT: usize = 2;
pub const LUT_SIZE_2BIT: usize = 4;
pub const LUT_SIZE_4BIT: usize = 16;
pub const LUT_SIZE_8BIT: usize = 256;
pub const EXP_ARR_F64: [f64; 19] = [
1.0,
10.0,
100.0,
1_000.0,
10_000.0,
100_000.0,
1_000_000.0,
10_000_000.0,
100_000_000.0,
1_000_000_000.0,
10_000_000_000.0,
100_000_000_000.0,
1_000_000_000_000.0,
10_000_000_000_000.0,
100_000_000_000_000.0,
1_000_000_000_000_000.0,
10_000_000_000_000_000.0,
100_000_000_000_000_000.0,
1_000_000_000_000_000_000.0,
];
pub const FRAC_ARR_F64: [f64; 19] = [
1.0,
0.1,
0.01,
0.001,
0.0001,
0.00001,
0.000001,
0.0000001,
0.00000001,
0.000000001,
0.0000000001,
0.00000000001,
0.000000000001,
0.0000000000001,
0.00000000000001,
0.000000000000001,
0.0000000000000001,
0.00000000000000001,
0.000000000000000001,
];
pub const FACT_ARR_F64: [i64; 19] = [
1,
10,
100,
1_000,
10_000,
100_000,
1_000_000,
10_000_000,
100_000_000,
1_000_000_000,
10_000_000_000,
100_000_000_000,
1_000_000_000_000,
10_000_000_000_000,
100_000_000_000_000,
1_000_000_000_000_000,
10_000_000_000_000_000,
100_000_000_000_000_000,
1_000_000_000_000_000_000,
];
pub const EXP_ARR_F32: [f32; 11] = [
1.0,
10.0,
100.0,
1_000.0,
10_000.0,
100_000.0,
1_000_000.0,
10_000_000.0,
100_000_000.0,
1_000_000_000.0,
10_000_000_000.0,
];
pub const FRAC_ARR_F32: [f32; 11] = [
1.0,
0.1,
0.01,
0.001,
0.0001,
0.00001,
0.000001,
0.0000001,
0.00000001,
0.000000001,
0.0000000001,
];
pub const FACT_ARR_F32: [i64; 11] = [
1,
10,
100,
1_000,
10_000,
100_000,
1_000_000,
10_000_000,
100_000_000,
1_000_000_000,
10_000_000_000,
];