pub const fn xsh_rr_16_8(state: u16) -> u8 {
((((state >> 5) ^ state) >> 5) as u8).rotate_right((state >> 13) as u32)
}
pub const fn xsh_rr_32_16(state: u32) -> u16 {
((((state >> 10) ^ state) >> 12) as u16).rotate_right((state >> 28) as u32)
}
pub const fn xsh_rr_64_32(state: u64) -> u32 {
((((state >> 18) ^ state) >> 27) as u32).rotate_right((state >> 59) as u32)
}
pub const fn xsh_rr_128_64(state: u128) -> u64 {
((((state >> 29) ^ state) >> 58) as u64).rotate_right((state >> 122) as u32)
}
pub const fn xsh_rs_16_8(state: u16) -> u8 {
(((state >> 7) ^ state) >> ((state >> 14) + 3)) as u8
}
pub const fn xsh_rs_32_16(state: u32) -> u16 {
(((state >> 11) ^ state) >> ((state >> 30) + 11)) as u16
}
pub const fn xsh_rs_64_32(state: u64) -> u32 {
(((state >> 22) ^ state) >> ((state >> 61) + 22)) as u32
}
pub const fn xsh_rs_128_64(state: u128) -> u64 {
(((state >> 43) ^ state) >> ((state >> 124) + 45)) as u64
}
pub const fn rxs_m_xs_8_8(state: u8) -> u8 {
let w = (state >> ((state >> 6).wrapping_add(2)) ^ state).wrapping_mul(217);
w >> 6 ^ w
}
pub const fn rxs_m_xs_16_16(state: u16) -> u16 {
let w = (state >> ((state >> 13).wrapping_add(3)) ^ state).wrapping_mul(62169);
w >> 11 ^ w
}
pub const fn rxs_m_xs_32_32(state: u32) -> u32 {
let w = (state >> ((state >> 28).wrapping_add(4)) ^ state).wrapping_mul(277803737);
w >> 22 ^ w
}
pub const fn rxs_m_xs_64_64(state: u64) -> u64 {
let w = (state >> ((state >> 59).wrapping_add(5)) ^ state).wrapping_mul(12605985483714917081);
w >> 43 ^ w
}
pub const fn rxs_m_xs_128_128(state: u128) -> u128 {
let w = (state >> ((state >> 122).wrapping_add(6)) ^ state).wrapping_mul(327738287884841127335028083622016905945);
w >> 86 ^ w
}
pub const fn xsl_rr_64_32(state: u64) -> u32 {
((state >> 32) as u32 ^ (state as u32)).rotate_right((state >> 59) as u32)
}
pub const fn xsl_rr_128_64(state: u128) -> u64 {
((state >> 64) as u64 ^ (state as u64)).rotate_right((state >> 122) as u32)
}
pub const fn xsl_rr_rr_64_64(state: u64) -> u64 {
let rot1: u32 = (state >> 59) as u32;
let high: u32 = (state >> 32) as u32;
let low: u32 = state as u32;
let xor_d: u32 = high ^ low;
let new_low: u32 = xor_d.rotate_right(rot1);
let new_high: u32 = high.rotate_right(new_low & 31);
((new_high as u64) << 32) | new_low as u64
}
pub const fn xsl_rr_rr_128_128(state: u128) -> u128 {
let rot1: u32 = (state >> 122) as u32;
let high: u64 = (state >> 64) as u64;
let low: u64 = state as u64;
let xor_d: u64 = high ^ low;
let new_low: u64 = xor_d.rotate_right(rot1);
let new_high: u64 = high.rotate_right((new_low & 63) as u32);
((new_high as u128) << 64) | new_low as u128
}