use miden_core::Felt;
pub use miden_core::utils::*;
#[inline(always)]
pub(crate) fn split_element(value: Felt) -> (Felt, Felt) {
let value = value.as_int();
let lo = (value as u32) as u64;
let hi = value >> 32;
(Felt::new(hi), Felt::new(lo))
}
pub(crate) fn split_element_u32_into_u16(value: Felt) -> (Felt, Felt) {
let (hi, lo) = split_u32_into_u16(value.as_int());
(Felt::new(hi as u64), Felt::new(lo as u64))
}
pub(crate) fn split_u32_into_u16(value: u64) -> (u16, u16) {
const U32MAX: u64 = u32::MAX as u64;
debug_assert!(value <= U32MAX, "not a 32-bit value");
let lo = value as u16;
let hi = (value >> 16) as u16;
(hi, lo)
}