From 79323d73a8e57a1288d3760ccb54df918c86f1a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Mon, 5 Sep 2022 16:48:08 +0200 Subject: [PATCH 1/8] Only use public interface in tests --- src/conversion.rs | 66 +++++----- src/lib.rs | 300 ++++++++++++++++++++++------------------------ 2 files changed, 179 insertions(+), 187 deletions(-) diff --git a/src/conversion.rs b/src/conversion.rs index 5ef3a26..95f8b38 100644 --- a/src/conversion.rs +++ b/src/conversion.rs @@ -1759,45 +1759,45 @@ mod tests { #[test] fn test_infallible_conversion_unsigned() { - assert_eq!(u16::from(u9(12)), 12u16); - assert_eq!(u32::from(u9(12)), 12u32); + assert_eq!(u16::from(u9::new(12)), 12u16); + assert_eq!(u32::from(u9::new(12)), 12u32); - assert_eq!(u9(127), 127u8.into()); + assert_eq!(u9::new(127), 127u8.into()); - assert_eq!(u7::from(u6(65)), u7(65)); + assert_eq!(u7::from(u6::new(25)), u7::new(25)); } #[test] fn test_infallible_conversion_signed() { - assert_eq!(i16::from(i9(12)), 12i16); - assert_eq!(i32::from(i9(12)), 12i32); + assert_eq!(i16::from(i9::new(12)), 12i16); + assert_eq!(i32::from(i9::new(12)), 12i32); - assert_eq!(i16::from(i9(-12)), -12i16); - assert_eq!(i32::from(i9(-12)), -12i32); + assert_eq!(i16::from(i9::new(-12)), -12i16); + assert_eq!(i32::from(i9::new(-12)), -12i32); - assert_eq!(i9(127), 127i8.into()); + assert_eq!(i9::new(127), 127i8.into()); - assert_eq!(i7::from(i6(65)), i7(65)); - assert_eq!(i7::from(i6(-65)), i7(-65)); + assert_eq!(i7::from(i6::new(25)), i7::new(25)); + assert_eq!(i7::from(i6::new(-25)), i7::new(-25)); } #[test] fn test_fallible_conversion_unsigned() { - assert_eq!(u16::try_from(u9(12)), Ok(12u16)); - assert_eq!(u32::try_from(u9(12)), Ok(12u32)); + assert_eq!(u16::try_from(u9::new(12)), Ok(12u16)); + assert_eq!(u32::try_from(u9::new(12)), Ok(12u32)); - assert_eq!(127u8.try_into(), Ok(u9(127))); + assert_eq!(127u8.try_into(), Ok(u9::new(127))); - assert_eq!(u7::try_from(u6(65)), Ok(u7(65))); + assert_eq!(u7::try_from(u6::new(25)), Ok(u7::new(25))); - assert!(u16::try_from(u19(0x1_ffff)).is_err()); - assert!(u32::try_from(u39(0x1_fffff_ffff)).is_err()); + assert!(u16::try_from(u19::new(0x1_ffff)).is_err()); + assert!(u32::try_from(u39::new(0x1_fffff_ffff)).is_err()); - assert!(u6::try_from(u7(127)).is_err()); + assert!(u6::try_from(u7::new(127)).is_err()); - assert_eq!(u2::try_from(1usize), Ok(u2(1))); + assert_eq!(u2::try_from(1usize), Ok(u2::new(1))); assert!(u2::try_from(4usize).is_err()); - assert_eq!(u2(1).try_into(), Ok(1usize)); + assert_eq!(u2::new(1).try_into(), Ok(1usize)); // Make sure that uX types behave the same as standard types with regards to usize // conversion. @@ -1809,24 +1809,24 @@ mod tests { #[test] fn test_fallible_conversion_signed() { - assert_eq!(i16::try_from(i9(12)), Ok(12i16)); - assert_eq!(i32::try_from(i9(12)), Ok(12i32)); + assert_eq!(i16::try_from(i9::new(12)), Ok(12i16)); + assert_eq!(i32::try_from(i9::new(12)), Ok(12i32)); - assert_eq!(i16::try_from(i9(-12)), Ok(-12i16)); - assert_eq!(i32::try_from(i9(-12)), Ok(-12i32)); + assert_eq!(i16::try_from(i9::new(-12)), Ok(-12i16)); + assert_eq!(i32::try_from(i9::new(-12)), Ok(-12i32)); - assert_eq!(127i8.try_into(), Ok(i9(127))); + assert_eq!(127i8.try_into(), Ok(i9::new(127))); - assert_eq!(i7::try_from(i6(65)), Ok(i7(65))); - assert_eq!(i7::try_from(i6(-65)), Ok(i7(-65))); + assert_eq!(i7::try_from(i6::new(25)), Ok(i7::new(25))); + assert_eq!(i7::try_from(i6::new(-25)), Ok(i7::new(-25))); - assert!(i16::try_from(i19(0xffff)).is_err()); - assert!(i32::try_from(i39(0xffff_ffff)).is_err()); + assert!(i16::try_from(i19::new(0xffff)).is_err()); + assert!(i32::try_from(i39::new(0xffff_ffff)).is_err()); - assert!(i16::try_from(i19(-0xffff)).is_err()); - assert!(i32::try_from(i39(-0xffff_ffff)).is_err()); + assert!(i16::try_from(i19::new(-0xffff)).is_err()); + assert!(i32::try_from(i39::new(-0xffff_ffff)).is_err()); - assert!(i6::try_from(i7(64)).is_err()); - assert!(i6::try_from(i7(-64)).is_err()); + assert!(i6::try_from(i7::new(63)).is_err()); + assert!(i6::try_from(i7::new(-64)).is_err()); } } diff --git a/src/lib.rs b/src/lib.rs index 59b4196..7a17b62 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -700,101 +700,93 @@ define_signed!(#[doc="The 127-bit signed integer type."], i127, 127, i128); mod tests { use super::*; - #[test] - fn test_masking() { - assert_eq!(u4(0b11000110).mask().0, 0b00000110); - assert_eq!(u4(0b00001000).mask().0, 0b00001000); - assert_eq!(u4(0b00001110).mask().0, 0b00001110); - - assert_eq!(i4(0b11000110u8 as i8).mask().0, 0b00000110u8 as i8); - assert_eq!(i4(0b00001000u8 as i8).mask().0, 0b11111000u8 as i8); - assert_eq!(i4(0b00001110u8 as i8).mask().0, 0b11111110u8 as i8); - } - #[test] fn min_max_values() { - assert_eq!(u1::MAX, u1(1)); - assert_eq!(u2::MAX, u2(3)); - assert_eq!(u3::MAX, u3(7)); - assert_eq!(u7::MAX, u7(127)); - assert_eq!(u9::MAX, u9(511)); - - assert_eq!(i1::MAX, i1(0)); - assert_eq!(i2::MAX, i2(1)); - assert_eq!(i3::MAX, i3(3)); - assert_eq!(i7::MAX, i7(63)); - assert_eq!(i9::MAX, i9(255)); - - assert_eq!(u1::MIN, u1(0)); - assert_eq!(u2::MIN, u2(0)); - assert_eq!(u3::MIN, u3(0)); - assert_eq!(u7::MIN, u7(0)); - assert_eq!(u9::MIN, u9(0)); - assert_eq!(u127::MIN, u127(0)); - - assert_eq!(i1::MIN, i1(-1)); - assert_eq!(i2::MIN, i2(-2)); - assert_eq!(i3::MIN, i3(-4)); - assert_eq!(i7::MIN, i7(-64)); - assert_eq!(i9::MIN, i9(-256)); + let a = u1::MAX; + let b = u1::new(1); + assert_eq!(a, b); + assert_eq!(u1::MAX, u1::new(1)); + assert_eq!(u2::MAX, u2::new(3)); + assert_eq!(u3::MAX, u3::new(7)); + assert_eq!(u7::MAX, u7::new(127)); + assert_eq!(u9::MAX, u9::new(511)); + + assert_eq!(i1::MAX, i1::new(0)); + assert_eq!(i2::MAX, i2::new(1)); + assert_eq!(i3::MAX, i3::new(3)); + assert_eq!(i7::MAX, i7::new(63)); + assert_eq!(i9::MAX, i9::new(255)); + + assert_eq!(u1::MIN, u1::new(0)); + assert_eq!(u2::MIN, u2::new(0)); + assert_eq!(u3::MIN, u3::new(0)); + assert_eq!(u7::MIN, u7::new(0)); + assert_eq!(u9::MIN, u9::new(0)); + assert_eq!(u127::MIN, u127::new(0)); + + assert_eq!(i1::MIN, i1::new(-1)); + assert_eq!(i2::MIN, i2::new(-2)); + assert_eq!(i3::MIN, i3::new(-4)); + assert_eq!(i7::MIN, i7::new(-64)); + assert_eq!(i9::MIN, i9::new(-256)); } #[test] fn test_wrapping_add() { - assert_eq!(u1::MAX.wrapping_add(u1(1)), u1(0)); - assert_eq!(u1::MAX.wrapping_add(u1(0)), u1(1)); + assert_eq!(u1::MAX.wrapping_add(u1::new(1)), u1::new(0)); + assert_eq!(u1::MAX.wrapping_add(u1::new(0)), u1::new(1)); - assert_eq!(u5::MAX.wrapping_add(u5(1)), u5(0)); - assert_eq!(u5::MAX.wrapping_add(u5(4)), u5(3)); + assert_eq!(u5::MAX.wrapping_add(u5::new(1)), u5::new(0)); + assert_eq!(u5::MAX.wrapping_add(u5::new(4)), u5::new(3)); - assert_eq!(u127::MAX.wrapping_add(u127(100)), u127(99)); - assert_eq!(u127::MAX.wrapping_add(u127(1)), u127(0)); + assert_eq!(u127::MAX.wrapping_add(u127::new(100)), u127::new(99)); + assert_eq!(u127::MAX.wrapping_add(u127::new(1)), u127::new(0)); - assert_eq!(i1::MAX.wrapping_add(i1(0)), i1(0)); - assert_eq!(i1::MAX.wrapping_add(i1(-1)), i1(-1)); + assert_eq!(i1::MAX.wrapping_add(i1::new(0)), i1::new(0)); + assert_eq!(i1::MAX.wrapping_add(i1::new(-1)), i1::new(-1)); - assert_eq!(i7::MAX.wrapping_add(i7(1)), i7::MIN); - assert_eq!(i7::MAX.wrapping_add(i7(4)), i7(-61)); + assert_eq!(i7::MAX.wrapping_add(i7::new(1)), i7::MIN); + assert_eq!(i7::MAX.wrapping_add(i7::new(4)), i7::new(-61)); } #[test] #[should_panic] fn test_add_overflow_u5() { - let _s = u5::MAX + u5(1); + let _s = u5::MAX + u5::new(1); } #[test] #[should_panic] fn test_add_overflow_u127() { - let _s = u127::MAX + u127(1); + let _s = u127::MAX + u127::new(1); } #[test] #[should_panic] fn test_add_overflow_i96() { - let _s = i96::MAX + i96(100); + let _s = i96::MAX + i96::new(100); } #[test] #[should_panic] fn test_add_underflow_i96() { - let _s = i96::MIN + i96(-100); + let _s = i96::MIN + i96::new(-100); } #[test] #[should_panic] fn test_add_underflow_i17() { - let _s = i17::MIN + i17(-1); + let _s = i17::MIN + i17::new(-1); } #[test] fn test_add() { - assert_eq!(u5(1) + u5(2), u5(3)); + assert_eq!(u5::new(1) + u5::new(2), u5::new(3)); - assert_eq!(i7::MAX + i7::MIN, i7(-1)); - assert_eq!(i7(4) + i7(-3), i7(1)); - assert_eq!(i7(-4) + i7(3), i7(-1)); - assert_eq!(i7(-3) + i7(-20), i7(-23)); + assert_eq!(i7::MAX + i7::MIN, i7::new(-1)); + assert_eq!(i7::new(4) + i7::new(-3), i7::new(1)); + assert_eq!(i7::new(-4) + i7::new(3), i7::new(-1)); + assert_eq!(i7::new(-3) + i7::new(-20), i7::new(-23)); } #[test] @@ -806,168 +798,168 @@ mod tests { #[test] #[should_panic] fn test_sub_underflow_u5() { - let _s = u5::MIN - u5(1); + let _s = u5::MIN - u5::new(1); } #[test] #[should_panic] fn test_sub_underflow_i5() { - let _s = i5::MIN - i5(1); + let _s = i5::MIN - i5::new(1); } #[test] fn test_sub() { - assert_eq!(u5(1) - u5(1), u5(0)); - assert_eq!(u5(3) - u5(2), u5(1)); - - assert_eq!(i1(-1) - i1(-1), i1(0)); - assert_eq!(i7::MIN - i7::MIN, i7(0)); - assert_eq!(i7(4) - i7(-3), i7(7)); - assert_eq!(i7(-4) - i7(3), i7(-7)); - assert_eq!(i7(-3) - i7(-20), i7(17)); + assert_eq!(u5::new(1) - u5::new(1), u5::new(0)); + assert_eq!(u5::new(3) - u5::new(2), u5::new(1)); + + assert_eq!(i1::new(-1) - i1::new(-1), i1::new(0)); + assert_eq!(i7::MIN - i7::MIN, i7::new(0)); + assert_eq!(i7::new(4) - i7::new(-3), i7::new(7)); + assert_eq!(i7::new(-4) - i7::new(3), i7::new(-7)); + assert_eq!(i7::new(-3) - i7::new(-20), i7::new(17)); } #[test] fn test_shr() { - assert_eq!(u5(8) >> 1usize, u5(4)); - assert_eq!(u5(8) >> 1u8, u5(4)); - assert_eq!(u5(8) >> 1u16, u5(4)); - assert_eq!(u5(8) >> 1u32, u5(4)); - assert_eq!(u5(8) >> 1u64, u5(4)); - assert_eq!(u5(8) >> 1isize, u5(4)); - assert_eq!(u5(8) >> 1i8, u5(4)); - assert_eq!(u5(8) >> 1i16, u5(4)); - assert_eq!(u5(8) >> 1i32, u5(4)); - assert_eq!(u5(8) >> 1i64, u5(4)); - - assert_eq!(u5::MAX >> 4, u5(1)); - - assert_eq!(i7(-1) >> 5, i7(-1)); + assert_eq!(u5::new(8) >> 1usize, u5::new(4)); + assert_eq!(u5::new(8) >> 1u8, u5::new(4)); + assert_eq!(u5::new(8) >> 1u16, u5::new(4)); + assert_eq!(u5::new(8) >> 1u32, u5::new(4)); + assert_eq!(u5::new(8) >> 1u64, u5::new(4)); + assert_eq!(u5::new(8) >> 1isize, u5::new(4)); + assert_eq!(u5::new(8) >> 1i8, u5::new(4)); + assert_eq!(u5::new(8) >> 1i16, u5::new(4)); + assert_eq!(u5::new(8) >> 1i32, u5::new(4)); + assert_eq!(u5::new(8) >> 1i64, u5::new(4)); + + assert_eq!(u5::MAX >> 4, u5::new(1)); + + assert_eq!(i7::new(-1) >> 5, i7::new(-1)); } #[test] fn test_shl() { - assert_eq!(u5(16) << 1usize, u5(32)); - assert_eq!(u5(16) << 1u8, u5(32)); - assert_eq!(u5(16) << 1u16, u5(32)); - assert_eq!(u5(16) << 1u32, u5(32)); - assert_eq!(u5(16) << 1u64, u5(32)); - assert_eq!(u5(16) << 1isize, u5(32)); - assert_eq!(u5(16) << 1i8, u5(32)); - assert_eq!(u5(16) << 1i16, u5(32)); - assert_eq!(u5(16) << 1i32, u5(32)); - assert_eq!(u5(16) << 1i64, u5(32)); - - assert_eq!(u5::MAX << 4, u5(16)); - - assert_eq!(i5(16) << 1, i5(0)); - assert_eq!(i7(1) << 3, i7(8)); + assert_eq!(u5::new(15) << 1usize, u5::new(30)); + assert_eq!(u5::new(15) << 1u8, u5::new(30)); + assert_eq!(u5::new(15) << 1u16, u5::new(30)); + assert_eq!(u5::new(15) << 1u32, u5::new(30)); + assert_eq!(u5::new(15) << 1u64, u5::new(30)); + assert_eq!(u5::new(15) << 1isize, u5::new(30)); + assert_eq!(u5::new(15) << 1i8, u5::new(30)); + assert_eq!(u5::new(15) << 1i16, u5::new(30)); + assert_eq!(u5::new(15) << 1i32, u5::new(30)); + assert_eq!(u5::new(15) << 1i64, u5::new(30)); + + assert_eq!(u5::MAX << 4, u5::new(16)); + + assert_eq!(i5::new(8) << 1, i5::new(-16)); + assert_eq!(i7::new(1) << 3, i7::new(8)); } #[test] fn test_shr_assign() { - let mut x = u10(512); + let mut x = u10::new(512); x >>= 1usize; - assert_eq!(x, u10(256)); + assert_eq!(x, u10::new(256)); x >>= 1isize; - assert_eq!(x, u10(128)); + assert_eq!(x, u10::new(128)); x >>= 1u8; - assert_eq!(x, u10(64)); + assert_eq!(x, u10::new(64)); x >>= 1i8; - assert_eq!(x, u10(32)); + assert_eq!(x, u10::new(32)); x >>= 2u64; - assert_eq!(x, u10(8)); + assert_eq!(x, u10::new(8)); x >>= 3i32; - assert_eq!(x, u10(1)); + assert_eq!(x, u10::new(1)); } #[test] fn test_shl_assign() { - let mut x = u9(1); + let mut x = u9::new(1); x <<= 3i32; - assert_eq!(x, u9(8)); + assert_eq!(x, u9::new(8)); x <<= 2u64; - assert_eq!(x, u9(32)); + assert_eq!(x, u9::new(32)); x <<= 1usize; - assert_eq!(x, u9(64)); + assert_eq!(x, u9::new(64)); x <<= 1isize; - assert_eq!(x, u9(128)); + assert_eq!(x, u9::new(128)); x <<= 1u8; - assert_eq!(x, u9(256)); + assert_eq!(x, u9::new(256)); } #[test] fn test_bitor() { - assert_eq!(u9(1) | u9(8), u9(9)); - assert_eq!(&u9(1) | u9(8), u9(9)); - assert_eq!(u9(1) | &u9(8), u9(9)); - assert_eq!(&u9(1) | &u9(8), u9(9)); + assert_eq!(u9::new(1) | u9::new(8), u9::new(9)); + assert_eq!(&u9::new(1) | u9::new(8), u9::new(9)); + assert_eq!(u9::new(1) | &u9::new(8), u9::new(9)); + assert_eq!(&u9::new(1) | &u9::new(8), u9::new(9)); } #[test] fn test_bitor_assign() { - let mut x = u12(4); - x |= u12(1); - assert_eq!(x, u12(5)); - x |= u12(128); - assert_eq!(x, u12(133)); - x = u12(1); - x |= u12(127); - assert_eq!(x, u12(127)); + let mut x = u12::new(4); + x |= u12::new(1); + assert_eq!(x, u12::new(5)); + x |= u12::new(128); + assert_eq!(x, u12::new(133)); + x = u12::new(1); + x |= u12::new(127); + assert_eq!(x, u12::new(127)); } #[test] fn test_bitxor() { - assert_eq!(u7(0x7F) ^ u7(42), u7(85)); - assert_eq!(&u7(0) ^ u7(42), u7(42)); - assert_eq!(u7(0x10) ^ &u7(0x1), u7(0x11)); - assert_eq!(&u7(11) ^ &u7(1), u7(10)); + assert_eq!(u7::new(0x7F) ^ u7::new(42), u7::new(85)); + assert_eq!(&u7::new(0) ^ u7::new(42), u7::new(42)); + assert_eq!(u7::new(0x10) ^ &u7::new(0x1), u7::new(0x11)); + assert_eq!(&u7::new(11) ^ &u7::new(1), u7::new(10)); } #[test] fn test_bitxor_assign() { - let mut x = u12(4); - x ^= u12(1); - assert_eq!(x, u12(5)); - x ^= u12(128); - assert_eq!(x, u12(133)); - x ^= u12(1); - assert_eq!(x, u12(132)); - x ^= u12(127); - assert_eq!(x, u12(251)); + let mut x = u12::new(4); + x ^= u12::new(1); + assert_eq!(x, u12::new(5)); + x ^= u12::new(128); + assert_eq!(x, u12::new(133)); + x ^= u12::new(1); + assert_eq!(x, u12::new(132)); + x ^= u12::new(127); + assert_eq!(x, u12::new(251)); } #[test] fn test_bitand() { - assert_eq!(i9(-7) & i9(-9), i9::from(-7i8 & -9i8)); - assert_eq!(&i9(-7) & i9(-9), i9::from(&-7i8 & -9i8)); - assert_eq!(i9(-7) & &i9(-9), i9::from(-7i8 & &-9i8)); - assert_eq!(&i9(-7) & &i9(-9), i9::from(&-7i8 & &-9i8)); - - assert_eq!(u9(8) & u9(9), u9(8)); - assert_eq!(&u9(8) & u9(9), u9(8)); - assert_eq!(u9(8) & &u9(9), u9(8)); - assert_eq!(&u9(8) & &u9(9), u9(8)); + assert_eq!(i9::new(-7) & i9::new(-9), i9::from(-7i8 & -9i8)); + assert_eq!(&i9::new(-7) & i9::new(-9), i9::from(&-7i8 & -9i8)); + assert_eq!(i9::new(-7) & &i9::new(-9), i9::from(-7i8 & &-9i8)); + assert_eq!(&i9::new(-7) & &i9::new(-9), i9::from(&-7i8 & &-9i8)); + + assert_eq!(u9::new(8) & u9::new(9), u9::new(8)); + assert_eq!(&u9::new(8) & u9::new(9), u9::new(8)); + assert_eq!(u9::new(8) & &u9::new(9), u9::new(8)); + assert_eq!(&u9::new(8) & &u9::new(9), u9::new(8)); } #[test] fn test_bitand_assign() { - let mut x = u12(255); - x &= u12(127); - assert_eq!(x, u12(127)); - x &= u12(7); - assert_eq!(x, u12(7)); - x &= u12(127); - assert_eq!(x, u12(7)); - x &= u12(4); - assert_eq!(x, u12(4)); + let mut x = u12::new(255); + x &= u12::new(127); + assert_eq!(x, u12::new(127)); + x &= u12::new(7); + assert_eq!(x, u12::new(7)); + x &= u12::new(127); + assert_eq!(x, u12::new(7)); + x &= u12::new(4); + assert_eq!(x, u12::new(4)); } #[test] fn test_not() { - assert_eq!(!u7(42), u7(85)); - assert_eq!(!u7(0x7F), u7(0)); - assert_eq!(!u7(0), u7(0x7F)); - assert_eq!(!u7(56), u7(71)); + assert_eq!(!u7::new(42), u7::new(85)); + assert_eq!(!u7::new(0x7F), u7::new(0)); + assert_eq!(!u7::new(0), u7::new(0x7F)); + assert_eq!(!u7::new(56), u7::new(71)); } } From 3b02c33e404e9c52926118538a0ea4b37f340d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Mon, 5 Sep 2022 16:45:49 +0200 Subject: [PATCH 2/8] Add niche optimization This PR adds niche optimization. This lets the compiler use values outside of the valid integer range to store e.g. other enum variants. This makes `Option` one byte. The internal representation is own the same as the related primitive type, i.e. every u30 can be transmuted to u32. The other direction is possible if the u32 is representable in the u30 range. --- src/conversion.rs | 33 +- src/lib.rs | 247 ++++++++----- src/niche/mod.rs | 52 +++ src/niche/signed.rs | 712 ++++++++++++++++++++++++++++++++++++ src/niche/signed_bytes.rs | 535 +++++++++++++++++++++++++++ src/niche/unsigned.rs | 696 +++++++++++++++++++++++++++++++++++ src/niche/unsigned_bytes.rs | 539 +++++++++++++++++++++++++++ 7 files changed, 2711 insertions(+), 103 deletions(-) create mode 100644 src/niche/mod.rs create mode 100644 src/niche/signed.rs create mode 100644 src/niche/signed_bytes.rs create mode 100644 src/niche/unsigned.rs create mode 100644 src/niche/unsigned_bytes.rs diff --git a/src/conversion.rs b/src/conversion.rs index 95f8b38..1a9a029 100644 --- a/src/conversion.rs +++ b/src/conversion.rs @@ -24,7 +24,7 @@ macro_rules! implement_from { {$name:ident, $from:ty} => { impl From<$from> for $name { fn from(x: $from) -> $name { - $name(x.into()) + unsafe { $name::new_unchecked(x.into()) } } } }; @@ -39,14 +39,7 @@ macro_rules! implement_try_from { type Error = TryFromIntError; fn try_from(x: $from) -> Result<$name, Self::Error> { - // First get the value into the correct type - let value = x.try_into()?; - - if value <= $name::MAX.into() && value >= $name::MIN.into() { - Ok($name(value)) - } else { - Err(TryFromIntError(())) - } + Self::try_new(x.try_into()?).ok_or(TryFromIntError(())) } } }; @@ -58,7 +51,7 @@ macro_rules! implement_into { {$name:ident, $into:ident} => { impl From<$name> for $into { fn from(x: $name) -> $into { - $into::from(x.0) + x.get().into() } } }; @@ -72,7 +65,7 @@ macro_rules! implement_try_into { type Error = TryFromIntError; fn try_from(x: $name) -> Result<$into, Self::Error> { - Ok($into::try_from(x.0)?) + Ok(x.get().try_into()?) } } }; @@ -1735,21 +1728,19 @@ implement_from!( ); impl From for u1 { + #[inline] fn from(b: bool) -> Self { - match b { - true => u1(1), - false => u1(0), - } + unsafe { Self::new_unchecked(match b { + true => 1, + false => 0, + }) } } } impl From for bool { - fn from(u1(x): u1) -> Self { - match x { - 0 => false, - 1 => true, - _ => unreachable!(), - } + #[inline] + fn from(x: u1) -> Self { + x.get() != 0 } } diff --git a/src/lib.rs b/src/lib.rs index 7a17b62..6070e49 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,6 +20,8 @@ mod lib { mod conversion; +mod niche; + use lib::core::ops::{ BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign, Not, Shl, ShlAssign, Shr, ShrAssign, @@ -29,66 +31,80 @@ use lib::core::hash::{Hash, Hasher}; use lib::core::cmp::{Ord, Ordering, PartialOrd}; -use lib::core::fmt::{Binary, Display, Formatter, LowerHex, Octal, UpperHex}; +use lib::core::fmt::{Binary, Debug, Display, Formatter, LowerHex, Octal, UpperHex}; macro_rules! define_unsigned { ($name:ident, $bits:expr, $type:ident) => {define_unsigned!(#[doc=""], $name, $bits, $type);}; (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { - - #[$doc] - #[allow(non_camel_case_types)] - #[derive(Default, Clone, Copy, Debug)] - pub struct $name($type); - impl $name { - pub const MAX: Self = $name(((1 as $type) << $bits) -1 ); - pub const MIN: Self = $name(0); + fn mask(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } - fn mask(self) -> Self { - $name(self.0 & ( ((1 as $type) << $bits).overflowing_sub(1).0)) + fn mask_pos(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } } - } - implement_common!($name, $bits, $type); + fn mask_neg(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } + } + implement_common!(#[$doc], $name, $bits, $type); } } macro_rules! define_signed { ($name:ident, $bits:expr, $type:ident) => {define_signed!(#[doc=""], $name, $bits, $type);}; (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { - - #[$doc] - #[allow(non_camel_case_types)] - #[derive(Default, Clone, Copy, Debug)] - pub struct $name($type); - #[$doc] impl $name { - pub const MAX: Self = $name(((1 as $type) << ($bits - 1)) - 1); - pub const MIN: Self = $name(-((1 as $type) << ($bits - 1))); - - fn mask(self) -> Self { - if ( self.0 & (1<<($bits-1)) ) == 0 { - $name(self.0 & ( ((1 as $type) << $bits).overflowing_sub(1).0)) + fn mask(value: $type) -> Self { + let value = if value & (1 << ($bits - 1)) == 0 { + value & (((1 as $type) << $bits).overflowing_sub(1).0) } else { - $name(self.0 | !( ((1 as $type) << $bits).overflowing_sub(1).0)) - } + value | !(((1 as $type) << $bits).overflowing_sub(1).0) + }; + unsafe { $name::new_unchecked(value) } } - } - implement_common!($name, $bits, $type); + fn mask_pos(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } + fn mask_neg(value: $type) -> Self { + let value = value | !(((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } + } + + implement_common!(#[$doc], $name, $bits, $type); } } macro_rules! implement_common { - ($name:ident, $bits:expr, $type:ident) => { + (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { + #[$doc] + #[allow(non_camel_case_types)] + #[derive(Clone, Copy)] + pub struct $name(crate::niche::$name); + impl $name { + // The largest value that can be represented by this integer type. + pub const MAX: Self = $name::new(crate::niche::$name::MAX); + + // The largest value that can be represented by this integer type. + pub const MIN: Self = $name::new(crate::niche::$name::MIN); + /// Returns the smallest value that can be represented by this integer type. pub fn min_value() -> $name { $name::MIN } + /// Returns the largest value that can be represented by this integer type. pub fn max_value() -> $name { $name::MAX @@ -113,9 +129,69 @@ macro_rules! implement_common { /// # Panic /// /// This function will panic if `value` is not representable by this type + #[allow(unreachable_patterns)] pub const fn new(value: $type) -> $name { - assert!(value <= $name::MAX.0 && value >= $name::MIN.0); - $name(value) + const MIN: $type = crate::niche::$name::MIN; + const MAX: $type = crate::niche::$name::MAX; + match value { + MIN..=MAX => unsafe { $name::new_unchecked(value) }, + _ => panic!("value out of range") + } + } + + /// Try to crate a new variable + /// + /// If the value is out of range, [`None`] is returned. + /// + /// ``` + /// use ux::*; + /// + /// assert_eq!(i15::try_new(0x3fff).unwrap(), i15::new(0x3fff)); + /// assert_eq!(i15::try_new(0x4000), None); + /// ``` + #[allow(unreachable_patterns)] + pub const fn try_new(value: core::primitive::$type) -> Option<$name> { + const MIN: core::primitive::$type = crate::niche::$name::MIN; + const MAX: core::primitive::$type = crate::niche::$name::MAX; + match value { + MIN..=MAX => Some(unsafe { $name::new_unchecked(value) }), + _ => None, + } + } + + /// Crate a new variable without checking if it is in range + /// + /// Only use this function if you are sure that value is in range, + /// or subtle, hard to debug runtime errors will occur! + /// + /// # Examples + /// + /// Basic usage: + /// + /// ``` + /// use ux::*; + /// + /// assert_eq!(unsafe { u31::new_unchecked(64) }, u31::new(64)); + /// ``` + #[inline] + pub const unsafe fn new_unchecked(value: $type) -> $name { + Self(lib::core::mem::transmute(value)) + } + + /// Get the contained value + /// + /// # Examples + /// + /// Basic usage: + /// + /// ``` + /// use ux::*; + /// + /// assert_eq!(u31::new(64).get(), 64); + /// ``` + #[inline] + pub const fn get(self) -> $type { + unsafe { lib::core::mem::transmute(self.0) } } /// Wrapping (modular) subtraction. Computes `self - other`, @@ -134,7 +210,7 @@ macro_rules! implement_common { /// assert_eq!(i5::new(-15).wrapping_sub(i5::new(5)), i5::new(12)); /// ``` pub fn wrapping_sub(self, rhs: Self) -> Self { - $name(self.0.wrapping_sub(rhs.0)).mask() + $name::mask(self.get().wrapping_sub(rhs.get())) } /// Wrapping (modular) addition. Computes `self + other`, @@ -153,13 +229,19 @@ macro_rules! implement_common { /// assert_eq!(i5::new(15).wrapping_add(i5::new(5)), i5::new(-12)); /// ``` pub fn wrapping_add(self, rhs: Self) -> Self { - $name(self.0.wrapping_add(rhs.0)).mask() + $name::mask(self.get().wrapping_add(rhs.get())) + } + } + + impl Default for $name { + fn default() -> Self { + unsafe { $name::new_unchecked(0) } } } impl PartialEq for $name { fn eq(&self, other: &Self) -> bool { - self.mask().0 == other.mask().0 + self.get() == other.get() } } @@ -167,51 +249,51 @@ macro_rules! implement_common { impl PartialOrd for $name { fn partial_cmp(&self, other: &$name) -> Option { - self.mask().0.partial_cmp(&other.mask().0) + self.get().partial_cmp(&other.get()) } } impl Ord for $name { fn cmp(&self, other: &$name) -> Ordering { - self.mask().0.cmp(&other.mask().0) + self.get().cmp(&other.get()) } } impl Hash for $name { fn hash(&self, h: &mut H) { - self.mask().0.hash(h) + self.get().hash(h) } } // Implement formating functions + impl Debug for $name { + fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { + Debug::fmt(&self.get(), f) + } + } impl Display for $name { fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { - let &$name(ref value) = self; - <$type as Display>::fmt(value, f) + Display::fmt(&self.get(), f) } } impl UpperHex for $name { fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { - let &$name(ref value) = self; - <$type as UpperHex>::fmt(value, f) + UpperHex::fmt(&self.get(), f) } } impl LowerHex for $name { fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { - let &$name(ref value) = self; - <$type as LowerHex>::fmt(value, f) + LowerHex::fmt(&self.get(), f) } } impl Octal for $name { fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { - let &$name(ref value) = self; - <$type as Octal>::fmt(value, f) + Octal::fmt(&self.get(), f) } } impl Binary for $name { fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { - let &$name(ref value) = self; - <$type as Binary>::fmt(value, f) + Binary::fmt(&self.get(), f) } } @@ -221,8 +303,14 @@ macro_rules! implement_common { { type Output = $name; + #[allow(unused_comparisons)] fn shr(self, rhs: T) -> $name { - $name(self.mask().0.shr(rhs)) + let value = self.get(); + if value >= 0 { + $name::mask_pos(value.shr(rhs)) + } else { + $name::mask_neg(value.shr(rhs)) + } } } @@ -233,27 +321,25 @@ macro_rules! implement_common { type Output = $name; fn shl(self, rhs: T) -> $name { - $name(self.mask().0.shl(rhs)) + $name::mask(self.get().shl(rhs)) } } impl ShrAssign for $name where - $type: ShrAssign, + $type: Shr, { fn shr_assign(&mut self, rhs: T) { - *self = self.mask(); - self.0.shr_assign(rhs); + *self = self.shr(rhs); } } impl ShlAssign for $name where - $type: ShlAssign, + $type: Shl, { fn shl_assign(&mut self, rhs: T) { - *self = self.mask(); - self.0.shl_assign(rhs); + *self = self.shl(rhs); } } @@ -261,7 +347,7 @@ macro_rules! implement_common { type Output = $name; fn bitor(self, rhs: $name) -> Self::Output { - $name(self.mask().0.bitor(rhs.mask().0)) + $name::mask(self.get().bitor(rhs.get())) } } @@ -269,7 +355,7 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitor(self, rhs: &'a $name) -> Self::Output { - $name(self.mask().0.bitor(rhs.mask().0)) + $name::mask(self.get().bitor(rhs.get())) } } @@ -277,7 +363,7 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitor(self, rhs: $name) -> Self::Output { - $name(self.mask().0.bitor(rhs.mask().0)) + $name::mask(self.get().bitor(rhs.get())) } } @@ -285,14 +371,13 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitor(self, rhs: &'a $name) -> Self::Output { - $name(self.mask().0.bitor(rhs.mask().0)) + $name::mask(self.get().bitor(rhs.get())) } } impl BitOrAssign<$name> for $name { fn bitor_assign(&mut self, other: $name) { - *self = self.mask(); - self.0.bitor_assign(other.mask().0) + *self = self.bitor(other); } } @@ -300,7 +385,7 @@ macro_rules! implement_common { type Output = $name; fn bitxor(self, rhs: $name) -> Self::Output { - $name(self.mask().0.bitxor(rhs.mask().0)) + $name::mask(self.get().bitxor(rhs.get())) } } @@ -308,7 +393,7 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitxor(self, rhs: &'a $name) -> Self::Output { - $name(self.mask().0.bitxor(rhs.mask().0)) + $name::mask(self.get().bitxor(rhs.get())) } } @@ -316,7 +401,7 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitxor(self, rhs: $name) -> Self::Output { - $name(self.mask().0.bitxor(rhs.mask().0)) + $name::mask(self.get().bitxor(rhs.get())) } } @@ -324,14 +409,13 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitxor(self, rhs: &'a $name) -> Self::Output { - $name(self.mask().0.bitxor(rhs.mask().0)) + $name::mask(self.get().bitxor(rhs.get())) } } impl BitXorAssign<$name> for $name { fn bitxor_assign(&mut self, other: $name) { - *self = self.mask(); - self.0.bitxor_assign(other.mask().0) + *self = self.bitxor(other); } } @@ -339,7 +423,7 @@ macro_rules! implement_common { type Output = $name; fn not(self) -> $name { - $name(self.mask().0.not()) + $name::mask(self.get().not()) } } @@ -347,7 +431,7 @@ macro_rules! implement_common { type Output = <$name as Not>::Output; fn not(self) -> $name { - $name(self.mask().0.not()) + $name::mask(self.get().not()) } } @@ -355,7 +439,7 @@ macro_rules! implement_common { type Output = $name; fn bitand(self, rhs: $name) -> Self::Output { - $name(self.mask().0.bitand(rhs.mask().0)) + $name::mask(self.get().bitand(rhs.get())) } } @@ -363,7 +447,7 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitand(self, rhs: &'a $name) -> Self::Output { - $name(self.mask().0.bitand(rhs.mask().0)) + $name::mask(self.get().bitand(rhs.get())) } } @@ -371,7 +455,7 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitand(self, rhs: $name) -> Self::Output { - $name(self.mask().0.bitand(rhs.mask().0)) + $name::mask(self.get().bitand(rhs.get())) } } @@ -379,14 +463,13 @@ macro_rules! implement_common { type Output = <$name as BitOr<$name>>::Output; fn bitand(self, rhs: &'a $name) -> Self::Output { - $name(self.mask().0.bitand(rhs.mask().0)) + $name::mask(self.get().bitand(rhs.get())) } } impl BitAndAssign<$name> for $name { fn bitand_assign(&mut self, other: $name) { - *self = self.mask(); - self.0.bitand_assign(other.mask().0) + *self = self.bitand(other); } } @@ -394,10 +477,10 @@ macro_rules! implement_common { type Output = $name; #[allow(unused_comparisons)] fn add(self, other: $name) -> $name { - if self.0 > 0 && other.0 > 0 { - debug_assert!(Self::MAX.0 - other.0 >= self.0); - } else if self.0 < 0 && other.0 < 0 { - debug_assert!(Self::MIN.0 - other.0 <= self.0); + if self.get() > 0 && other.get() > 0 { + debug_assert!($name::MAX.get() - other.get() >= self.get()); + } else if self.get() < 0 && other.get() < 0 { + debug_assert!($name::MIN.get() - other.get() <= self.get()); } self.wrapping_add(other) } @@ -408,9 +491,9 @@ macro_rules! implement_common { #[allow(unused_comparisons)] fn sub(self, other: $name) -> $name { if self > other { - debug_assert!(Self::MAX.0 + other.0 >= self.0); + debug_assert!($name::MAX.get() + other.get() >= self.get()); } else if self < other { - debug_assert!(Self::MIN.0 + other.0 <= self.0); + debug_assert!($name::MIN.get() + other.get() <= self.get()); } self.wrapping_sub(other) } diff --git a/src/niche/mod.rs b/src/niche/mod.rs new file mode 100644 index 0000000..7aa7539 --- /dev/null +++ b/src/niche/mod.rs @@ -0,0 +1,52 @@ +mod signed_bytes; +mod signed; +mod unsigned_bytes; +mod unsigned; + +pub use signed::*; +pub use unsigned::*; + +macro_rules! new_type { + ( + $( + ( $Name:ident $Primitive:ident ) + ( $min:literal ..= $max:literal ) + ( $($LittleField:ident: $LittleType:ident),* ) + ( $($BigField:ident: $BigType:ident),* ) + )* + ) => {$( + #[repr(C)] + #[cfg(target_endian = "little")] + #[derive(Copy, Clone)] + pub struct $Name { + align: [core::primitive::$Primitive; 0], + $($LittleField: $LittleType,)* + } + + #[repr(C)] + #[cfg(target_endian = "big")] + #[derive(Copy, Clone)] + pub struct $Name { + align: [core::primitive::$Primitive; 0], + $($BigField: $BigType,)* + } + + impl $Name { + pub const MIN: core::primitive::$Primitive = $min; + pub const MAX: core::primitive::$Primitive = $max; + } + )*}; +} + +macro_rules! new_byte { + ($Name:ident($Primitive:ident) { $($Variant:ident = $value:literal,)* }) => { + #[allow(dead_code)] + #[derive(Copy, Clone)] + #[repr($Primitive)] + pub(super) enum $Name { + $($Variant = $value,)* + } + } +} + +pub(crate) use {new_byte, new_type}; diff --git a/src/niche/signed.rs b/src/niche/signed.rs new file mode 100644 index 0000000..7a0dc33 --- /dev/null +++ b/src/niche/signed.rs @@ -0,0 +1,712 @@ +use super::new_type; +use super::signed_bytes::*; +use super::unsigned_bytes::Max8 as MaxU8; + +new_type! { + (i1 i8) + (-0x01 ..= 0x00) + (a: Max1) + (a: Max1) + + (i2 i8) + (-0x02 ..= 0x01) + (a: Max2) + (a: Max2) + + (i3 i8) + (-0x04 ..= 0x03) + (a: Max3) + (a: Max3) + + (i4 i8) + (-0x08 ..= 0x07) + (a: Max4) + (a: Max4) + + (i5 i8) + (-0x10 ..= 0x0f) + (a: Max5) + (a: Max5) + + (i6 i8) + (-0x20 ..= 0x1f) + (a: Max6) + (a: Max6) + + (i7 i8) + (-0x40 ..= 0x3f) + (a: Max7) + (a: Max7) + + // (i8 i8) + // (-0x80 ..= 0x7f) + // (a: Max8) + // (a: Max8) + + (i9 i16) + (-0x0100 ..= 0x00ff) + (a: MaxU8, b: Max1) + (b: Max1, a: MaxU8) + + (i10 i16) + (-0x0200 ..= 0x01ff) + (a: MaxU8, b: Max2) + (b: Max2, a: MaxU8) + + (i11 i16) + (-0x0400 ..= 0x03ff) + (a: MaxU8, b: Max3) + (b: Max3, a: MaxU8) + + (i12 i16) + (-0x0800 ..= 0x07ff) + (a: MaxU8, b: Max4) + (b: Max4, a: MaxU8) + + (i13 i16) + (-0x1000 ..= 0x0fff) + (a: MaxU8, b: Max5) + (b: Max5, a: MaxU8) + + (i14 i16) + (-0x2000 ..= 0x1fff) + (a: MaxU8, b: Max6) + (b: Max6, a: MaxU8) + + (i15 i16) + (-0x4000 ..= 0x3fff) + (a: MaxU8, b: Max7) + (b: Max7, a: MaxU8) + + // (i16 i16) + // (-0x8000 ..= 0x7fff) + // (a: MaxU8, b: Max8) + // (b: Max8, a: MaxU8) + + (i17 i32) + (-0x0001_0000 ..= 0x0000_ffff) + (a: MaxU8, b: MaxU8, c: Max1, d: Max1) + (d: Max1, c: Max1, b: MaxU8, a: MaxU8) + + (i18 i32) + (-0x0002_0000 ..= 0x0001_ffff) + (a: MaxU8, b: MaxU8, c: Max2, d: Max1) + (d: Max1, c: Max2, b: MaxU8, a: MaxU8) + + (i19 i32) + (-0x0004_0000 ..= 0x0003_ffff) + (a: MaxU8, b: MaxU8, c: Max3, d: Max1) + (d: Max1, c: Max3, b: MaxU8, a: MaxU8) + + (i20 i32) + (-0x0008_0000 ..= 0x0007_ffff) + (a: MaxU8, b: MaxU8, c: Max4, d: Max1) + (d: Max1, c: Max4, b: MaxU8, a: MaxU8) + + (i21 i32) + (-0x0010_0000 ..= 0x000f_ffff) + (a: MaxU8, b: MaxU8, c: Max5, d: Max1) + (d: Max1, c: Max5, b: MaxU8, a: MaxU8) + + (i22 i32) + (-0x0020_0000 ..= 0x001f_ffff) + (a: MaxU8, b: MaxU8, c: Max6, d: Max1) + (d: Max1, c: Max6, b: MaxU8, a: MaxU8) + + (i23 i32) + (-0x0040_0000 ..= 0x003f_ffff) + (a: MaxU8, b: MaxU8, c: Max7, d: Max1) + (d: Max1, c: Max7, b: MaxU8, a: MaxU8) + + (i24 i32) + (-0x0080_0000 ..= 0x007f_ffff) + (a: MaxU8, b: MaxU8, c: Max8, d: Max1) + (d: Max1, c: MaxU8, b: MaxU8, a: MaxU8) + + (i25 i32) + (-0x0100_0000 ..= 0x00ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: Max1) + (d: Max1, c: MaxU8, b: MaxU8, a: MaxU8) + + (i26 i32) + (-0x0200_0000 ..= 0x01ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: Max2) + (d: Max2, c: MaxU8, b: MaxU8, a: MaxU8) + + (i27 i32) + (-0x0400_0000 ..= 0x03ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: Max3) + (d: Max3, c: MaxU8, b: MaxU8, a: MaxU8) + + (i28 i32) + (-0x0800_0000 ..= 0x07ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: Max4) + (d: Max4, c: MaxU8, b: MaxU8, a: MaxU8) + + (i29 i32) + (-0x1000_0000 ..= 0x0fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: Max5) + (d: Max5, c: MaxU8, b: MaxU8, a: MaxU8) + + (i30 i32) + (-0x2000_0000 ..= 0x1fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: Max6) + (d: Max6, c: MaxU8, b: MaxU8, a: MaxU8) + + (i31 i32) + (-0x4000_0000 ..= 0x3fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: Max7) + (d: Max7, c: MaxU8, b: MaxU8, a: MaxU8) + + // (i32 i32) + // (-0x8000_0000 ..= 0x7fff_ffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: Max8) + // (d: Max8, c: MaxU8, b: MaxU8, a: MaxU8) +} + +/* + +e = f = g = h = 0 +for i in range(33, 65): + if e < 8: + e += 1 + elif f < 8: + f += 1 + elif g < 8: + g += 1 + else: + h += 1 + def M(i, j): + if i == 0: + return 'Max1' + elif (i == 8) and (j > 0): + return 'MaxU8' + else: + return f'Max{i}' + print('new_type! {') + print(f' (I{i} Buf{i} i64)') + print(f' (-0x{2**(i - 1):016x} ..= 0x{2**(i - 1) - 1:016x})') + print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: {M(e, f)}, f: {M(f, g)}, g: {M(g, h)}, h: Max{h or 1})') + print(f' (h: Max{h or 1}, g: {M(g, h)}, f: {M(f, e)}, e: {M(e, f)}, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') + print('}') + +*/ + +new_type! { + (i33 i64) + (-0x0000000100000000 ..= 0x00000000ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max1, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i34 i64) + (-0x0000000200000000 ..= 0x00000001ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max2, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i35 i64) + (-0x0000000400000000 ..= 0x00000003ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max3, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i36 i64) + (-0x0000000800000000 ..= 0x00000007ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max4, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i37 i64) + (-0x0000001000000000 ..= 0x0000000fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max5, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i38 i64) + (-0x0000002000000000 ..= 0x0000001fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max6, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i39 i64) + (-0x0000004000000000 ..= 0x0000003fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max7, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i40 i64) + (-0x0000008000000000 ..= 0x0000007fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max8, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: Max8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i41 i64) + (-0x0000010000000000 ..= 0x000000ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max1, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i42 i64) + (-0x0000020000000000 ..= 0x000001ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max2, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i43 i64) + (-0x0000040000000000 ..= 0x000003ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max3, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i44 i64) + (-0x0000080000000000 ..= 0x000007ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max4, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i45 i64) + (-0x0000100000000000 ..= 0x00000fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max5, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i46 i64) + (-0x0000200000000000 ..= 0x00001fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max6, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i47 i64) + (-0x0000400000000000 ..= 0x00003fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max7, g: Max1, h: Max1) + (h: Max1, g: Max1, f: Max7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i48 i64) + (-0x0000800000000000 ..= 0x00007fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max8, g: Max1, h: Max1) + (h: Max1, g: Max1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i49 i64) + (-0x0001000000000000 ..= 0x0000ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max1, h: Max1) + (h: Max1, g: Max1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i50 i64) + (-0x0002000000000000 ..= 0x0001ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max2, h: Max1) + (h: Max1, g: Max2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i51 i64) + (-0x0004000000000000 ..= 0x0003ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max3, h: Max1) + (h: Max1, g: Max3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i52 i64) + (-0x0008000000000000 ..= 0x0007ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max4, h: Max1) + (h: Max1, g: Max4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i53 i64) + (-0x0010000000000000 ..= 0x000fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max5, h: Max1) + (h: Max1, g: Max5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i54 i64) + (-0x0020000000000000 ..= 0x001fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max6, h: Max1) + (h: Max1, g: Max6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i55 i64) + (-0x0040000000000000 ..= 0x003fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max7, h: Max1) + (h: Max1, g: Max7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i56 i64) + (-0x0080000000000000 ..= 0x007fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max8, h: Max1) + (h: Max1, g: Max8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i57 i64) + (-0x0100000000000000 ..= 0x00ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max1) + (h: Max1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i58 i64) + (-0x0200000000000000 ..= 0x01ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max2) + (h: Max2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i59 i64) + (-0x0400000000000000 ..= 0x03ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max3) + (h: Max3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i60 i64) + (-0x0800000000000000 ..= 0x07ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max4) + (h: Max4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i61 i64) + (-0x1000000000000000 ..= 0x0fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max5) + (h: Max5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i62 i64) + (-0x2000000000000000 ..= 0x1fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max6) + (h: Max6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i63 i64) + (-0x4000000000000000 ..= 0x3fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max7) + (h: Max7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + // (i64 i64) + // (-0x8000000000000000 ..= 0x7fffffffffffffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max8) + // (h: Max8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + +/* + +i = j = k = l = m = n = o = p = 0 +for I in range(65, 129): + if i < 8: + i += 1 + elif j < 8: + j += 1 + elif k < 8: + k += 1 + elif j < 8: + j += 1 + elif l < 8: + l += 1 + elif m < 8: + m += 1 + elif n < 8: + n += 1 + elif o < 8: + o += 1 + else: + p += 1 + def M(i, j): + if i == 0: + return 'Max1' + elif (i == 8) and (j > 0): + return 'MaxU8' + else: + return f'Max{i}' + print(f' (i{I} i128)') + print(f' (-0x{2**(I - 1):032x} ..= 0x{2**(I - 1) - 1:032x})') + print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: {M(i, j)}, j: {M(j, k)}, k: {M(k, l)}, l: {M(l, m)}, m: {M(m, n)}, n: {M(n, o)}, o: {M(o, p)}, p: Max{p or 1})') + print(f' (p: Max{p or 1}, o: {M(o, p)}, n: {M(n, o)}, m: {M(m, n)}, l: {M(l, m)}, k: {M(k, l)}, j: {M(j, k)}, i: {M(i, j)}, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') + print() + +*/ + + (i65 i128) + (-0x00000000000000010000000000000000 ..= 0x0000000000000000ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max1, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i66 i128) + (-0x00000000000000020000000000000000 ..= 0x0000000000000001ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max2, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i67 i128) + (-0x00000000000000040000000000000000 ..= 0x0000000000000003ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max3, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i68 i128) + (-0x00000000000000080000000000000000 ..= 0x0000000000000007ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max4, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i69 i128) + (-0x00000000000000100000000000000000 ..= 0x000000000000000fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max5, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i70 i128) + (-0x00000000000000200000000000000000 ..= 0x000000000000001fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max6, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i71 i128) + (-0x00000000000000400000000000000000 ..= 0x000000000000003fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max7, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i72 i128) + (-0x00000000000000800000000000000000 ..= 0x000000000000007fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max8, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i73 i128) + (-0x00000000000001000000000000000000 ..= 0x00000000000000ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i74 i128) + (-0x00000000000002000000000000000000 ..= 0x00000000000001ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max2, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i75 i128) + (-0x00000000000004000000000000000000 ..= 0x00000000000003ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max3, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i76 i128) + (-0x00000000000008000000000000000000 ..= 0x00000000000007ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max4, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i77 i128) + (-0x00000000000010000000000000000000 ..= 0x0000000000000fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max5, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i78 i128) + (-0x00000000000020000000000000000000 ..= 0x0000000000001fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max6, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i79 i128) + (-0x00000000000040000000000000000000 ..= 0x0000000000003fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max7, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i80 i128) + (-0x00000000000080000000000000000000 ..= 0x0000000000007fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max8, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i81 i128) + (-0x00000000000100000000000000000000 ..= 0x000000000000ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i82 i128) + (-0x00000000000200000000000000000000 ..= 0x000000000001ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max2, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i83 i128) + (-0x00000000000400000000000000000000 ..= 0x000000000003ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max3, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i84 i128) + (-0x00000000000800000000000000000000 ..= 0x000000000007ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max4, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i85 i128) + (-0x00000000001000000000000000000000 ..= 0x00000000000fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max5, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i86 i128) + (-0x00000000002000000000000000000000 ..= 0x00000000001fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max6, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i87 i128) + (-0x00000000004000000000000000000000 ..= 0x00000000003fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max7, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i88 i128) + (-0x00000000008000000000000000000000 ..= 0x00000000007fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max8, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i89 i128) + (-0x00000000010000000000000000000000 ..= 0x0000000000ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i90 i128) + (-0x00000000020000000000000000000000 ..= 0x0000000001ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max2, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i91 i128) + (-0x00000000040000000000000000000000 ..= 0x0000000003ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max3, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i92 i128) + (-0x00000000080000000000000000000000 ..= 0x0000000007ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max4, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i93 i128) + (-0x00000000100000000000000000000000 ..= 0x000000000fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max5, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i94 i128) + (-0x00000000200000000000000000000000 ..= 0x000000001fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max6, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i95 i128) + (-0x00000000400000000000000000000000 ..= 0x000000003fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max7, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i96 i128) + (-0x00000000800000000000000000000000 ..= 0x000000007fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max8, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: Max8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i97 i128) + (-0x00000001000000000000000000000000 ..= 0x00000000ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max1, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i98 i128) + (-0x00000002000000000000000000000000 ..= 0x00000001ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max2, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i99 i128) + (-0x00000004000000000000000000000000 ..= 0x00000003ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max3, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i100 i128) + (-0x00000008000000000000000000000000 ..= 0x00000007ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max4, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i101 i128) + (-0x00000010000000000000000000000000 ..= 0x0000000fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max5, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i102 i128) + (-0x00000020000000000000000000000000 ..= 0x0000001fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max6, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i103 i128) + (-0x00000040000000000000000000000000 ..= 0x0000003fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max7, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i104 i128) + (-0x00000080000000000000000000000000 ..= 0x0000007fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max8, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: Max8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i105 i128) + (-0x00000100000000000000000000000000 ..= 0x000000ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max1, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i106 i128) + (-0x00000200000000000000000000000000 ..= 0x000001ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max2, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i107 i128) + (-0x00000400000000000000000000000000 ..= 0x000003ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max3, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i108 i128) + (-0x00000800000000000000000000000000 ..= 0x000007ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max4, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i109 i128) + (-0x00001000000000000000000000000000 ..= 0x00000fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max5, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i110 i128) + (-0x00002000000000000000000000000000 ..= 0x00001fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max6, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i111 i128) + (-0x00004000000000000000000000000000 ..= 0x00003fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max7, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i112 i128) + (-0x00008000000000000000000000000000 ..= 0x00007fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max8, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i113 i128) + (-0x00010000000000000000000000000000 ..= 0x0000ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max1, p: Max1) + (p: Max1, o: Max1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i114 i128) + (-0x00020000000000000000000000000000 ..= 0x0001ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max2, p: Max1) + (p: Max1, o: Max2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i115 i128) + (-0x00040000000000000000000000000000 ..= 0x0003ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max3, p: Max1) + (p: Max1, o: Max3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i116 i128) + (-0x00080000000000000000000000000000 ..= 0x0007ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max4, p: Max1) + (p: Max1, o: Max4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i117 i128) + (-0x00100000000000000000000000000000 ..= 0x000fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max5, p: Max1) + (p: Max1, o: Max5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i118 i128) + (-0x00200000000000000000000000000000 ..= 0x001fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max6, p: Max1) + (p: Max1, o: Max6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i119 i128) + (-0x00400000000000000000000000000000 ..= 0x003fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max7, p: Max1) + (p: Max1, o: Max7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i120 i128) + (-0x00800000000000000000000000000000 ..= 0x007fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max8, p: Max1) + (p: Max1, o: Max8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i121 i128) + (-0x01000000000000000000000000000000 ..= 0x00ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max1) + (p: Max1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i122 i128) + (-0x02000000000000000000000000000000 ..= 0x01ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max2) + (p: Max2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i123 i128) + (-0x04000000000000000000000000000000 ..= 0x03ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max3) + (p: Max3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i124 i128) + (-0x08000000000000000000000000000000 ..= 0x07ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max4) + (p: Max4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i125 i128) + (-0x10000000000000000000000000000000 ..= 0x0fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max5) + (p: Max5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i126 i128) + (-0x20000000000000000000000000000000 ..= 0x1fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max6) + (p: Max6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i127 i128) + (-0x40000000000000000000000000000000 ..= 0x3fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max7) + (p: Max7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + // (i128 i128) + // (-0x80000000000000000000000000000000 ..= 0x7fffffffffffffffffffffffffffffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max8) + // (p: Max8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) +} diff --git a/src/niche/signed_bytes.rs b/src/niche/signed_bytes.rs new file mode 100644 index 0000000..0b05f30 --- /dev/null +++ b/src/niche/signed_bytes.rs @@ -0,0 +1,535 @@ +use super::new_byte; + +new_byte!(Max1(i8) { + M1 = -1, + V0 = 0, +}); + + new_byte!(Max2(i8) { + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, +}); + + new_byte!(Max3(i8) { + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, +}); + + new_byte!(Max4(i8) { + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, +}); + + new_byte!(Max5(i8) { + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, +}); + + new_byte!(Max6(i8) { + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, +}); + + new_byte!(Max7(i8) { + M64 = -64, + M63 = -63, + M62 = -62, + M61 = -61, + M60 = -60, + M59 = -59, + M58 = -58, + M57 = -57, + M56 = -56, + M55 = -55, + M54 = -54, + M53 = -53, + M52 = -52, + M51 = -51, + M50 = -50, + M49 = -49, + M48 = -48, + M47 = -47, + M46 = -46, + M45 = -45, + M44 = -44, + M43 = -43, + M42 = -42, + M41 = -41, + M40 = -40, + M39 = -39, + M38 = -38, + M37 = -37, + M36 = -36, + M35 = -35, + M34 = -34, + M33 = -33, + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, +}); + + new_byte!(Max8(i8) { + M128 = -128, + M127 = -127, + M126 = -126, + M125 = -125, + M124 = -124, + M123 = -123, + M122 = -122, + M121 = -121, + M120 = -120, + M119 = -119, + M118 = -118, + M117 = -117, + M116 = -116, + M115 = -115, + M114 = -114, + M113 = -113, + M112 = -112, + M111 = -111, + M110 = -110, + M109 = -109, + M108 = -108, + M107 = -107, + M106 = -106, + M105 = -105, + M104 = -104, + M103 = -103, + M102 = -102, + M101 = -101, + M100 = -100, + M99 = -99, + M98 = -98, + M97 = -97, + M96 = -96, + M95 = -95, + M94 = -94, + M93 = -93, + M92 = -92, + M91 = -91, + M90 = -90, + M89 = -89, + M88 = -88, + M87 = -87, + M86 = -86, + M85 = -85, + M84 = -84, + M83 = -83, + M82 = -82, + M81 = -81, + M80 = -80, + M79 = -79, + M78 = -78, + M77 = -77, + M76 = -76, + M75 = -75, + M74 = -74, + M73 = -73, + M72 = -72, + M71 = -71, + M70 = -70, + M69 = -69, + M68 = -68, + M67 = -67, + M66 = -66, + M65 = -65, + M64 = -64, + M63 = -63, + M62 = -62, + M61 = -61, + M60 = -60, + M59 = -59, + M58 = -58, + M57 = -57, + M56 = -56, + M55 = -55, + M54 = -54, + M53 = -53, + M52 = -52, + M51 = -51, + M50 = -50, + M49 = -49, + M48 = -48, + M47 = -47, + M46 = -46, + M45 = -45, + M44 = -44, + M43 = -43, + M42 = -42, + M41 = -41, + M40 = -40, + M39 = -39, + M38 = -38, + M37 = -37, + M36 = -36, + M35 = -35, + M34 = -34, + M33 = -33, + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + V64 = 64, + V65 = 65, + V66 = 66, + V67 = 67, + V68 = 68, + V69 = 69, + V70 = 70, + V71 = 71, + V72 = 72, + V73 = 73, + V74 = 74, + V75 = 75, + V76 = 76, + V77 = 77, + V78 = 78, + V79 = 79, + V80 = 80, + V81 = 81, + V82 = 82, + V83 = 83, + V84 = 84, + V85 = 85, + V86 = 86, + V87 = 87, + V88 = 88, + V89 = 89, + V90 = 90, + V91 = 91, + V92 = 92, + V93 = 93, + V94 = 94, + V95 = 95, + V96 = 96, + V97 = 97, + V98 = 98, + V99 = 99, + V100 = 100, + V101 = 101, + V102 = 102, + V103 = 103, + V104 = 104, + V105 = 105, + V106 = 106, + V107 = 107, + V108 = 108, + V109 = 109, + V110 = 110, + V111 = 111, + V112 = 112, + V113 = 113, + V114 = 114, + V115 = 115, + V116 = 116, + V117 = 117, + V118 = 118, + V119 = 119, + V120 = 120, + V121 = 121, + V122 = 122, + V123 = 123, + V124 = 124, + V125 = 125, + V126 = 126, + V127 = 127, +}); diff --git a/src/niche/unsigned.rs b/src/niche/unsigned.rs new file mode 100644 index 0000000..7fb5a1b --- /dev/null +++ b/src/niche/unsigned.rs @@ -0,0 +1,696 @@ +use super::new_type; +use super::unsigned_bytes::*; + +new_type! { + (u1 u8) + (0 ..= 0x01) + (a: Max1) + (a: Max1) + + (u2 u8) + (0 ..= 0x03) + (a: Max2) + (a: Max2) + + (u3 u8) + (0 ..= 0x07) + (a: Max3) + (a: Max3) + + (u4 u8) + (0 ..= 0x0f) + (a: Max4) + (a: Max4) + + (u5 u8) + (0 ..= 0x1f) + (a: Max5) + (a: Max5) + + (u6 u8) + (0 ..= 0x3f) + (a: Max6) + (a: Max6) + + (u7 u8) + (0 ..= 0x7f) + (a: Max7) + (a: Max7) + + // (u8 u8) + // (0 ..= 0xff) + // (a: Max8) + // (a: Max8) + + (u9 u16) + (0 ..= 0x01ff) + (a: Max8, b: Max1) + (b: Max1, a: Max8) + + (u10 u16) + (0 ..= 0x03ff) + (a: Max8, b: Max2) + (b: Max2, a: Max8) + + (u11 u16) + (0 ..= 0x07ff) + (a: Max8, b: Max3) + (b: Max3, a: Max8) + + (u12 u16) + (0 ..= 0x0fff) + (a: Max8, b: Max4) + (b: Max4, a: Max8) + + (u13 u16) + (0 ..= 0x1fff) + (a: Max8, b: Max5) + (b: Max5, a: Max8) + + (u14 u16) + (0 ..= 0x3fff) + (a: Max8, b: Max6) + (b: Max6, a: Max8) + + (u15 u16) + (0 ..= 0x7fff) + (a: Max8, b: Max7) + (b: Max7, a: Max8) + + // (u16 u16) + // (0 ..= 0xffff) + // (a: Max8, b: Max8) + // (b: Max8, a: Max8) + + (u17 u32) + (0 ..= 0x0001_ffff) + (a: Max8, b: Max8, c: Max1, d: Max0) + (d: Max0, c: Max1, b: Max8, a: Max8) + + (u18 u32) + (0 ..= 0x0003_ffff) + (a: Max8, b: Max8, c: Max2, d: Max0) + (d: Max0, c: Max2, b: Max8, a: Max8) + + (u19 u32) + (0 ..= 0x0007_ffff) + (a: Max8, b: Max8, c: Max3, d: Max0) + (d: Max0, c: Max3, b: Max8, a: Max8) + + (u20 u32) + (0 ..= 0x000f_ffff) + (a: Max8, b: Max8, c: Max4, d: Max0) + (d: Max0, c: Max4, b: Max8, a: Max8) + + (u21 u32) + (0 ..= 0x001f_ffff) + (a: Max8, b: Max8, c: Max5, d: Max0) + (d: Max0, c: Max5, b: Max8, a: Max8) + + (u22 u32) + (0 ..= 0x003f_ffff) + (a: Max8, b: Max8, c: Max6, d: Max0) + (d: Max0, c: Max6, b: Max8, a: Max8) + + (u23 u32) + (0 ..= 0x007f_ffff) + (a: Max8, b: Max8, c: Max7, d: Max0) + (d: Max1, c: Max7, b: Max8, a: Max8) + + (u24 u32) + (0 ..= 0x00ff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max0) + (d: Max0, c: Max8, b: Max8, a: Max8) + + (u25 u32) + (0 ..= 0x01ff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max1) + (d: Max1, c: Max8, b: Max8, a: Max8) + + (u26 u32) + (0 ..= 0x03ff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max2) + (d: Max2, c: Max8, b: Max8, a: Max8) + + (u27 u32) + (0 ..= 0x07ff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max3) + (d: Max3, c: Max8, b: Max8, a: Max8) + + (u28 u32) + (0 ..= 0x0fff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max4) + (d: Max4, c: Max8, b: Max8, a: Max8) + + (u29 u32) + (0 ..= 0x1fff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max5) + (d: Max5, c: Max8, b: Max8, a: Max8) + + (u30 u32) + (0 ..= 0x3fff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max6) + (d: Max6, c: Max8, b: Max8, a: Max8) + + (u31 u32) + (0 ..= 0x7fff_ffff) + (a: Max8, b: Max8, c: Max8, d: Max7) + (d: Max7, c: Max8, b: Max8, a: Max8) + + // (u32 u32) + // (0 ..= 0xffff_ffff) + // (a: Max8, b: Max8, c: Max8, d: Max8) + // (d: Max8, c: Max8, b: Max8, a: Max8) + +/* +e = f = g = h = 0 +for I in range(33, 65): + if e < 8: + e += 1 + elif f < 8: + f += 1 + elif g < 8: + g += 1 + elif h < 8: + h += 1 + def M(i, j): + return f'Max{i}' + print(f' (u{I} u64)') + print(f' (0 ..= 0x{2**I-1:016x})') + print(f' (a: Max8, b: Max8, c: Max8, d: Max8, e: {M(e, f)}, f: {M(f, g)}, g: {M(g, h)}, h: {M(h, 0)})') + print(f' (h: {M(h, 0)}, g: {M(g, h)}, f: {M(f, g)}, e: {M(e, f)}, d: Max8, c: Max8, b: Max8, a: Max8)') + print() +*/ + + (u33 u64) + (0 ..= 0x00000001ffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max1, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max1, d: Max8, c: Max8, b: Max8, a: Max8) + + (u34 u64) + (0 ..= 0x00000003ffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max2, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max2, d: Max8, c: Max8, b: Max8, a: Max8) + + (u35 u64) + (0 ..= 0x00000007ffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max3, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max3, d: Max8, c: Max8, b: Max8, a: Max8) + + (u36 u64) + (0 ..= 0x0000000fffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max4, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max4, d: Max8, c: Max8, b: Max8, a: Max8) + + (u37 u64) + (0 ..= 0x0000001fffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max5, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max5, d: Max8, c: Max8, b: Max8, a: Max8) + + (u38 u64) + (0 ..= 0x0000003fffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max6, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max6, d: Max8, c: Max8, b: Max8, a: Max8) + + (u39 u64) + (0 ..= 0x0000007fffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max7, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max7, d: Max8, c: Max8, b: Max8, a: Max8) + + (u40 u64) + (0 ..= 0x000000ffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max0, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max0, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u41 u64) + (0 ..= 0x000001ffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max1, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max1, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u42 u64) + (0 ..= 0x000003ffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max2, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max2, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u43 u64) + (0 ..= 0x000007ffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max3, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max3, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u44 u64) + (0 ..= 0x00000fffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max4, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max4, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u45 u64) + (0 ..= 0x00001fffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max5, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max5, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u46 u64) + (0 ..= 0x00003fffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max6, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max6, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u47 u64) + (0 ..= 0x00007fffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max7, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max7, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u48 u64) + (0 ..= 0x0000ffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max0, h: Max0) + (h: Max0, g: Max0, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u49 u64) + (0 ..= 0x0001ffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max1, h: Max0) + (h: Max0, g: Max1, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u50 u64) + (0 ..= 0x0003ffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max2, h: Max0) + (h: Max0, g: Max2, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u51 u64) + (0 ..= 0x0007ffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max3, h: Max0) + (h: Max0, g: Max3, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u52 u64) + (0 ..= 0x000fffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max4, h: Max0) + (h: Max0, g: Max4, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u53 u64) + (0 ..= 0x001fffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max5, h: Max0) + (h: Max0, g: Max5, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u54 u64) + (0 ..= 0x003fffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max6, h: Max0) + (h: Max0, g: Max6, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u55 u64) + (0 ..= 0x007fffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max7, h: Max0) + (h: Max0, g: Max7, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u56 u64) + (0 ..= 0x00ffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max0) + (h: Max0, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u57 u64) + (0 ..= 0x01ffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max1) + (h: Max1, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u58 u64) + (0 ..= 0x03ffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max2) + (h: Max2, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u59 u64) + (0 ..= 0x07ffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max3) + (h: Max3, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u60 u64) + (0 ..= 0x0fffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max4) + (h: Max4, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u61 u64) + (0 ..= 0x1fffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max5) + (h: Max5, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u62 u64) + (0 ..= 0x3fffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max6) + (h: Max6, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u63 u64) + (0 ..= 0x7fffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max7) + (h: Max7, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + // (u64 u64) + // (0 ..= 0xffffffffffffffff) + // (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8) + // (h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + +/* + +i = j = k = l = m = n = o = p = 0 +for I in range(65, 129): + if i < 8: + i += 1 + elif j < 8: + j += 1 + elif k < 8: + k += 1 + elif j < 8: + j += 1 + elif l < 8: + l += 1 + elif m < 8: + m += 1 + elif n < 8: + n += 1 + elif o < 8: + o += 1 + else: + p += 1 + def M(i, j): + return f'Max{i}' + print(f' (u{I} u128)') + print(f' (0 ..= 0x{2**I-1:032x})') + print(f' (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: {M(i, j)}, j: {M(j, k)}, k: {M(k, l)}, l: {M(l, m)}, m: {M(m, n)}, n: {M(n, o)}, o: {M(o, p)}, p: Max{p or 1})') + print(f' (p: Max{p or 1}, o: {M(o, p)}, n: {M(n, o)}, m: {M(m, n)}, l: {M(l, m)}, k: {M(k, l)}, j: {M(j, k)}, i: {M(i, j)}, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8)') + print() + +*/ + + (u65 u128) + (0 ..= 0x0000000000000001ffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max1, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max1, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u66 u128) + (0 ..= 0x0000000000000003ffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max2, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max2, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u67 u128) + (0 ..= 0x0000000000000007ffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max3, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max3, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u68 u128) + (0 ..= 0x000000000000000fffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max4, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max4, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u69 u128) + (0 ..= 0x000000000000001fffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max5, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max5, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u70 u128) + (0 ..= 0x000000000000003fffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max6, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max6, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u71 u128) + (0 ..= 0x000000000000007fffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max7, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max7, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u72 u128) + (0 ..= 0x00000000000000ffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u73 u128) + (0 ..= 0x00000000000001ffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max1, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max1, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u74 u128) + (0 ..= 0x00000000000003ffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max2, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max2, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u75 u128) + (0 ..= 0x00000000000007ffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max3, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max3, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u76 u128) + (0 ..= 0x0000000000000fffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max4, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max4, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u77 u128) + (0 ..= 0x0000000000001fffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max5, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max5, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u78 u128) + (0 ..= 0x0000000000003fffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max6, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max6, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u79 u128) + (0 ..= 0x0000000000007fffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max7, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max7, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u80 u128) + (0 ..= 0x000000000000ffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u81 u128) + (0 ..= 0x000000000001ffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max1, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max1, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u82 u128) + (0 ..= 0x000000000003ffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max2, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max2, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u83 u128) + (0 ..= 0x000000000007ffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max3, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max3, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u84 u128) + (0 ..= 0x00000000000fffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max4, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max4, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u85 u128) + (0 ..= 0x00000000001fffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max5, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max5, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u86 u128) + (0 ..= 0x00000000003fffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max6, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max6, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u87 u128) + (0 ..= 0x00000000007fffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max7, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max7, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u88 u128) + (0 ..= 0x0000000000ffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u89 u128) + (0 ..= 0x0000000001ffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max1, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max1, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u90 u128) + (0 ..= 0x0000000003ffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max2, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max2, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u91 u128) + (0 ..= 0x0000000007ffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max3, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max3, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u92 u128) + (0 ..= 0x000000000fffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max4, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max4, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u93 u128) + (0 ..= 0x000000001fffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max5, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max5, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u94 u128) + (0 ..= 0x000000003fffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max6, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max6, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u95 u128) + (0 ..= 0x000000007fffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max7, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max7, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u96 u128) + (0 ..= 0x00000000ffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max0, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max0, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u97 u128) + (0 ..= 0x00000001ffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max1, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max1, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u98 u128) + (0 ..= 0x00000003ffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max2, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max2, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u99 u128) + (0 ..= 0x00000007ffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max3, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max3, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u100 u128) + (0 ..= 0x0000000fffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max4, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max4, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u101 u128) + (0 ..= 0x0000001fffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max5, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max5, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u102 u128) + (0 ..= 0x0000003fffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max6, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max6, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u103 u128) + (0 ..= 0x0000007fffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max7, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max7, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u104 u128) + (0 ..= 0x000000ffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max0, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max0, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u105 u128) + (0 ..= 0x000001ffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max1, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max1, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u106 u128) + (0 ..= 0x000003ffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max2, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max2, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u107 u128) + (0 ..= 0x000007ffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max3, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max3, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u108 u128) + (0 ..= 0x00000fffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max4, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max4, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u109 u128) + (0 ..= 0x00001fffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max5, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max5, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u110 u128) + (0 ..= 0x00003fffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max6, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max6, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u111 u128) + (0 ..= 0x00007fffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max7, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max7, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u112 u128) + (0 ..= 0x0000ffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max0, p: Max1) + (p: Max1, o: Max0, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u113 u128) + (0 ..= 0x0001ffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max1, p: Max1) + (p: Max1, o: Max1, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u114 u128) + (0 ..= 0x0003ffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max2, p: Max1) + (p: Max1, o: Max2, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u115 u128) + (0 ..= 0x0007ffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max3, p: Max1) + (p: Max1, o: Max3, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u116 u128) + (0 ..= 0x000fffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max4, p: Max1) + (p: Max1, o: Max4, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u117 u128) + (0 ..= 0x001fffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max5, p: Max1) + (p: Max1, o: Max5, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u118 u128) + (0 ..= 0x003fffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max6, p: Max1) + (p: Max1, o: Max6, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u119 u128) + (0 ..= 0x007fffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max7, p: Max1) + (p: Max1, o: Max7, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u120 u128) + (0 ..= 0x00ffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max1) + (p: Max1, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u121 u128) + (0 ..= 0x01ffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max1) + (p: Max1, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u122 u128) + (0 ..= 0x03ffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max2) + (p: Max2, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u123 u128) + (0 ..= 0x07ffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max3) + (p: Max3, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u124 u128) + (0 ..= 0x0fffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max4) + (p: Max4, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u125 u128) + (0 ..= 0x1fffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max5) + (p: Max5, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u126 u128) + (0 ..= 0x3fffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max6) + (p: Max6, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + (u127 u128) + (0 ..= 0x7fffffffffffffffffffffffffffffff) + (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max7) + (p: Max7, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + + // (u128 u128) + // (0 ..= 0xffffffffffffffffffffffffffffffff) + // (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max8) + // (p: Max8, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) +} diff --git a/src/niche/unsigned_bytes.rs b/src/niche/unsigned_bytes.rs new file mode 100644 index 0000000..978a14e --- /dev/null +++ b/src/niche/unsigned_bytes.rs @@ -0,0 +1,539 @@ +use super::new_byte; + +new_byte!(Max0(u8) { + V0 = 0, +}); + +new_byte!(Max1(u8) { + V0 = 0, + V1 = 1, +}); + +new_byte!(Max2(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, +}); + +new_byte!(Max3(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, +}); + +new_byte!(Max4(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, +}); + +new_byte!(Max5(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, +}); + +new_byte!(Max6(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, +}); + +new_byte!(Max7(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + V64 = 64, + V65 = 65, + V66 = 66, + V67 = 67, + V68 = 68, + V69 = 69, + V70 = 70, + V71 = 71, + V72 = 72, + V73 = 73, + V74 = 74, + V75 = 75, + V76 = 76, + V77 = 77, + V78 = 78, + V79 = 79, + V80 = 80, + V81 = 81, + V82 = 82, + V83 = 83, + V84 = 84, + V85 = 85, + V86 = 86, + V87 = 87, + V88 = 88, + V89 = 89, + V90 = 90, + V91 = 91, + V92 = 92, + V93 = 93, + V94 = 94, + V95 = 95, + V96 = 96, + V97 = 97, + V98 = 98, + V99 = 99, + V100 = 100, + V101 = 101, + V102 = 102, + V103 = 103, + V104 = 104, + V105 = 105, + V106 = 106, + V107 = 107, + V108 = 108, + V109 = 109, + V110 = 110, + V111 = 111, + V112 = 112, + V113 = 113, + V114 = 114, + V115 = 115, + V116 = 116, + V117 = 117, + V118 = 118, + V119 = 119, + V120 = 120, + V121 = 121, + V122 = 122, + V123 = 123, + V124 = 124, + V125 = 125, + V126 = 126, + V127 = 127, +}); + +new_byte!(Max8(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + V64 = 64, + V65 = 65, + V66 = 66, + V67 = 67, + V68 = 68, + V69 = 69, + V70 = 70, + V71 = 71, + V72 = 72, + V73 = 73, + V74 = 74, + V75 = 75, + V76 = 76, + V77 = 77, + V78 = 78, + V79 = 79, + V80 = 80, + V81 = 81, + V82 = 82, + V83 = 83, + V84 = 84, + V85 = 85, + V86 = 86, + V87 = 87, + V88 = 88, + V89 = 89, + V90 = 90, + V91 = 91, + V92 = 92, + V93 = 93, + V94 = 94, + V95 = 95, + V96 = 96, + V97 = 97, + V98 = 98, + V99 = 99, + V100 = 100, + V101 = 101, + V102 = 102, + V103 = 103, + V104 = 104, + V105 = 105, + V106 = 106, + V107 = 107, + V108 = 108, + V109 = 109, + V110 = 110, + V111 = 111, + V112 = 112, + V113 = 113, + V114 = 114, + V115 = 115, + V116 = 116, + V117 = 117, + V118 = 118, + V119 = 119, + V120 = 120, + V121 = 121, + V122 = 122, + V123 = 123, + V124 = 124, + V125 = 125, + V126 = 126, + V127 = 127, + V128 = 128, + V129 = 129, + V130 = 130, + V131 = 131, + V132 = 132, + V133 = 133, + V134 = 134, + V135 = 135, + V136 = 136, + V137 = 137, + V138 = 138, + V139 = 139, + V140 = 140, + V141 = 141, + V142 = 142, + V143 = 143, + V144 = 144, + V145 = 145, + V146 = 146, + V147 = 147, + V148 = 148, + V149 = 149, + V150 = 150, + V151 = 151, + V152 = 152, + V153 = 153, + V154 = 154, + V155 = 155, + V156 = 156, + V157 = 157, + V158 = 158, + V159 = 159, + V160 = 160, + V161 = 161, + V162 = 162, + V163 = 163, + V164 = 164, + V165 = 165, + V166 = 166, + V167 = 167, + V168 = 168, + V169 = 169, + V170 = 170, + V171 = 171, + V172 = 172, + V173 = 173, + V174 = 174, + V175 = 175, + V176 = 176, + V177 = 177, + V178 = 178, + V179 = 179, + V180 = 180, + V181 = 181, + V182 = 182, + V183 = 183, + V184 = 184, + V185 = 185, + V186 = 186, + V187 = 187, + V188 = 188, + V189 = 189, + V190 = 190, + V191 = 191, + V192 = 192, + V193 = 193, + V194 = 194, + V195 = 195, + V196 = 196, + V197 = 197, + V198 = 198, + V199 = 199, + V200 = 200, + V201 = 201, + V202 = 202, + V203 = 203, + V204 = 204, + V205 = 205, + V206 = 206, + V207 = 207, + V208 = 208, + V209 = 209, + V210 = 210, + V211 = 211, + V212 = 212, + V213 = 213, + V214 = 214, + V215 = 215, + V216 = 216, + V217 = 217, + V218 = 218, + V219 = 219, + V220 = 220, + V221 = 221, + V222 = 222, + V223 = 223, + V224 = 224, + V225 = 225, + V226 = 226, + V227 = 227, + V228 = 228, + V229 = 229, + V230 = 230, + V231 = 231, + V232 = 232, + V233 = 233, + V234 = 234, + V235 = 235, + V236 = 236, + V237 = 237, + V238 = 238, + V239 = 239, + V240 = 240, + V241 = 241, + V242 = 242, + V243 = 243, + V244 = 244, + V245 = 245, + V246 = 246, + V247 = 247, + V248 = 248, + V249 = 249, + V250 = 250, + V251 = 251, + V252 = 252, + V253 = 253, + V254 = 254, + V255 = 255, +}); From 191510c75f096eecb9c7c12d5a1df6239e31d44d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Mon, 5 Sep 2022 19:23:48 +0200 Subject: [PATCH 3/8] FIXUP: distinguish between signed and unsigned bytes --- src/niche/signed.rs | 518 +++++++++++++++++------------------ src/niche/signed_bytes.rs | 16 +- src/niche/unsigned.rs | 520 ++++++++++++++++++------------------ src/niche/unsigned_bytes.rs | 18 +- 4 files changed, 536 insertions(+), 536 deletions(-) diff --git a/src/niche/signed.rs b/src/niche/signed.rs index 7a0dc33..1ab3487 100644 --- a/src/niche/signed.rs +++ b/src/niche/signed.rs @@ -1,167 +1,167 @@ use super::new_type; use super::signed_bytes::*; -use super::unsigned_bytes::Max8 as MaxU8; +use super::unsigned_bytes::*; new_type! { (i1 i8) (-0x01 ..= 0x00) - (a: Max1) - (a: Max1) + (a: MaxI1) + (a: MaxI1) (i2 i8) (-0x02 ..= 0x01) - (a: Max2) - (a: Max2) + (a: MaxI2) + (a: MaxI2) (i3 i8) (-0x04 ..= 0x03) - (a: Max3) - (a: Max3) + (a: MaxI3) + (a: MaxI3) (i4 i8) (-0x08 ..= 0x07) - (a: Max4) - (a: Max4) + (a: MaxI4) + (a: MaxI4) (i5 i8) (-0x10 ..= 0x0f) - (a: Max5) - (a: Max5) + (a: MaxI5) + (a: MaxI5) (i6 i8) (-0x20 ..= 0x1f) - (a: Max6) - (a: Max6) + (a: MaxI6) + (a: MaxI6) (i7 i8) (-0x40 ..= 0x3f) - (a: Max7) - (a: Max7) + (a: MaxI7) + (a: MaxI7) // (i8 i8) // (-0x80 ..= 0x7f) - // (a: Max8) - // (a: Max8) + // (a: MaxI8) + // (a: MaxI8) (i9 i16) (-0x0100 ..= 0x00ff) - (a: MaxU8, b: Max1) - (b: Max1, a: MaxU8) + (a: MaxU8, b: MaxI1) + (b: MaxI1, a: MaxU8) (i10 i16) (-0x0200 ..= 0x01ff) - (a: MaxU8, b: Max2) - (b: Max2, a: MaxU8) + (a: MaxU8, b: MaxI2) + (b: MaxI2, a: MaxU8) (i11 i16) (-0x0400 ..= 0x03ff) - (a: MaxU8, b: Max3) - (b: Max3, a: MaxU8) + (a: MaxU8, b: MaxI3) + (b: MaxI3, a: MaxU8) (i12 i16) (-0x0800 ..= 0x07ff) - (a: MaxU8, b: Max4) - (b: Max4, a: MaxU8) + (a: MaxU8, b: MaxI4) + (b: MaxI4, a: MaxU8) (i13 i16) (-0x1000 ..= 0x0fff) - (a: MaxU8, b: Max5) - (b: Max5, a: MaxU8) + (a: MaxU8, b: MaxI5) + (b: MaxI5, a: MaxU8) (i14 i16) (-0x2000 ..= 0x1fff) - (a: MaxU8, b: Max6) - (b: Max6, a: MaxU8) + (a: MaxU8, b: MaxI6) + (b: MaxI6, a: MaxU8) (i15 i16) (-0x4000 ..= 0x3fff) - (a: MaxU8, b: Max7) - (b: Max7, a: MaxU8) + (a: MaxU8, b: MaxI7) + (b: MaxI7, a: MaxU8) // (i16 i16) // (-0x8000 ..= 0x7fff) - // (a: MaxU8, b: Max8) - // (b: Max8, a: MaxU8) + // (a: MaxU8, b: MaxI8) + // (b: MaxI8, a: MaxU8) (i17 i32) (-0x0001_0000 ..= 0x0000_ffff) - (a: MaxU8, b: MaxU8, c: Max1, d: Max1) - (d: Max1, c: Max1, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI1, d: MaxI1) + (d: MaxI1, c: MaxI1, b: MaxU8, a: MaxU8) (i18 i32) (-0x0002_0000 ..= 0x0001_ffff) - (a: MaxU8, b: MaxU8, c: Max2, d: Max1) - (d: Max1, c: Max2, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI2, d: MaxI1) + (d: MaxI1, c: MaxI2, b: MaxU8, a: MaxU8) (i19 i32) (-0x0004_0000 ..= 0x0003_ffff) - (a: MaxU8, b: MaxU8, c: Max3, d: Max1) - (d: Max1, c: Max3, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI3, d: MaxI1) + (d: MaxI1, c: MaxI3, b: MaxU8, a: MaxU8) (i20 i32) (-0x0008_0000 ..= 0x0007_ffff) - (a: MaxU8, b: MaxU8, c: Max4, d: Max1) - (d: Max1, c: Max4, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI4, d: MaxI1) + (d: MaxI1, c: MaxI4, b: MaxU8, a: MaxU8) (i21 i32) (-0x0010_0000 ..= 0x000f_ffff) - (a: MaxU8, b: MaxU8, c: Max5, d: Max1) - (d: Max1, c: Max5, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI5, d: MaxI1) + (d: MaxI1, c: MaxI5, b: MaxU8, a: MaxU8) (i22 i32) (-0x0020_0000 ..= 0x001f_ffff) - (a: MaxU8, b: MaxU8, c: Max6, d: Max1) - (d: Max1, c: Max6, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI6, d: MaxI1) + (d: MaxI1, c: MaxI6, b: MaxU8, a: MaxU8) (i23 i32) (-0x0040_0000 ..= 0x003f_ffff) - (a: MaxU8, b: MaxU8, c: Max7, d: Max1) - (d: Max1, c: Max7, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI7, d: MaxI1) + (d: MaxI1, c: MaxI7, b: MaxU8, a: MaxU8) (i24 i32) (-0x0080_0000 ..= 0x007f_ffff) - (a: MaxU8, b: MaxU8, c: Max8, d: Max1) - (d: Max1, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxI8, d: MaxI1) + (d: MaxI1, c: MaxU8, b: MaxU8, a: MaxU8) (i25 i32) (-0x0100_0000 ..= 0x00ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: Max1) - (d: Max1, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI1) + (d: MaxI1, c: MaxU8, b: MaxU8, a: MaxU8) (i26 i32) (-0x0200_0000 ..= 0x01ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: Max2) - (d: Max2, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI2) + (d: MaxI2, c: MaxU8, b: MaxU8, a: MaxU8) (i27 i32) (-0x0400_0000 ..= 0x03ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: Max3) - (d: Max3, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI3) + (d: MaxI3, c: MaxU8, b: MaxU8, a: MaxU8) (i28 i32) (-0x0800_0000 ..= 0x07ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: Max4) - (d: Max4, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI4) + (d: MaxI4, c: MaxU8, b: MaxU8, a: MaxU8) (i29 i32) (-0x1000_0000 ..= 0x0fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: Max5) - (d: Max5, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI5) + (d: MaxI5, c: MaxU8, b: MaxU8, a: MaxU8) (i30 i32) (-0x2000_0000 ..= 0x1fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: Max6) - (d: Max6, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI6) + (d: MaxI6, c: MaxU8, b: MaxU8, a: MaxU8) (i31 i32) (-0x4000_0000 ..= 0x3fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: Max7) - (d: Max7, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI7) + (d: MaxI7, c: MaxU8, b: MaxU8, a: MaxU8) // (i32 i32) // (-0x8000_0000 ..= 0x7fff_ffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: Max8) - // (d: Max8, c: MaxU8, b: MaxU8, a: MaxU8) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI8) + // (d: MaxI8, c: MaxU8, b: MaxU8, a: MaxU8) } /* @@ -178,7 +178,7 @@ for i in range(33, 65): h += 1 def M(i, j): if i == 0: - return 'Max1' + return 'MaxI1' elif (i == 8) and (j > 0): return 'MaxU8' else: @@ -195,163 +195,163 @@ for i in range(33, 65): new_type! { (i33 i64) (-0x0000000100000000 ..= 0x00000000ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max1, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI1, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i34 i64) (-0x0000000200000000 ..= 0x00000001ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max2, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI2, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i35 i64) (-0x0000000400000000 ..= 0x00000003ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max3, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI3, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i36 i64) (-0x0000000800000000 ..= 0x00000007ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max4, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI4, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i37 i64) (-0x0000001000000000 ..= 0x0000000fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max5, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI5, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i38 i64) (-0x0000002000000000 ..= 0x0000001fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max6, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI6, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i39 i64) (-0x0000004000000000 ..= 0x0000003fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max7, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI7, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i40 i64) (-0x0000008000000000 ..= 0x0000007fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: Max8, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: Max8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI8, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i41 i64) (-0x0000010000000000 ..= 0x000000ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max1, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i42 i64) (-0x0000020000000000 ..= 0x000001ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max2, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI2, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i43 i64) (-0x0000040000000000 ..= 0x000003ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max3, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI3, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i44 i64) (-0x0000080000000000 ..= 0x000007ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max4, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI4, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i45 i64) (-0x0000100000000000 ..= 0x00000fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max5, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI5, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i46 i64) (-0x0000200000000000 ..= 0x00001fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max6, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI6, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i47 i64) (-0x0000400000000000 ..= 0x00003fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max7, g: Max1, h: Max1) - (h: Max1, g: Max1, f: Max7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI7, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i48 i64) (-0x0000800000000000 ..= 0x00007fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: Max8, g: Max1, h: Max1) - (h: Max1, g: Max1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI8, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i49 i64) (-0x0001000000000000 ..= 0x0000ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max1, h: Max1) - (h: Max1, g: Max1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i50 i64) (-0x0002000000000000 ..= 0x0001ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max2, h: Max1) - (h: Max1, g: Max2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI2, h: MaxI1) + (h: MaxI1, g: MaxI2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i51 i64) (-0x0004000000000000 ..= 0x0003ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max3, h: Max1) - (h: Max1, g: Max3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI3, h: MaxI1) + (h: MaxI1, g: MaxI3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i52 i64) (-0x0008000000000000 ..= 0x0007ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max4, h: Max1) - (h: Max1, g: Max4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI4, h: MaxI1) + (h: MaxI1, g: MaxI4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i53 i64) (-0x0010000000000000 ..= 0x000fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max5, h: Max1) - (h: Max1, g: Max5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI5, h: MaxI1) + (h: MaxI1, g: MaxI5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i54 i64) (-0x0020000000000000 ..= 0x001fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max6, h: Max1) - (h: Max1, g: Max6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI6, h: MaxI1) + (h: MaxI1, g: MaxI6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i55 i64) (-0x0040000000000000 ..= 0x003fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max7, h: Max1) - (h: Max1, g: Max7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI7, h: MaxI1) + (h: MaxI1, g: MaxI7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i56 i64) (-0x0080000000000000 ..= 0x007fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: Max8, h: Max1) - (h: Max1, g: Max8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI8, h: MaxI1) + (h: MaxI1, g: MaxI8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i57 i64) (-0x0100000000000000 ..= 0x00ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max1) - (h: Max1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI1) + (h: MaxI1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i58 i64) (-0x0200000000000000 ..= 0x01ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max2) - (h: Max2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI2) + (h: MaxI2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i59 i64) (-0x0400000000000000 ..= 0x03ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max3) - (h: Max3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI3) + (h: MaxI3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i60 i64) (-0x0800000000000000 ..= 0x07ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max4) - (h: Max4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI4) + (h: MaxI4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i61 i64) (-0x1000000000000000 ..= 0x0fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max5) - (h: Max5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI5) + (h: MaxI5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i62 i64) (-0x2000000000000000 ..= 0x1fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max6) - (h: Max6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI6) + (h: MaxI6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i63 i64) (-0x4000000000000000 ..= 0x3fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max7) - (h: Max7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI7) + (h: MaxI7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) // (i64 i64) // (-0x8000000000000000 ..= 0x7fffffffffffffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: Max8) - // (h: Max8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI8) + // (h: MaxI8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) /* @@ -377,7 +377,7 @@ for I in range(65, 129): p += 1 def M(i, j): if i == 0: - return 'Max1' + return 'MaxI1' elif (i == 8) and (j > 0): return 'MaxU8' else: @@ -392,321 +392,321 @@ for I in range(65, 129): (i65 i128) (-0x00000000000000010000000000000000 ..= 0x0000000000000000ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max1, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI1, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i66 i128) (-0x00000000000000020000000000000000 ..= 0x0000000000000001ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max2, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI2, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i67 i128) (-0x00000000000000040000000000000000 ..= 0x0000000000000003ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max3, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI3, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i68 i128) (-0x00000000000000080000000000000000 ..= 0x0000000000000007ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max4, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI4, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i69 i128) (-0x00000000000000100000000000000000 ..= 0x000000000000000fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max5, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI5, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i70 i128) (-0x00000000000000200000000000000000 ..= 0x000000000000001fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max6, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI6, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i71 i128) (-0x00000000000000400000000000000000 ..= 0x000000000000003fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max7, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI7, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i72 i128) (-0x00000000000000800000000000000000 ..= 0x000000000000007fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: Max8, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: Max8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI8, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i73 i128) (-0x00000000000001000000000000000000 ..= 0x00000000000000ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max1, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i74 i128) (-0x00000000000002000000000000000000 ..= 0x00000000000001ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max2, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI2, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i75 i128) (-0x00000000000004000000000000000000 ..= 0x00000000000003ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max3, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI3, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i76 i128) (-0x00000000000008000000000000000000 ..= 0x00000000000007ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max4, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI4, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i77 i128) (-0x00000000000010000000000000000000 ..= 0x0000000000000fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max5, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI5, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i78 i128) (-0x00000000000020000000000000000000 ..= 0x0000000000001fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max6, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI6, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i79 i128) (-0x00000000000040000000000000000000 ..= 0x0000000000003fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max7, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI7, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i80 i128) (-0x00000000000080000000000000000000 ..= 0x0000000000007fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: Max8, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: Max8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI8, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i81 i128) (-0x00000000000100000000000000000000 ..= 0x000000000000ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max1, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i82 i128) (-0x00000000000200000000000000000000 ..= 0x000000000001ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max2, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI2, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i83 i128) (-0x00000000000400000000000000000000 ..= 0x000000000003ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max3, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI3, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i84 i128) (-0x00000000000800000000000000000000 ..= 0x000000000007ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max4, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI4, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i85 i128) (-0x00000000001000000000000000000000 ..= 0x00000000000fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max5, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI5, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i86 i128) (-0x00000000002000000000000000000000 ..= 0x00000000001fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max6, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI6, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i87 i128) (-0x00000000004000000000000000000000 ..= 0x00000000003fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max7, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI7, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i88 i128) (-0x00000000008000000000000000000000 ..= 0x00000000007fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: Max8, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: Max8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI8, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i89 i128) (-0x00000000010000000000000000000000 ..= 0x0000000000ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max1, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i90 i128) (-0x00000000020000000000000000000000 ..= 0x0000000001ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max2, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI2, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i91 i128) (-0x00000000040000000000000000000000 ..= 0x0000000003ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max3, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI3, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i92 i128) (-0x00000000080000000000000000000000 ..= 0x0000000007ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max4, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI4, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i93 i128) (-0x00000000100000000000000000000000 ..= 0x000000000fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max5, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI5, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i94 i128) (-0x00000000200000000000000000000000 ..= 0x000000001fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max6, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI6, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i95 i128) (-0x00000000400000000000000000000000 ..= 0x000000003fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max7, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI7, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i96 i128) (-0x00000000800000000000000000000000 ..= 0x000000007fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: Max8, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: Max8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI8, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i97 i128) (-0x00000001000000000000000000000000 ..= 0x00000000ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max1, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i98 i128) (-0x00000002000000000000000000000000 ..= 0x00000001ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max2, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI2, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i99 i128) (-0x00000004000000000000000000000000 ..= 0x00000003ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max3, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI3, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i100 i128) (-0x00000008000000000000000000000000 ..= 0x00000007ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max4, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI4, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i101 i128) (-0x00000010000000000000000000000000 ..= 0x0000000fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max5, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI5, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i102 i128) (-0x00000020000000000000000000000000 ..= 0x0000001fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max6, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI6, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i103 i128) (-0x00000040000000000000000000000000 ..= 0x0000003fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max7, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI7, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i104 i128) (-0x00000080000000000000000000000000 ..= 0x0000007fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: Max8, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: Max8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI8, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i105 i128) (-0x00000100000000000000000000000000 ..= 0x000000ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max1, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i106 i128) (-0x00000200000000000000000000000000 ..= 0x000001ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max2, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI2, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i107 i128) (-0x00000400000000000000000000000000 ..= 0x000003ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max3, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI3, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i108 i128) (-0x00000800000000000000000000000000 ..= 0x000007ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max4, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI4, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i109 i128) (-0x00001000000000000000000000000000 ..= 0x00000fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max5, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI5, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i110 i128) (-0x00002000000000000000000000000000 ..= 0x00001fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max6, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI6, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i111 i128) (-0x00004000000000000000000000000000 ..= 0x00003fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max7, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI7, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i112 i128) (-0x00008000000000000000000000000000 ..= 0x00007fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: Max8, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI8, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i113 i128) (-0x00010000000000000000000000000000 ..= 0x0000ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max1, p: Max1) - (p: Max1, o: Max1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i114 i128) (-0x00020000000000000000000000000000 ..= 0x0001ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max2, p: Max1) - (p: Max1, o: Max2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI2, p: MaxI1) + (p: MaxI1, o: MaxI2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i115 i128) (-0x00040000000000000000000000000000 ..= 0x0003ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max3, p: Max1) - (p: Max1, o: Max3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI3, p: MaxI1) + (p: MaxI1, o: MaxI3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i116 i128) (-0x00080000000000000000000000000000 ..= 0x0007ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max4, p: Max1) - (p: Max1, o: Max4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI4, p: MaxI1) + (p: MaxI1, o: MaxI4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i117 i128) (-0x00100000000000000000000000000000 ..= 0x000fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max5, p: Max1) - (p: Max1, o: Max5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI5, p: MaxI1) + (p: MaxI1, o: MaxI5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i118 i128) (-0x00200000000000000000000000000000 ..= 0x001fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max6, p: Max1) - (p: Max1, o: Max6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI6, p: MaxI1) + (p: MaxI1, o: MaxI6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i119 i128) (-0x00400000000000000000000000000000 ..= 0x003fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max7, p: Max1) - (p: Max1, o: Max7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI7, p: MaxI1) + (p: MaxI1, o: MaxI7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i120 i128) (-0x00800000000000000000000000000000 ..= 0x007fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: Max8, p: Max1) - (p: Max1, o: Max8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI8, p: MaxI1) + (p: MaxI1, o: MaxI8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i121 i128) (-0x01000000000000000000000000000000 ..= 0x00ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max1) - (p: Max1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI1) + (p: MaxI1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i122 i128) (-0x02000000000000000000000000000000 ..= 0x01ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max2) - (p: Max2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI2) + (p: MaxI2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i123 i128) (-0x04000000000000000000000000000000 ..= 0x03ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max3) - (p: Max3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI3) + (p: MaxI3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i124 i128) (-0x08000000000000000000000000000000 ..= 0x07ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max4) - (p: Max4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI4) + (p: MaxI4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i125 i128) (-0x10000000000000000000000000000000 ..= 0x0fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max5) - (p: Max5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI5) + (p: MaxI5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i126 i128) (-0x20000000000000000000000000000000 ..= 0x1fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max6) - (p: Max6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI6) + (p: MaxI6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (i127 i128) (-0x40000000000000000000000000000000 ..= 0x3fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max7) - (p: Max7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI7) + (p: MaxI7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) // (i128 i128) // (-0x80000000000000000000000000000000 ..= 0x7fffffffffffffffffffffffffffffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: Max8) - // (p: Max8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI8) + // (p: MaxI8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) } diff --git a/src/niche/signed_bytes.rs b/src/niche/signed_bytes.rs index 0b05f30..9463914 100644 --- a/src/niche/signed_bytes.rs +++ b/src/niche/signed_bytes.rs @@ -1,18 +1,18 @@ use super::new_byte; -new_byte!(Max1(i8) { +new_byte!(MaxI1(i8) { M1 = -1, V0 = 0, }); - new_byte!(Max2(i8) { + new_byte!(MaxI2(i8) { M2 = -2, M1 = -1, V0 = 0, V1 = 1, }); - new_byte!(Max3(i8) { + new_byte!(MaxI3(i8) { M4 = -4, M3 = -3, M2 = -2, @@ -23,7 +23,7 @@ new_byte!(Max1(i8) { V3 = 3, }); - new_byte!(Max4(i8) { + new_byte!(MaxI4(i8) { M8 = -8, M7 = -7, M6 = -6, @@ -42,7 +42,7 @@ new_byte!(Max1(i8) { V7 = 7, }); - new_byte!(Max5(i8) { + new_byte!(MaxI5(i8) { M16 = -16, M15 = -15, M14 = -14, @@ -77,7 +77,7 @@ new_byte!(Max1(i8) { V15 = 15, }); - new_byte!(Max6(i8) { + new_byte!(MaxI6(i8) { M32 = -32, M31 = -31, M30 = -30, @@ -144,7 +144,7 @@ new_byte!(Max1(i8) { V31 = 31, }); - new_byte!(Max7(i8) { + new_byte!(MaxI7(i8) { M64 = -64, M63 = -63, M62 = -62, @@ -275,7 +275,7 @@ new_byte!(Max1(i8) { V63 = 63, }); - new_byte!(Max8(i8) { + new_byte!(MaxI8(i8) { M128 = -128, M127 = -127, M126 = -126, diff --git a/src/niche/unsigned.rs b/src/niche/unsigned.rs index 7fb5a1b..fc65575 100644 --- a/src/niche/unsigned.rs +++ b/src/niche/unsigned.rs @@ -4,163 +4,163 @@ use super::unsigned_bytes::*; new_type! { (u1 u8) (0 ..= 0x01) - (a: Max1) - (a: Max1) + (a: MaxU1) + (a: MaxU1) (u2 u8) (0 ..= 0x03) - (a: Max2) - (a: Max2) + (a: MaxU2) + (a: MaxU2) (u3 u8) (0 ..= 0x07) - (a: Max3) - (a: Max3) + (a: MaxU3) + (a: MaxU3) (u4 u8) (0 ..= 0x0f) - (a: Max4) - (a: Max4) + (a: MaxU4) + (a: MaxU4) (u5 u8) (0 ..= 0x1f) - (a: Max5) - (a: Max5) + (a: MaxU5) + (a: MaxU5) (u6 u8) (0 ..= 0x3f) - (a: Max6) - (a: Max6) + (a: MaxU6) + (a: MaxU6) (u7 u8) (0 ..= 0x7f) - (a: Max7) - (a: Max7) + (a: MaxU7) + (a: MaxU7) // (u8 u8) // (0 ..= 0xff) - // (a: Max8) - // (a: Max8) + // (a: MaxU8) + // (a: MaxU8) (u9 u16) (0 ..= 0x01ff) - (a: Max8, b: Max1) - (b: Max1, a: Max8) + (a: MaxU8, b: MaxU1) + (b: MaxU1, a: MaxU8) (u10 u16) (0 ..= 0x03ff) - (a: Max8, b: Max2) - (b: Max2, a: Max8) + (a: MaxU8, b: MaxU2) + (b: MaxU2, a: MaxU8) (u11 u16) (0 ..= 0x07ff) - (a: Max8, b: Max3) - (b: Max3, a: Max8) + (a: MaxU8, b: MaxU3) + (b: MaxU3, a: MaxU8) (u12 u16) (0 ..= 0x0fff) - (a: Max8, b: Max4) - (b: Max4, a: Max8) + (a: MaxU8, b: MaxU4) + (b: MaxU4, a: MaxU8) (u13 u16) (0 ..= 0x1fff) - (a: Max8, b: Max5) - (b: Max5, a: Max8) + (a: MaxU8, b: MaxU5) + (b: MaxU5, a: MaxU8) (u14 u16) (0 ..= 0x3fff) - (a: Max8, b: Max6) - (b: Max6, a: Max8) + (a: MaxU8, b: MaxU6) + (b: MaxU6, a: MaxU8) (u15 u16) (0 ..= 0x7fff) - (a: Max8, b: Max7) - (b: Max7, a: Max8) + (a: MaxU8, b: MaxU7) + (b: MaxU7, a: MaxU8) // (u16 u16) // (0 ..= 0xffff) - // (a: Max8, b: Max8) - // (b: Max8, a: Max8) + // (a: MaxU8, b: MaxU8) + // (b: MaxU8, a: MaxU8) (u17 u32) (0 ..= 0x0001_ffff) - (a: Max8, b: Max8, c: Max1, d: Max0) - (d: Max0, c: Max1, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU1, d: MaxU0) + (d: MaxU0, c: MaxU1, b: MaxU8, a: MaxU8) (u18 u32) (0 ..= 0x0003_ffff) - (a: Max8, b: Max8, c: Max2, d: Max0) - (d: Max0, c: Max2, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU2, d: MaxU0) + (d: MaxU0, c: MaxU2, b: MaxU8, a: MaxU8) (u19 u32) (0 ..= 0x0007_ffff) - (a: Max8, b: Max8, c: Max3, d: Max0) - (d: Max0, c: Max3, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU3, d: MaxU0) + (d: MaxU0, c: MaxU3, b: MaxU8, a: MaxU8) (u20 u32) (0 ..= 0x000f_ffff) - (a: Max8, b: Max8, c: Max4, d: Max0) - (d: Max0, c: Max4, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU4, d: MaxU0) + (d: MaxU0, c: MaxU4, b: MaxU8, a: MaxU8) (u21 u32) (0 ..= 0x001f_ffff) - (a: Max8, b: Max8, c: Max5, d: Max0) - (d: Max0, c: Max5, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU5, d: MaxU0) + (d: MaxU0, c: MaxU5, b: MaxU8, a: MaxU8) (u22 u32) (0 ..= 0x003f_ffff) - (a: Max8, b: Max8, c: Max6, d: Max0) - (d: Max0, c: Max6, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU6, d: MaxU0) + (d: MaxU0, c: MaxU6, b: MaxU8, a: MaxU8) (u23 u32) (0 ..= 0x007f_ffff) - (a: Max8, b: Max8, c: Max7, d: Max0) - (d: Max1, c: Max7, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU7, d: MaxU0) + (d: MaxU1, c: MaxU7, b: MaxU8, a: MaxU8) (u24 u32) (0 ..= 0x00ff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max0) - (d: Max0, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU0) + (d: MaxU0, c: MaxU8, b: MaxU8, a: MaxU8) (u25 u32) (0 ..= 0x01ff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max1) - (d: Max1, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU1) + (d: MaxU1, c: MaxU8, b: MaxU8, a: MaxU8) (u26 u32) (0 ..= 0x03ff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max2) - (d: Max2, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU2) + (d: MaxU2, c: MaxU8, b: MaxU8, a: MaxU8) (u27 u32) (0 ..= 0x07ff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max3) - (d: Max3, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU3) + (d: MaxU3, c: MaxU8, b: MaxU8, a: MaxU8) (u28 u32) (0 ..= 0x0fff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max4) - (d: Max4, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU4) + (d: MaxU4, c: MaxU8, b: MaxU8, a: MaxU8) (u29 u32) (0 ..= 0x1fff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max5) - (d: Max5, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU5) + (d: MaxU5, c: MaxU8, b: MaxU8, a: MaxU8) (u30 u32) (0 ..= 0x3fff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max6) - (d: Max6, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU6) + (d: MaxU6, c: MaxU8, b: MaxU8, a: MaxU8) (u31 u32) (0 ..= 0x7fff_ffff) - (a: Max8, b: Max8, c: Max8, d: Max7) - (d: Max7, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU7) + (d: MaxU7, c: MaxU8, b: MaxU8, a: MaxU8) // (u32 u32) // (0 ..= 0xffff_ffff) - // (a: Max8, b: Max8, c: Max8, d: Max8) - // (d: Max8, c: Max8, b: Max8, a: Max8) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8) + // (d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) /* e = f = g = h = 0 @@ -177,170 +177,170 @@ for I in range(33, 65): return f'Max{i}' print(f' (u{I} u64)') print(f' (0 ..= 0x{2**I-1:016x})') - print(f' (a: Max8, b: Max8, c: Max8, d: Max8, e: {M(e, f)}, f: {M(f, g)}, g: {M(g, h)}, h: {M(h, 0)})') - print(f' (h: {M(h, 0)}, g: {M(g, h)}, f: {M(f, g)}, e: {M(e, f)}, d: Max8, c: Max8, b: Max8, a: Max8)') + print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: {M(e, f)}, f: {M(f, g)}, g: {M(g, h)}, h: {M(h, 0)})') + print(f' (h: {M(h, 0)}, g: {M(g, h)}, f: {M(f, g)}, e: {M(e, f)}, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') print() */ (u33 u64) (0 ..= 0x00000001ffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max1, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max1, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU1, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u34 u64) (0 ..= 0x00000003ffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max2, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max2, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU2, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u35 u64) (0 ..= 0x00000007ffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max3, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max3, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU3, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u36 u64) (0 ..= 0x0000000fffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max4, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max4, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU4, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u37 u64) (0 ..= 0x0000001fffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max5, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max5, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU5, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u38 u64) (0 ..= 0x0000003fffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max6, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max6, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU6, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u39 u64) (0 ..= 0x0000007fffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max7, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max7, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU7, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u40 u64) (0 ..= 0x000000ffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max0, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max0, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u41 u64) (0 ..= 0x000001ffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max1, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max1, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU1, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u42 u64) (0 ..= 0x000003ffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max2, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max2, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU2, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u43 u64) (0 ..= 0x000007ffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max3, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max3, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU3, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u44 u64) (0 ..= 0x00000fffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max4, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max4, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU4, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u45 u64) (0 ..= 0x00001fffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max5, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max5, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU5, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u46 u64) (0 ..= 0x00003fffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max6, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max6, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU6, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u47 u64) (0 ..= 0x00007fffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max7, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max7, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU7, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u48 u64) (0 ..= 0x0000ffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max0, h: Max0) - (h: Max0, g: Max0, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u49 u64) (0 ..= 0x0001ffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max1, h: Max0) - (h: Max0, g: Max1, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU1, h: MaxU0) + (h: MaxU0, g: MaxU1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u50 u64) (0 ..= 0x0003ffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max2, h: Max0) - (h: Max0, g: Max2, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU2, h: MaxU0) + (h: MaxU0, g: MaxU2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u51 u64) (0 ..= 0x0007ffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max3, h: Max0) - (h: Max0, g: Max3, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU3, h: MaxU0) + (h: MaxU0, g: MaxU3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u52 u64) (0 ..= 0x000fffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max4, h: Max0) - (h: Max0, g: Max4, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU4, h: MaxU0) + (h: MaxU0, g: MaxU4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u53 u64) (0 ..= 0x001fffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max5, h: Max0) - (h: Max0, g: Max5, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU5, h: MaxU0) + (h: MaxU0, g: MaxU5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u54 u64) (0 ..= 0x003fffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max6, h: Max0) - (h: Max0, g: Max6, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU6, h: MaxU0) + (h: MaxU0, g: MaxU6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u55 u64) (0 ..= 0x007fffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max7, h: Max0) - (h: Max0, g: Max7, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU7, h: MaxU0) + (h: MaxU0, g: MaxU7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u56 u64) (0 ..= 0x00ffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max0) - (h: Max0, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU0) + (h: MaxU0, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u57 u64) (0 ..= 0x01ffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max1) - (h: Max1, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU1) + (h: MaxU1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u58 u64) (0 ..= 0x03ffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max2) - (h: Max2, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU2) + (h: MaxU2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u59 u64) (0 ..= 0x07ffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max3) - (h: Max3, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU3) + (h: MaxU3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u60 u64) (0 ..= 0x0fffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max4) - (h: Max4, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU4) + (h: MaxU4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u61 u64) (0 ..= 0x1fffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max5) - (h: Max5, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU5) + (h: MaxU5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u62 u64) (0 ..= 0x3fffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max6) - (h: Max6, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU6) + (h: MaxU6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u63 u64) (0 ..= 0x7fffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max7) - (h: Max7, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU7) + (h: MaxU7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) // (u64 u64) // (0 ..= 0xffffffffffffffff) - // (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8) - // (h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8) + // (h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) /* @@ -368,329 +368,329 @@ for I in range(65, 129): return f'Max{i}' print(f' (u{I} u128)') print(f' (0 ..= 0x{2**I-1:032x})') - print(f' (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: {M(i, j)}, j: {M(j, k)}, k: {M(k, l)}, l: {M(l, m)}, m: {M(m, n)}, n: {M(n, o)}, o: {M(o, p)}, p: Max{p or 1})') - print(f' (p: Max{p or 1}, o: {M(o, p)}, n: {M(n, o)}, m: {M(m, n)}, l: {M(l, m)}, k: {M(k, l)}, j: {M(j, k)}, i: {M(i, j)}, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8)') + print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: {M(i, j)}, j: {M(j, k)}, k: {M(k, l)}, l: {M(l, m)}, m: {M(m, n)}, n: {M(n, o)}, o: {M(o, p)}, p: Max{p or 1})') + print(f' (p: Max{p or 1}, o: {M(o, p)}, n: {M(n, o)}, m: {M(m, n)}, l: {M(l, m)}, k: {M(k, l)}, j: {M(j, k)}, i: {M(i, j)}, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') print() */ (u65 u128) (0 ..= 0x0000000000000001ffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max1, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max1, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU1, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u66 u128) (0 ..= 0x0000000000000003ffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max2, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max2, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU2, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u67 u128) (0 ..= 0x0000000000000007ffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max3, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max3, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU3, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u68 u128) (0 ..= 0x000000000000000fffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max4, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max4, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU4, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u69 u128) (0 ..= 0x000000000000001fffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max5, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max5, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU5, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u70 u128) (0 ..= 0x000000000000003fffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max6, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max6, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU6, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u71 u128) (0 ..= 0x000000000000007fffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max7, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max7, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU7, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u72 u128) (0 ..= 0x00000000000000ffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max0, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max0, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u73 u128) (0 ..= 0x00000000000001ffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max1, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max1, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU1, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u74 u128) (0 ..= 0x00000000000003ffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max2, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max2, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU2, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u75 u128) (0 ..= 0x00000000000007ffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max3, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max3, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU3, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u76 u128) (0 ..= 0x0000000000000fffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max4, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max4, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU4, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u77 u128) (0 ..= 0x0000000000001fffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max5, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max5, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU5, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u78 u128) (0 ..= 0x0000000000003fffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max6, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max6, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU6, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u79 u128) (0 ..= 0x0000000000007fffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max7, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max7, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU7, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u80 u128) (0 ..= 0x000000000000ffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max0, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max0, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u81 u128) (0 ..= 0x000000000001ffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max1, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max1, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU1, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u82 u128) (0 ..= 0x000000000003ffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max2, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max2, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU2, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u83 u128) (0 ..= 0x000000000007ffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max3, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max3, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU3, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u84 u128) (0 ..= 0x00000000000fffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max4, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max4, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU4, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u85 u128) (0 ..= 0x00000000001fffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max5, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max5, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU5, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u86 u128) (0 ..= 0x00000000003fffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max6, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max6, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU6, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u87 u128) (0 ..= 0x00000000007fffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max7, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max7, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU7, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u88 u128) (0 ..= 0x0000000000ffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max0, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max0, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u89 u128) (0 ..= 0x0000000001ffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max1, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max1, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU1, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u90 u128) (0 ..= 0x0000000003ffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max2, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max2, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU2, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u91 u128) (0 ..= 0x0000000007ffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max3, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max3, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU3, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u92 u128) (0 ..= 0x000000000fffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max4, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max4, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU4, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u93 u128) (0 ..= 0x000000001fffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max5, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max5, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU5, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u94 u128) (0 ..= 0x000000003fffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max6, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max6, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU6, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u95 u128) (0 ..= 0x000000007fffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max7, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max7, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU7, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u96 u128) (0 ..= 0x00000000ffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max0, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max0, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u97 u128) (0 ..= 0x00000001ffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max1, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max1, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU1, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u98 u128) (0 ..= 0x00000003ffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max2, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max2, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU2, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u99 u128) (0 ..= 0x00000007ffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max3, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max3, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU3, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u100 u128) (0 ..= 0x0000000fffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max4, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max4, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU4, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u101 u128) (0 ..= 0x0000001fffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max5, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max5, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU5, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u102 u128) (0 ..= 0x0000003fffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max6, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max6, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU6, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u103 u128) (0 ..= 0x0000007fffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max7, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max7, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU7, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u104 u128) (0 ..= 0x000000ffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max0, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max0, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u105 u128) (0 ..= 0x000001ffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max1, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max1, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU1, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u106 u128) (0 ..= 0x000003ffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max2, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max2, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU2, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u107 u128) (0 ..= 0x000007ffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max3, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max3, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU3, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u108 u128) (0 ..= 0x00000fffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max4, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max4, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU4, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u109 u128) (0 ..= 0x00001fffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max5, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max5, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU5, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u110 u128) (0 ..= 0x00003fffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max6, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max6, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU6, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u111 u128) (0 ..= 0x00007fffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max7, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max7, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU7, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u112 u128) (0 ..= 0x0000ffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max0, p: Max1) - (p: Max1, o: Max0, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u113 u128) (0 ..= 0x0001ffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max1, p: Max1) - (p: Max1, o: Max1, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU1, p: MaxU1) + (p: MaxU1, o: MaxU1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u114 u128) (0 ..= 0x0003ffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max2, p: Max1) - (p: Max1, o: Max2, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU2, p: MaxU1) + (p: MaxU1, o: MaxU2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u115 u128) (0 ..= 0x0007ffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max3, p: Max1) - (p: Max1, o: Max3, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU3, p: MaxU1) + (p: MaxU1, o: MaxU3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u116 u128) (0 ..= 0x000fffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max4, p: Max1) - (p: Max1, o: Max4, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU4, p: MaxU1) + (p: MaxU1, o: MaxU4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u117 u128) (0 ..= 0x001fffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max5, p: Max1) - (p: Max1, o: Max5, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU5, p: MaxU1) + (p: MaxU1, o: MaxU5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u118 u128) (0 ..= 0x003fffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max6, p: Max1) - (p: Max1, o: Max6, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU6, p: MaxU1) + (p: MaxU1, o: MaxU6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u119 u128) (0 ..= 0x007fffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max7, p: Max1) - (p: Max1, o: Max7, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU7, p: MaxU1) + (p: MaxU1, o: MaxU7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u120 u128) (0 ..= 0x00ffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max1) - (p: Max1, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU1) + (p: MaxU1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u121 u128) (0 ..= 0x01ffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max1) - (p: Max1, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU1) + (p: MaxU1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u122 u128) (0 ..= 0x03ffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max2) - (p: Max2, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU2) + (p: MaxU2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u123 u128) (0 ..= 0x07ffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max3) - (p: Max3, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU3) + (p: MaxU3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u124 u128) (0 ..= 0x0fffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max4) - (p: Max4, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU4) + (p: MaxU4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u125 u128) (0 ..= 0x1fffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max5) - (p: Max5, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU5) + (p: MaxU5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u126 u128) (0 ..= 0x3fffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max6) - (p: Max6, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU6) + (p: MaxU6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) (u127 u128) (0 ..= 0x7fffffffffffffffffffffffffffffff) - (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max7) - (p: Max7, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU7) + (p: MaxU7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) // (u128 u128) // (0 ..= 0xffffffffffffffffffffffffffffffff) - // (a: Max8, b: Max8, c: Max8, d: Max8, e: Max8, f: Max8, g: Max8, h: Max8, i: Max8, j: Max8, k: Max8, l: Max8, m: Max8, n: Max8, o: Max8, p: Max8) - // (p: Max8, o: Max8, n: Max8, m: Max8, l: Max8, k: Max8, j: Max8, i: Max8, h: Max8, g: Max8, f: Max8, e: Max8, d: Max8, c: Max8, b: Max8, a: Max8) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU8) + // (p: MaxU8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) } diff --git a/src/niche/unsigned_bytes.rs b/src/niche/unsigned_bytes.rs index 978a14e..2040023 100644 --- a/src/niche/unsigned_bytes.rs +++ b/src/niche/unsigned_bytes.rs @@ -1,22 +1,22 @@ use super::new_byte; -new_byte!(Max0(u8) { +new_byte!(MaxU0(u8) { V0 = 0, }); -new_byte!(Max1(u8) { +new_byte!(MaxU1(u8) { V0 = 0, V1 = 1, }); -new_byte!(Max2(u8) { +new_byte!(MaxU2(u8) { V0 = 0, V1 = 1, V2 = 2, V3 = 3, }); -new_byte!(Max3(u8) { +new_byte!(MaxU3(u8) { V0 = 0, V1 = 1, V2 = 2, @@ -27,7 +27,7 @@ new_byte!(Max3(u8) { V7 = 7, }); -new_byte!(Max4(u8) { +new_byte!(MaxU4(u8) { V0 = 0, V1 = 1, V2 = 2, @@ -46,7 +46,7 @@ new_byte!(Max4(u8) { V15 = 15, }); -new_byte!(Max5(u8) { +new_byte!(MaxU5(u8) { V0 = 0, V1 = 1, V2 = 2, @@ -81,7 +81,7 @@ new_byte!(Max5(u8) { V31 = 31, }); -new_byte!(Max6(u8) { +new_byte!(MaxU6(u8) { V0 = 0, V1 = 1, V2 = 2, @@ -148,7 +148,7 @@ new_byte!(Max6(u8) { V63 = 63, }); -new_byte!(Max7(u8) { +new_byte!(MaxU7(u8) { V0 = 0, V1 = 1, V2 = 2, @@ -279,7 +279,7 @@ new_byte!(Max7(u8) { V127 = 127, }); -new_byte!(Max8(u8) { +new_byte!(MaxU8(u8) { V0 = 0, V1 = 1, V2 = 2, From 36acdeb88be38666b995e46275fa3b525f1f125f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Mon, 5 Sep 2022 19:31:39 +0200 Subject: [PATCH 4/8] FIXUP: combine signed_bytes and unsigned_bytes --- src/niche/{unsigned_bytes.rs => bytes.rs} | 534 +++++++++++++++++++++ src/niche/mod.rs | 3 +- src/niche/signed.rs | 3 +- src/niche/signed_bytes.rs | 535 ---------------------- src/niche/unsigned.rs | 2 +- 5 files changed, 537 insertions(+), 540 deletions(-) rename src/niche/{unsigned_bytes.rs => bytes.rs} (50%) delete mode 100644 src/niche/signed_bytes.rs diff --git a/src/niche/unsigned_bytes.rs b/src/niche/bytes.rs similarity index 50% rename from src/niche/unsigned_bytes.rs rename to src/niche/bytes.rs index 2040023..812b247 100644 --- a/src/niche/unsigned_bytes.rs +++ b/src/niche/bytes.rs @@ -1,5 +1,539 @@ use super::new_byte; +new_byte!(MaxI1(i8) { + M1 = -1, + V0 = 0, +}); + + new_byte!(MaxI2(i8) { + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, +}); + + new_byte!(MaxI3(i8) { + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, +}); + + new_byte!(MaxI4(i8) { + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, +}); + + new_byte!(MaxI5(i8) { + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, +}); + + new_byte!(MaxI6(i8) { + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, +}); + + new_byte!(MaxI7(i8) { + M64 = -64, + M63 = -63, + M62 = -62, + M61 = -61, + M60 = -60, + M59 = -59, + M58 = -58, + M57 = -57, + M56 = -56, + M55 = -55, + M54 = -54, + M53 = -53, + M52 = -52, + M51 = -51, + M50 = -50, + M49 = -49, + M48 = -48, + M47 = -47, + M46 = -46, + M45 = -45, + M44 = -44, + M43 = -43, + M42 = -42, + M41 = -41, + M40 = -40, + M39 = -39, + M38 = -38, + M37 = -37, + M36 = -36, + M35 = -35, + M34 = -34, + M33 = -33, + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, +}); + + new_byte!(MaxI8(i8) { + M128 = -128, + M127 = -127, + M126 = -126, + M125 = -125, + M124 = -124, + M123 = -123, + M122 = -122, + M121 = -121, + M120 = -120, + M119 = -119, + M118 = -118, + M117 = -117, + M116 = -116, + M115 = -115, + M114 = -114, + M113 = -113, + M112 = -112, + M111 = -111, + M110 = -110, + M109 = -109, + M108 = -108, + M107 = -107, + M106 = -106, + M105 = -105, + M104 = -104, + M103 = -103, + M102 = -102, + M101 = -101, + M100 = -100, + M99 = -99, + M98 = -98, + M97 = -97, + M96 = -96, + M95 = -95, + M94 = -94, + M93 = -93, + M92 = -92, + M91 = -91, + M90 = -90, + M89 = -89, + M88 = -88, + M87 = -87, + M86 = -86, + M85 = -85, + M84 = -84, + M83 = -83, + M82 = -82, + M81 = -81, + M80 = -80, + M79 = -79, + M78 = -78, + M77 = -77, + M76 = -76, + M75 = -75, + M74 = -74, + M73 = -73, + M72 = -72, + M71 = -71, + M70 = -70, + M69 = -69, + M68 = -68, + M67 = -67, + M66 = -66, + M65 = -65, + M64 = -64, + M63 = -63, + M62 = -62, + M61 = -61, + M60 = -60, + M59 = -59, + M58 = -58, + M57 = -57, + M56 = -56, + M55 = -55, + M54 = -54, + M53 = -53, + M52 = -52, + M51 = -51, + M50 = -50, + M49 = -49, + M48 = -48, + M47 = -47, + M46 = -46, + M45 = -45, + M44 = -44, + M43 = -43, + M42 = -42, + M41 = -41, + M40 = -40, + M39 = -39, + M38 = -38, + M37 = -37, + M36 = -36, + M35 = -35, + M34 = -34, + M33 = -33, + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + V64 = 64, + V65 = 65, + V66 = 66, + V67 = 67, + V68 = 68, + V69 = 69, + V70 = 70, + V71 = 71, + V72 = 72, + V73 = 73, + V74 = 74, + V75 = 75, + V76 = 76, + V77 = 77, + V78 = 78, + V79 = 79, + V80 = 80, + V81 = 81, + V82 = 82, + V83 = 83, + V84 = 84, + V85 = 85, + V86 = 86, + V87 = 87, + V88 = 88, + V89 = 89, + V90 = 90, + V91 = 91, + V92 = 92, + V93 = 93, + V94 = 94, + V95 = 95, + V96 = 96, + V97 = 97, + V98 = 98, + V99 = 99, + V100 = 100, + V101 = 101, + V102 = 102, + V103 = 103, + V104 = 104, + V105 = 105, + V106 = 106, + V107 = 107, + V108 = 108, + V109 = 109, + V110 = 110, + V111 = 111, + V112 = 112, + V113 = 113, + V114 = 114, + V115 = 115, + V116 = 116, + V117 = 117, + V118 = 118, + V119 = 119, + V120 = 120, + V121 = 121, + V122 = 122, + V123 = 123, + V124 = 124, + V125 = 125, + V126 = 126, + V127 = 127, +}); + new_byte!(MaxU0(u8) { V0 = 0, }); diff --git a/src/niche/mod.rs b/src/niche/mod.rs index 7aa7539..fddd694 100644 --- a/src/niche/mod.rs +++ b/src/niche/mod.rs @@ -1,6 +1,5 @@ -mod signed_bytes; +mod bytes; mod signed; -mod unsigned_bytes; mod unsigned; pub use signed::*; diff --git a/src/niche/signed.rs b/src/niche/signed.rs index 1ab3487..b301601 100644 --- a/src/niche/signed.rs +++ b/src/niche/signed.rs @@ -1,6 +1,5 @@ use super::new_type; -use super::signed_bytes::*; -use super::unsigned_bytes::*; +use super::bytes::*; new_type! { (i1 i8) diff --git a/src/niche/signed_bytes.rs b/src/niche/signed_bytes.rs deleted file mode 100644 index 9463914..0000000 --- a/src/niche/signed_bytes.rs +++ /dev/null @@ -1,535 +0,0 @@ -use super::new_byte; - -new_byte!(MaxI1(i8) { - M1 = -1, - V0 = 0, -}); - - new_byte!(MaxI2(i8) { - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, -}); - - new_byte!(MaxI3(i8) { - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, -}); - - new_byte!(MaxI4(i8) { - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, -}); - - new_byte!(MaxI5(i8) { - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, -}); - - new_byte!(MaxI6(i8) { - M32 = -32, - M31 = -31, - M30 = -30, - M29 = -29, - M28 = -28, - M27 = -27, - M26 = -26, - M25 = -25, - M24 = -24, - M23 = -23, - M22 = -22, - M21 = -21, - M20 = -20, - M19 = -19, - M18 = -18, - M17 = -17, - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, -}); - - new_byte!(MaxI7(i8) { - M64 = -64, - M63 = -63, - M62 = -62, - M61 = -61, - M60 = -60, - M59 = -59, - M58 = -58, - M57 = -57, - M56 = -56, - M55 = -55, - M54 = -54, - M53 = -53, - M52 = -52, - M51 = -51, - M50 = -50, - M49 = -49, - M48 = -48, - M47 = -47, - M46 = -46, - M45 = -45, - M44 = -44, - M43 = -43, - M42 = -42, - M41 = -41, - M40 = -40, - M39 = -39, - M38 = -38, - M37 = -37, - M36 = -36, - M35 = -35, - M34 = -34, - M33 = -33, - M32 = -32, - M31 = -31, - M30 = -30, - M29 = -29, - M28 = -28, - M27 = -27, - M26 = -26, - M25 = -25, - M24 = -24, - M23 = -23, - M22 = -22, - M21 = -21, - M20 = -20, - M19 = -19, - M18 = -18, - M17 = -17, - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, - V32 = 32, - V33 = 33, - V34 = 34, - V35 = 35, - V36 = 36, - V37 = 37, - V38 = 38, - V39 = 39, - V40 = 40, - V41 = 41, - V42 = 42, - V43 = 43, - V44 = 44, - V45 = 45, - V46 = 46, - V47 = 47, - V48 = 48, - V49 = 49, - V50 = 50, - V51 = 51, - V52 = 52, - V53 = 53, - V54 = 54, - V55 = 55, - V56 = 56, - V57 = 57, - V58 = 58, - V59 = 59, - V60 = 60, - V61 = 61, - V62 = 62, - V63 = 63, -}); - - new_byte!(MaxI8(i8) { - M128 = -128, - M127 = -127, - M126 = -126, - M125 = -125, - M124 = -124, - M123 = -123, - M122 = -122, - M121 = -121, - M120 = -120, - M119 = -119, - M118 = -118, - M117 = -117, - M116 = -116, - M115 = -115, - M114 = -114, - M113 = -113, - M112 = -112, - M111 = -111, - M110 = -110, - M109 = -109, - M108 = -108, - M107 = -107, - M106 = -106, - M105 = -105, - M104 = -104, - M103 = -103, - M102 = -102, - M101 = -101, - M100 = -100, - M99 = -99, - M98 = -98, - M97 = -97, - M96 = -96, - M95 = -95, - M94 = -94, - M93 = -93, - M92 = -92, - M91 = -91, - M90 = -90, - M89 = -89, - M88 = -88, - M87 = -87, - M86 = -86, - M85 = -85, - M84 = -84, - M83 = -83, - M82 = -82, - M81 = -81, - M80 = -80, - M79 = -79, - M78 = -78, - M77 = -77, - M76 = -76, - M75 = -75, - M74 = -74, - M73 = -73, - M72 = -72, - M71 = -71, - M70 = -70, - M69 = -69, - M68 = -68, - M67 = -67, - M66 = -66, - M65 = -65, - M64 = -64, - M63 = -63, - M62 = -62, - M61 = -61, - M60 = -60, - M59 = -59, - M58 = -58, - M57 = -57, - M56 = -56, - M55 = -55, - M54 = -54, - M53 = -53, - M52 = -52, - M51 = -51, - M50 = -50, - M49 = -49, - M48 = -48, - M47 = -47, - M46 = -46, - M45 = -45, - M44 = -44, - M43 = -43, - M42 = -42, - M41 = -41, - M40 = -40, - M39 = -39, - M38 = -38, - M37 = -37, - M36 = -36, - M35 = -35, - M34 = -34, - M33 = -33, - M32 = -32, - M31 = -31, - M30 = -30, - M29 = -29, - M28 = -28, - M27 = -27, - M26 = -26, - M25 = -25, - M24 = -24, - M23 = -23, - M22 = -22, - M21 = -21, - M20 = -20, - M19 = -19, - M18 = -18, - M17 = -17, - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, - V32 = 32, - V33 = 33, - V34 = 34, - V35 = 35, - V36 = 36, - V37 = 37, - V38 = 38, - V39 = 39, - V40 = 40, - V41 = 41, - V42 = 42, - V43 = 43, - V44 = 44, - V45 = 45, - V46 = 46, - V47 = 47, - V48 = 48, - V49 = 49, - V50 = 50, - V51 = 51, - V52 = 52, - V53 = 53, - V54 = 54, - V55 = 55, - V56 = 56, - V57 = 57, - V58 = 58, - V59 = 59, - V60 = 60, - V61 = 61, - V62 = 62, - V63 = 63, - V64 = 64, - V65 = 65, - V66 = 66, - V67 = 67, - V68 = 68, - V69 = 69, - V70 = 70, - V71 = 71, - V72 = 72, - V73 = 73, - V74 = 74, - V75 = 75, - V76 = 76, - V77 = 77, - V78 = 78, - V79 = 79, - V80 = 80, - V81 = 81, - V82 = 82, - V83 = 83, - V84 = 84, - V85 = 85, - V86 = 86, - V87 = 87, - V88 = 88, - V89 = 89, - V90 = 90, - V91 = 91, - V92 = 92, - V93 = 93, - V94 = 94, - V95 = 95, - V96 = 96, - V97 = 97, - V98 = 98, - V99 = 99, - V100 = 100, - V101 = 101, - V102 = 102, - V103 = 103, - V104 = 104, - V105 = 105, - V106 = 106, - V107 = 107, - V108 = 108, - V109 = 109, - V110 = 110, - V111 = 111, - V112 = 112, - V113 = 113, - V114 = 114, - V115 = 115, - V116 = 116, - V117 = 117, - V118 = 118, - V119 = 119, - V120 = 120, - V121 = 121, - V122 = 122, - V123 = 123, - V124 = 124, - V125 = 125, - V126 = 126, - V127 = 127, -}); diff --git a/src/niche/unsigned.rs b/src/niche/unsigned.rs index fc65575..327ed2b 100644 --- a/src/niche/unsigned.rs +++ b/src/niche/unsigned.rs @@ -1,5 +1,5 @@ use super::new_type; -use super::unsigned_bytes::*; +use super::bytes::*; new_type! { (u1 u8) From 01c5bf312845857ddeffc84470d797b61e6170a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Wed, 14 Sep 2022 13:58:36 +0200 Subject: [PATCH 5/8] FIXUP: combine into one file --- src/niche.rs | 2404 +++++++++++++++++++++++++++++++++++++++++ src/niche/bytes.rs | 1073 ------------------ src/niche/mod.rs | 51 - src/niche/signed.rs | 711 ------------ src/niche/unsigned.rs | 696 ------------ 5 files changed, 2404 insertions(+), 2531 deletions(-) create mode 100644 src/niche.rs delete mode 100644 src/niche/bytes.rs delete mode 100644 src/niche/mod.rs delete mode 100644 src/niche/signed.rs delete mode 100644 src/niche/unsigned.rs diff --git a/src/niche.rs b/src/niche.rs new file mode 100644 index 0000000..f9e5d24 --- /dev/null +++ b/src/niche.rs @@ -0,0 +1,2404 @@ +macro_rules! new_byte { + ( + $( + $Name:ident($Primitive:ident) { $($Variant:ident = $value:literal,)* } + )* + ) => {$( + #[allow(dead_code)] + #[derive(Copy, Clone)] + #[repr($Primitive)] + enum $Name { + $($Variant = $value,)* + } + )*} +} + +macro_rules! new_int { + ( + $( + ( $Name:ident $Primitive:ident ) + ( $min:literal ..= $max:literal ) + ( $($LittleField:ident: $LittleType:ident),* ) + ( $($BigField:ident: $BigType:ident),* ) + )* + ) => {$( + #[cfg(target_endian = "little")] + #[allow(non_camel_case_types)] + #[derive(Copy, Clone)] + #[repr(C)] + pub(crate) struct $Name { + align: [core::primitive::$Primitive; 0], + $($LittleField: $LittleType,)* + } + + #[cfg(target_endian = "big")] + #[allow(non_camel_case_types)] + #[derive(Copy, Clone)] + #[repr(C)] + pub(crate) struct $Name { + align: [core::primitive::$Primitive; 0], + $($BigField: $BigType,)* + } + + impl $Name { + pub(crate) const MIN: core::primitive::$Primitive = $min; + pub(crate) const MAX: core::primitive::$Primitive = $max; + } + )*}; +} + +new_byte! { + MaxI1(i8) { + M1 = -1, + V0 = 0, + } + + MaxI2(i8) { + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + } + + MaxI3(i8) { + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + } + + MaxI4(i8) { + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + } + + MaxI5(i8) { + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + } + + MaxI6(i8) { + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + } + + MaxI7(i8) { + M64 = -64, + M63 = -63, + M62 = -62, + M61 = -61, + M60 = -60, + M59 = -59, + M58 = -58, + M57 = -57, + M56 = -56, + M55 = -55, + M54 = -54, + M53 = -53, + M52 = -52, + M51 = -51, + M50 = -50, + M49 = -49, + M48 = -48, + M47 = -47, + M46 = -46, + M45 = -45, + M44 = -44, + M43 = -43, + M42 = -42, + M41 = -41, + M40 = -40, + M39 = -39, + M38 = -38, + M37 = -37, + M36 = -36, + M35 = -35, + M34 = -34, + M33 = -33, + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + } + + MaxI8(i8) { + M128 = -128, + M127 = -127, + M126 = -126, + M125 = -125, + M124 = -124, + M123 = -123, + M122 = -122, + M121 = -121, + M120 = -120, + M119 = -119, + M118 = -118, + M117 = -117, + M116 = -116, + M115 = -115, + M114 = -114, + M113 = -113, + M112 = -112, + M111 = -111, + M110 = -110, + M109 = -109, + M108 = -108, + M107 = -107, + M106 = -106, + M105 = -105, + M104 = -104, + M103 = -103, + M102 = -102, + M101 = -101, + M100 = -100, + M99 = -99, + M98 = -98, + M97 = -97, + M96 = -96, + M95 = -95, + M94 = -94, + M93 = -93, + M92 = -92, + M91 = -91, + M90 = -90, + M89 = -89, + M88 = -88, + M87 = -87, + M86 = -86, + M85 = -85, + M84 = -84, + M83 = -83, + M82 = -82, + M81 = -81, + M80 = -80, + M79 = -79, + M78 = -78, + M77 = -77, + M76 = -76, + M75 = -75, + M74 = -74, + M73 = -73, + M72 = -72, + M71 = -71, + M70 = -70, + M69 = -69, + M68 = -68, + M67 = -67, + M66 = -66, + M65 = -65, + M64 = -64, + M63 = -63, + M62 = -62, + M61 = -61, + M60 = -60, + M59 = -59, + M58 = -58, + M57 = -57, + M56 = -56, + M55 = -55, + M54 = -54, + M53 = -53, + M52 = -52, + M51 = -51, + M50 = -50, + M49 = -49, + M48 = -48, + M47 = -47, + M46 = -46, + M45 = -45, + M44 = -44, + M43 = -43, + M42 = -42, + M41 = -41, + M40 = -40, + M39 = -39, + M38 = -38, + M37 = -37, + M36 = -36, + M35 = -35, + M34 = -34, + M33 = -33, + M32 = -32, + M31 = -31, + M30 = -30, + M29 = -29, + M28 = -28, + M27 = -27, + M26 = -26, + M25 = -25, + M24 = -24, + M23 = -23, + M22 = -22, + M21 = -21, + M20 = -20, + M19 = -19, + M18 = -18, + M17 = -17, + M16 = -16, + M15 = -15, + M14 = -14, + M13 = -13, + M12 = -12, + M11 = -11, + M10 = -10, + M9 = -9, + M8 = -8, + M7 = -7, + M6 = -6, + M5 = -5, + M4 = -4, + M3 = -3, + M2 = -2, + M1 = -1, + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + V64 = 64, + V65 = 65, + V66 = 66, + V67 = 67, + V68 = 68, + V69 = 69, + V70 = 70, + V71 = 71, + V72 = 72, + V73 = 73, + V74 = 74, + V75 = 75, + V76 = 76, + V77 = 77, + V78 = 78, + V79 = 79, + V80 = 80, + V81 = 81, + V82 = 82, + V83 = 83, + V84 = 84, + V85 = 85, + V86 = 86, + V87 = 87, + V88 = 88, + V89 = 89, + V90 = 90, + V91 = 91, + V92 = 92, + V93 = 93, + V94 = 94, + V95 = 95, + V96 = 96, + V97 = 97, + V98 = 98, + V99 = 99, + V100 = 100, + V101 = 101, + V102 = 102, + V103 = 103, + V104 = 104, + V105 = 105, + V106 = 106, + V107 = 107, + V108 = 108, + V109 = 109, + V110 = 110, + V111 = 111, + V112 = 112, + V113 = 113, + V114 = 114, + V115 = 115, + V116 = 116, + V117 = 117, + V118 = 118, + V119 = 119, + V120 = 120, + V121 = 121, + V122 = 122, + V123 = 123, + V124 = 124, + V125 = 125, + V126 = 126, + V127 = 127, + } + + MaxU0(u8) { + V0 = 0, + } + + MaxU1(u8) { + V0 = 0, + V1 = 1, + } + + MaxU2(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + } + + MaxU3(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + } + + MaxU4(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + } + + MaxU5(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + } + + MaxU6(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + } + + MaxU7(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + V64 = 64, + V65 = 65, + V66 = 66, + V67 = 67, + V68 = 68, + V69 = 69, + V70 = 70, + V71 = 71, + V72 = 72, + V73 = 73, + V74 = 74, + V75 = 75, + V76 = 76, + V77 = 77, + V78 = 78, + V79 = 79, + V80 = 80, + V81 = 81, + V82 = 82, + V83 = 83, + V84 = 84, + V85 = 85, + V86 = 86, + V87 = 87, + V88 = 88, + V89 = 89, + V90 = 90, + V91 = 91, + V92 = 92, + V93 = 93, + V94 = 94, + V95 = 95, + V96 = 96, + V97 = 97, + V98 = 98, + V99 = 99, + V100 = 100, + V101 = 101, + V102 = 102, + V103 = 103, + V104 = 104, + V105 = 105, + V106 = 106, + V107 = 107, + V108 = 108, + V109 = 109, + V110 = 110, + V111 = 111, + V112 = 112, + V113 = 113, + V114 = 114, + V115 = 115, + V116 = 116, + V117 = 117, + V118 = 118, + V119 = 119, + V120 = 120, + V121 = 121, + V122 = 122, + V123 = 123, + V124 = 124, + V125 = 125, + V126 = 126, + V127 = 127, + } + + MaxU8(u8) { + V0 = 0, + V1 = 1, + V2 = 2, + V3 = 3, + V4 = 4, + V5 = 5, + V6 = 6, + V7 = 7, + V8 = 8, + V9 = 9, + V10 = 10, + V11 = 11, + V12 = 12, + V13 = 13, + V14 = 14, + V15 = 15, + V16 = 16, + V17 = 17, + V18 = 18, + V19 = 19, + V20 = 20, + V21 = 21, + V22 = 22, + V23 = 23, + V24 = 24, + V25 = 25, + V26 = 26, + V27 = 27, + V28 = 28, + V29 = 29, + V30 = 30, + V31 = 31, + V32 = 32, + V33 = 33, + V34 = 34, + V35 = 35, + V36 = 36, + V37 = 37, + V38 = 38, + V39 = 39, + V40 = 40, + V41 = 41, + V42 = 42, + V43 = 43, + V44 = 44, + V45 = 45, + V46 = 46, + V47 = 47, + V48 = 48, + V49 = 49, + V50 = 50, + V51 = 51, + V52 = 52, + V53 = 53, + V54 = 54, + V55 = 55, + V56 = 56, + V57 = 57, + V58 = 58, + V59 = 59, + V60 = 60, + V61 = 61, + V62 = 62, + V63 = 63, + V64 = 64, + V65 = 65, + V66 = 66, + V67 = 67, + V68 = 68, + V69 = 69, + V70 = 70, + V71 = 71, + V72 = 72, + V73 = 73, + V74 = 74, + V75 = 75, + V76 = 76, + V77 = 77, + V78 = 78, + V79 = 79, + V80 = 80, + V81 = 81, + V82 = 82, + V83 = 83, + V84 = 84, + V85 = 85, + V86 = 86, + V87 = 87, + V88 = 88, + V89 = 89, + V90 = 90, + V91 = 91, + V92 = 92, + V93 = 93, + V94 = 94, + V95 = 95, + V96 = 96, + V97 = 97, + V98 = 98, + V99 = 99, + V100 = 100, + V101 = 101, + V102 = 102, + V103 = 103, + V104 = 104, + V105 = 105, + V106 = 106, + V107 = 107, + V108 = 108, + V109 = 109, + V110 = 110, + V111 = 111, + V112 = 112, + V113 = 113, + V114 = 114, + V115 = 115, + V116 = 116, + V117 = 117, + V118 = 118, + V119 = 119, + V120 = 120, + V121 = 121, + V122 = 122, + V123 = 123, + V124 = 124, + V125 = 125, + V126 = 126, + V127 = 127, + V128 = 128, + V129 = 129, + V130 = 130, + V131 = 131, + V132 = 132, + V133 = 133, + V134 = 134, + V135 = 135, + V136 = 136, + V137 = 137, + V138 = 138, + V139 = 139, + V140 = 140, + V141 = 141, + V142 = 142, + V143 = 143, + V144 = 144, + V145 = 145, + V146 = 146, + V147 = 147, + V148 = 148, + V149 = 149, + V150 = 150, + V151 = 151, + V152 = 152, + V153 = 153, + V154 = 154, + V155 = 155, + V156 = 156, + V157 = 157, + V158 = 158, + V159 = 159, + V160 = 160, + V161 = 161, + V162 = 162, + V163 = 163, + V164 = 164, + V165 = 165, + V166 = 166, + V167 = 167, + V168 = 168, + V169 = 169, + V170 = 170, + V171 = 171, + V172 = 172, + V173 = 173, + V174 = 174, + V175 = 175, + V176 = 176, + V177 = 177, + V178 = 178, + V179 = 179, + V180 = 180, + V181 = 181, + V182 = 182, + V183 = 183, + V184 = 184, + V185 = 185, + V186 = 186, + V187 = 187, + V188 = 188, + V189 = 189, + V190 = 190, + V191 = 191, + V192 = 192, + V193 = 193, + V194 = 194, + V195 = 195, + V196 = 196, + V197 = 197, + V198 = 198, + V199 = 199, + V200 = 200, + V201 = 201, + V202 = 202, + V203 = 203, + V204 = 204, + V205 = 205, + V206 = 206, + V207 = 207, + V208 = 208, + V209 = 209, + V210 = 210, + V211 = 211, + V212 = 212, + V213 = 213, + V214 = 214, + V215 = 215, + V216 = 216, + V217 = 217, + V218 = 218, + V219 = 219, + V220 = 220, + V221 = 221, + V222 = 222, + V223 = 223, + V224 = 224, + V225 = 225, + V226 = 226, + V227 = 227, + V228 = 228, + V229 = 229, + V230 = 230, + V231 = 231, + V232 = 232, + V233 = 233, + V234 = 234, + V235 = 235, + V236 = 236, + V237 = 237, + V238 = 238, + V239 = 239, + V240 = 240, + V241 = 241, + V242 = 242, + V243 = 243, + V244 = 244, + V245 = 245, + V246 = 246, + V247 = 247, + V248 = 248, + V249 = 249, + V250 = 250, + V251 = 251, + V252 = 252, + V253 = 253, + V254 = 254, + V255 = 255, + } +} + +new_int! { + (u1 u8) + (0 ..= 0x01) + (a: MaxU1) + (a: MaxU1) + + (u2 u8) + (0 ..= 0x03) + (a: MaxU2) + (a: MaxU2) + + (u3 u8) + (0 ..= 0x07) + (a: MaxU3) + (a: MaxU3) + + (u4 u8) + (0 ..= 0x0f) + (a: MaxU4) + (a: MaxU4) + + (u5 u8) + (0 ..= 0x1f) + (a: MaxU5) + (a: MaxU5) + + (u6 u8) + (0 ..= 0x3f) + (a: MaxU6) + (a: MaxU6) + + (u7 u8) + (0 ..= 0x7f) + (a: MaxU7) + (a: MaxU7) + + // (u8 u8) + // (0 ..= 0xff) + // (a: MaxU8) + // (a: MaxU8) + + (u9 u16) + (0 ..= 0x01ff) + (a: MaxU8, b: MaxU1) + (b: MaxU1, a: MaxU8) + + (u10 u16) + (0 ..= 0x03ff) + (a: MaxU8, b: MaxU2) + (b: MaxU2, a: MaxU8) + + (u11 u16) + (0 ..= 0x07ff) + (a: MaxU8, b: MaxU3) + (b: MaxU3, a: MaxU8) + + (u12 u16) + (0 ..= 0x0fff) + (a: MaxU8, b: MaxU4) + (b: MaxU4, a: MaxU8) + + (u13 u16) + (0 ..= 0x1fff) + (a: MaxU8, b: MaxU5) + (b: MaxU5, a: MaxU8) + + (u14 u16) + (0 ..= 0x3fff) + (a: MaxU8, b: MaxU6) + (b: MaxU6, a: MaxU8) + + (u15 u16) + (0 ..= 0x7fff) + (a: MaxU8, b: MaxU7) + (b: MaxU7, a: MaxU8) + + // (u16 u16) + // (0 ..= 0xffff) + // (a: MaxU8, b: MaxU8) + // (b: MaxU8, a: MaxU8) + + (u17 u32) + (0 ..= 0x0001_ffff) + (a: MaxU8, b: MaxU8, c: MaxU1, d: MaxU0) + (d: MaxU0, c: MaxU1, b: MaxU8, a: MaxU8) + + (u18 u32) + (0 ..= 0x0003_ffff) + (a: MaxU8, b: MaxU8, c: MaxU2, d: MaxU0) + (d: MaxU0, c: MaxU2, b: MaxU8, a: MaxU8) + + (u19 u32) + (0 ..= 0x0007_ffff) + (a: MaxU8, b: MaxU8, c: MaxU3, d: MaxU0) + (d: MaxU0, c: MaxU3, b: MaxU8, a: MaxU8) + + (u20 u32) + (0 ..= 0x000f_ffff) + (a: MaxU8, b: MaxU8, c: MaxU4, d: MaxU0) + (d: MaxU0, c: MaxU4, b: MaxU8, a: MaxU8) + + (u21 u32) + (0 ..= 0x001f_ffff) + (a: MaxU8, b: MaxU8, c: MaxU5, d: MaxU0) + (d: MaxU0, c: MaxU5, b: MaxU8, a: MaxU8) + + (u22 u32) + (0 ..= 0x003f_ffff) + (a: MaxU8, b: MaxU8, c: MaxU6, d: MaxU0) + (d: MaxU0, c: MaxU6, b: MaxU8, a: MaxU8) + + (u23 u32) + (0 ..= 0x007f_ffff) + (a: MaxU8, b: MaxU8, c: MaxU7, d: MaxU0) + (d: MaxU1, c: MaxU7, b: MaxU8, a: MaxU8) + + (u24 u32) + (0 ..= 0x00ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU0) + (d: MaxU0, c: MaxU8, b: MaxU8, a: MaxU8) + + (u25 u32) + (0 ..= 0x01ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU1) + (d: MaxU1, c: MaxU8, b: MaxU8, a: MaxU8) + + (u26 u32) + (0 ..= 0x03ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU2) + (d: MaxU2, c: MaxU8, b: MaxU8, a: MaxU8) + + (u27 u32) + (0 ..= 0x07ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU3) + (d: MaxU3, c: MaxU8, b: MaxU8, a: MaxU8) + + (u28 u32) + (0 ..= 0x0fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU4) + (d: MaxU4, c: MaxU8, b: MaxU8, a: MaxU8) + + (u29 u32) + (0 ..= 0x1fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU5) + (d: MaxU5, c: MaxU8, b: MaxU8, a: MaxU8) + + (u30 u32) + (0 ..= 0x3fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU6) + (d: MaxU6, c: MaxU8, b: MaxU8, a: MaxU8) + + (u31 u32) + (0 ..= 0x7fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU7) + (d: MaxU7, c: MaxU8, b: MaxU8, a: MaxU8) + + // (u32 u32) + // (0 ..= 0xffff_ffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8) + // (d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u33 u64) + (0 ..= 0x00000001ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU1, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u34 u64) + (0 ..= 0x00000003ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU2, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u35 u64) + (0 ..= 0x00000007ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU3, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u36 u64) + (0 ..= 0x0000000fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU4, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u37 u64) + (0 ..= 0x0000001fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU5, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u38 u64) + (0 ..= 0x0000003fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU6, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u39 u64) + (0 ..= 0x0000007fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU7, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u40 u64) + (0 ..= 0x000000ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU0, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u41 u64) + (0 ..= 0x000001ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU1, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u42 u64) + (0 ..= 0x000003ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU2, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u43 u64) + (0 ..= 0x000007ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU3, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u44 u64) + (0 ..= 0x00000fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU4, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u45 u64) + (0 ..= 0x00001fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU5, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u46 u64) + (0 ..= 0x00003fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU6, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u47 u64) + (0 ..= 0x00007fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU7, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u48 u64) + (0 ..= 0x0000ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU0, h: MaxU0) + (h: MaxU0, g: MaxU0, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u49 u64) + (0 ..= 0x0001ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU1, h: MaxU0) + (h: MaxU0, g: MaxU1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u50 u64) + (0 ..= 0x0003ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU2, h: MaxU0) + (h: MaxU0, g: MaxU2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u51 u64) + (0 ..= 0x0007ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU3, h: MaxU0) + (h: MaxU0, g: MaxU3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u52 u64) + (0 ..= 0x000fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU4, h: MaxU0) + (h: MaxU0, g: MaxU4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u53 u64) + (0 ..= 0x001fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU5, h: MaxU0) + (h: MaxU0, g: MaxU5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u54 u64) + (0 ..= 0x003fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU6, h: MaxU0) + (h: MaxU0, g: MaxU6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u55 u64) + (0 ..= 0x007fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU7, h: MaxU0) + (h: MaxU0, g: MaxU7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u56 u64) + (0 ..= 0x00ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU0) + (h: MaxU0, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u57 u64) + (0 ..= 0x01ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU1) + (h: MaxU1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u58 u64) + (0 ..= 0x03ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU2) + (h: MaxU2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u59 u64) + (0 ..= 0x07ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU3) + (h: MaxU3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u60 u64) + (0 ..= 0x0fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU4) + (h: MaxU4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u61 u64) + (0 ..= 0x1fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU5) + (h: MaxU5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u62 u64) + (0 ..= 0x3fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU6) + (h: MaxU6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u63 u64) + (0 ..= 0x7fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU7) + (h: MaxU7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + // (u64 u64) + // (0 ..= 0xffffffffffffffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8) + // (h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u65 u128) + (0 ..= 0x0000000000000001ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU1, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u66 u128) + (0 ..= 0x0000000000000003ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU2, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u67 u128) + (0 ..= 0x0000000000000007ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU3, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u68 u128) + (0 ..= 0x000000000000000fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU4, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u69 u128) + (0 ..= 0x000000000000001fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU5, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u70 u128) + (0 ..= 0x000000000000003fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU6, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u71 u128) + (0 ..= 0x000000000000007fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU7, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u72 u128) + (0 ..= 0x00000000000000ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u73 u128) + (0 ..= 0x00000000000001ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU1, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u74 u128) + (0 ..= 0x00000000000003ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU2, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u75 u128) + (0 ..= 0x00000000000007ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU3, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u76 u128) + (0 ..= 0x0000000000000fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU4, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u77 u128) + (0 ..= 0x0000000000001fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU5, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u78 u128) + (0 ..= 0x0000000000003fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU6, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u79 u128) + (0 ..= 0x0000000000007fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU7, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u80 u128) + (0 ..= 0x000000000000ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u81 u128) + (0 ..= 0x000000000001ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU1, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u82 u128) + (0 ..= 0x000000000003ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU2, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u83 u128) + (0 ..= 0x000000000007ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU3, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u84 u128) + (0 ..= 0x00000000000fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU4, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u85 u128) + (0 ..= 0x00000000001fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU5, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u86 u128) + (0 ..= 0x00000000003fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU6, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u87 u128) + (0 ..= 0x00000000007fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU7, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u88 u128) + (0 ..= 0x0000000000ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u89 u128) + (0 ..= 0x0000000001ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU1, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u90 u128) + (0 ..= 0x0000000003ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU2, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u91 u128) + (0 ..= 0x0000000007ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU3, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u92 u128) + (0 ..= 0x000000000fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU4, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u93 u128) + (0 ..= 0x000000001fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU5, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u94 u128) + (0 ..= 0x000000003fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU6, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u95 u128) + (0 ..= 0x000000007fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU7, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u96 u128) + (0 ..= 0x00000000ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u97 u128) + (0 ..= 0x00000001ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU1, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u98 u128) + (0 ..= 0x00000003ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU2, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u99 u128) + (0 ..= 0x00000007ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU3, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u100 u128) + (0 ..= 0x0000000fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU4, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u101 u128) + (0 ..= 0x0000001fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU5, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u102 u128) + (0 ..= 0x0000003fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU6, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u103 u128) + (0 ..= 0x0000007fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU7, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u104 u128) + (0 ..= 0x000000ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU0, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u105 u128) + (0 ..= 0x000001ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU1, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u106 u128) + (0 ..= 0x000003ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU2, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u107 u128) + (0 ..= 0x000007ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU3, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u108 u128) + (0 ..= 0x00000fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU4, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u109 u128) + (0 ..= 0x00001fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU5, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u110 u128) + (0 ..= 0x00003fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU6, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u111 u128) + (0 ..= 0x00007fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU7, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u112 u128) + (0 ..= 0x0000ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU0, p: MaxU1) + (p: MaxU1, o: MaxU0, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u113 u128) + (0 ..= 0x0001ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU1, p: MaxU1) + (p: MaxU1, o: MaxU1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u114 u128) + (0 ..= 0x0003ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU2, p: MaxU1) + (p: MaxU1, o: MaxU2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u115 u128) + (0 ..= 0x0007ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU3, p: MaxU1) + (p: MaxU1, o: MaxU3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u116 u128) + (0 ..= 0x000fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU4, p: MaxU1) + (p: MaxU1, o: MaxU4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u117 u128) + (0 ..= 0x001fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU5, p: MaxU1) + (p: MaxU1, o: MaxU5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u118 u128) + (0 ..= 0x003fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU6, p: MaxU1) + (p: MaxU1, o: MaxU6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u119 u128) + (0 ..= 0x007fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU7, p: MaxU1) + (p: MaxU1, o: MaxU7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u120 u128) + (0 ..= 0x00ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU1) + (p: MaxU1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u121 u128) + (0 ..= 0x01ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU1) + (p: MaxU1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u122 u128) + (0 ..= 0x03ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU2) + (p: MaxU2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u123 u128) + (0 ..= 0x07ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU3) + (p: MaxU3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u124 u128) + (0 ..= 0x0fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU4) + (p: MaxU4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u125 u128) + (0 ..= 0x1fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU5) + (p: MaxU5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u126 u128) + (0 ..= 0x3fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU6) + (p: MaxU6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (u127 u128) + (0 ..= 0x7fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU7) + (p: MaxU7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + // (u128 u128) + // (0 ..= 0xffffffffffffffffffffffffffffffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU8) + // (p: MaxU8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i1 i8) + (-0x01 ..= 0x00) + (a: MaxI1) + (a: MaxI1) + + (i2 i8) + (-0x02 ..= 0x01) + (a: MaxI2) + (a: MaxI2) + + (i3 i8) + (-0x04 ..= 0x03) + (a: MaxI3) + (a: MaxI3) + + (i4 i8) + (-0x08 ..= 0x07) + (a: MaxI4) + (a: MaxI4) + + (i5 i8) + (-0x10 ..= 0x0f) + (a: MaxI5) + (a: MaxI5) + + (i6 i8) + (-0x20 ..= 0x1f) + (a: MaxI6) + (a: MaxI6) + + (i7 i8) + (-0x40 ..= 0x3f) + (a: MaxI7) + (a: MaxI7) + + // (i8 i8) + // (-0x80 ..= 0x7f) + // (a: MaxI8) + // (a: MaxI8) + + (i9 i16) + (-0x0100 ..= 0x00ff) + (a: MaxU8, b: MaxI1) + (b: MaxI1, a: MaxU8) + + (i10 i16) + (-0x0200 ..= 0x01ff) + (a: MaxU8, b: MaxI2) + (b: MaxI2, a: MaxU8) + + (i11 i16) + (-0x0400 ..= 0x03ff) + (a: MaxU8, b: MaxI3) + (b: MaxI3, a: MaxU8) + + (i12 i16) + (-0x0800 ..= 0x07ff) + (a: MaxU8, b: MaxI4) + (b: MaxI4, a: MaxU8) + + (i13 i16) + (-0x1000 ..= 0x0fff) + (a: MaxU8, b: MaxI5) + (b: MaxI5, a: MaxU8) + + (i14 i16) + (-0x2000 ..= 0x1fff) + (a: MaxU8, b: MaxI6) + (b: MaxI6, a: MaxU8) + + (i15 i16) + (-0x4000 ..= 0x3fff) + (a: MaxU8, b: MaxI7) + (b: MaxI7, a: MaxU8) + + // (i16 i16) + // (-0x8000 ..= 0x7fff) + // (a: MaxU8, b: MaxI8) + // (b: MaxI8, a: MaxU8) + + (i17 i32) + (-0x0001_0000 ..= 0x0000_ffff) + (a: MaxU8, b: MaxU8, c: MaxI1, d: MaxI1) + (d: MaxI1, c: MaxI1, b: MaxU8, a: MaxU8) + + (i18 i32) + (-0x0002_0000 ..= 0x0001_ffff) + (a: MaxU8, b: MaxU8, c: MaxI2, d: MaxI1) + (d: MaxI1, c: MaxI2, b: MaxU8, a: MaxU8) + + (i19 i32) + (-0x0004_0000 ..= 0x0003_ffff) + (a: MaxU8, b: MaxU8, c: MaxI3, d: MaxI1) + (d: MaxI1, c: MaxI3, b: MaxU8, a: MaxU8) + + (i20 i32) + (-0x0008_0000 ..= 0x0007_ffff) + (a: MaxU8, b: MaxU8, c: MaxI4, d: MaxI1) + (d: MaxI1, c: MaxI4, b: MaxU8, a: MaxU8) + + (i21 i32) + (-0x0010_0000 ..= 0x000f_ffff) + (a: MaxU8, b: MaxU8, c: MaxI5, d: MaxI1) + (d: MaxI1, c: MaxI5, b: MaxU8, a: MaxU8) + + (i22 i32) + (-0x0020_0000 ..= 0x001f_ffff) + (a: MaxU8, b: MaxU8, c: MaxI6, d: MaxI1) + (d: MaxI1, c: MaxI6, b: MaxU8, a: MaxU8) + + (i23 i32) + (-0x0040_0000 ..= 0x003f_ffff) + (a: MaxU8, b: MaxU8, c: MaxI7, d: MaxI1) + (d: MaxI1, c: MaxI7, b: MaxU8, a: MaxU8) + + (i24 i32) + (-0x0080_0000 ..= 0x007f_ffff) + (a: MaxU8, b: MaxU8, c: MaxI8, d: MaxI1) + (d: MaxI1, c: MaxU8, b: MaxU8, a: MaxU8) + + (i25 i32) + (-0x0100_0000 ..= 0x00ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI1) + (d: MaxI1, c: MaxU8, b: MaxU8, a: MaxU8) + + (i26 i32) + (-0x0200_0000 ..= 0x01ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI2) + (d: MaxI2, c: MaxU8, b: MaxU8, a: MaxU8) + + (i27 i32) + (-0x0400_0000 ..= 0x03ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI3) + (d: MaxI3, c: MaxU8, b: MaxU8, a: MaxU8) + + (i28 i32) + (-0x0800_0000 ..= 0x07ff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI4) + (d: MaxI4, c: MaxU8, b: MaxU8, a: MaxU8) + + (i29 i32) + (-0x1000_0000 ..= 0x0fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI5) + (d: MaxI5, c: MaxU8, b: MaxU8, a: MaxU8) + + (i30 i32) + (-0x2000_0000 ..= 0x1fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI6) + (d: MaxI6, c: MaxU8, b: MaxU8, a: MaxU8) + + (i31 i32) + (-0x4000_0000 ..= 0x3fff_ffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI7) + (d: MaxI7, c: MaxU8, b: MaxU8, a: MaxU8) + + // (i32 i32) + // (-0x8000_0000 ..= 0x7fff_ffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI8) + // (d: MaxI8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i33 i64) + (-0x0000000100000000 ..= 0x00000000ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI1, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i34 i64) + (-0x0000000200000000 ..= 0x00000001ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI2, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i35 i64) + (-0x0000000400000000 ..= 0x00000003ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI3, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i36 i64) + (-0x0000000800000000 ..= 0x00000007ffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI4, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i37 i64) + (-0x0000001000000000 ..= 0x0000000fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI5, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i38 i64) + (-0x0000002000000000 ..= 0x0000001fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI6, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i39 i64) + (-0x0000004000000000 ..= 0x0000003fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI7, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i40 i64) + (-0x0000008000000000 ..= 0x0000007fffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI8, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i41 i64) + (-0x0000010000000000 ..= 0x000000ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI1, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i42 i64) + (-0x0000020000000000 ..= 0x000001ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI2, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i43 i64) + (-0x0000040000000000 ..= 0x000003ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI3, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i44 i64) + (-0x0000080000000000 ..= 0x000007ffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI4, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i45 i64) + (-0x0000100000000000 ..= 0x00000fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI5, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i46 i64) + (-0x0000200000000000 ..= 0x00001fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI6, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i47 i64) + (-0x0000400000000000 ..= 0x00003fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI7, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxI7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i48 i64) + (-0x0000800000000000 ..= 0x00007fffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI8, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i49 i64) + (-0x0001000000000000 ..= 0x0000ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI1, h: MaxI1) + (h: MaxI1, g: MaxI1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i50 i64) + (-0x0002000000000000 ..= 0x0001ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI2, h: MaxI1) + (h: MaxI1, g: MaxI2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i51 i64) + (-0x0004000000000000 ..= 0x0003ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI3, h: MaxI1) + (h: MaxI1, g: MaxI3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i52 i64) + (-0x0008000000000000 ..= 0x0007ffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI4, h: MaxI1) + (h: MaxI1, g: MaxI4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i53 i64) + (-0x0010000000000000 ..= 0x000fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI5, h: MaxI1) + (h: MaxI1, g: MaxI5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i54 i64) + (-0x0020000000000000 ..= 0x001fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI6, h: MaxI1) + (h: MaxI1, g: MaxI6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i55 i64) + (-0x0040000000000000 ..= 0x003fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI7, h: MaxI1) + (h: MaxI1, g: MaxI7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i56 i64) + (-0x0080000000000000 ..= 0x007fffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI8, h: MaxI1) + (h: MaxI1, g: MaxI8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i57 i64) + (-0x0100000000000000 ..= 0x00ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI1) + (h: MaxI1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i58 i64) + (-0x0200000000000000 ..= 0x01ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI2) + (h: MaxI2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i59 i64) + (-0x0400000000000000 ..= 0x03ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI3) + (h: MaxI3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i60 i64) + (-0x0800000000000000 ..= 0x07ffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI4) + (h: MaxI4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i61 i64) + (-0x1000000000000000 ..= 0x0fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI5) + (h: MaxI5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i62 i64) + (-0x2000000000000000 ..= 0x1fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI6) + (h: MaxI6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i63 i64) + (-0x4000000000000000 ..= 0x3fffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI7) + (h: MaxI7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + // (i64 i64) + // (-0x8000000000000000 ..= 0x7fffffffffffffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI8) + // (h: MaxI8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i65 i128) + (-0x00000000000000010000000000000000 ..= 0x0000000000000000ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI1, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i66 i128) + (-0x00000000000000020000000000000000 ..= 0x0000000000000001ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI2, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i67 i128) + (-0x00000000000000040000000000000000 ..= 0x0000000000000003ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI3, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i68 i128) + (-0x00000000000000080000000000000000 ..= 0x0000000000000007ffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI4, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i69 i128) + (-0x00000000000000100000000000000000 ..= 0x000000000000000fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI5, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i70 i128) + (-0x00000000000000200000000000000000 ..= 0x000000000000001fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI6, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i71 i128) + (-0x00000000000000400000000000000000 ..= 0x000000000000003fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI7, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i72 i128) + (-0x00000000000000800000000000000000 ..= 0x000000000000007fffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI8, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i73 i128) + (-0x00000000000001000000000000000000 ..= 0x00000000000000ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i74 i128) + (-0x00000000000002000000000000000000 ..= 0x00000000000001ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI2, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i75 i128) + (-0x00000000000004000000000000000000 ..= 0x00000000000003ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI3, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i76 i128) + (-0x00000000000008000000000000000000 ..= 0x00000000000007ffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI4, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i77 i128) + (-0x00000000000010000000000000000000 ..= 0x0000000000000fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI5, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i78 i128) + (-0x00000000000020000000000000000000 ..= 0x0000000000001fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI6, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i79 i128) + (-0x00000000000040000000000000000000 ..= 0x0000000000003fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI7, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i80 i128) + (-0x00000000000080000000000000000000 ..= 0x0000000000007fffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI8, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i81 i128) + (-0x00000000000100000000000000000000 ..= 0x000000000000ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i82 i128) + (-0x00000000000200000000000000000000 ..= 0x000000000001ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI2, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i83 i128) + (-0x00000000000400000000000000000000 ..= 0x000000000003ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI3, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i84 i128) + (-0x00000000000800000000000000000000 ..= 0x000000000007ffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI4, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i85 i128) + (-0x00000000001000000000000000000000 ..= 0x00000000000fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI5, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i86 i128) + (-0x00000000002000000000000000000000 ..= 0x00000000001fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI6, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i87 i128) + (-0x00000000004000000000000000000000 ..= 0x00000000003fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI7, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i88 i128) + (-0x00000000008000000000000000000000 ..= 0x00000000007fffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI8, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i89 i128) + (-0x00000000010000000000000000000000 ..= 0x0000000000ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i90 i128) + (-0x00000000020000000000000000000000 ..= 0x0000000001ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI2, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i91 i128) + (-0x00000000040000000000000000000000 ..= 0x0000000003ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI3, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i92 i128) + (-0x00000000080000000000000000000000 ..= 0x0000000007ffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI4, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i93 i128) + (-0x00000000100000000000000000000000 ..= 0x000000000fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI5, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i94 i128) + (-0x00000000200000000000000000000000 ..= 0x000000001fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI6, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i95 i128) + (-0x00000000400000000000000000000000 ..= 0x000000003fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI7, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i96 i128) + (-0x00000000800000000000000000000000 ..= 0x000000007fffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI8, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i97 i128) + (-0x00000001000000000000000000000000 ..= 0x00000000ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i98 i128) + (-0x00000002000000000000000000000000 ..= 0x00000001ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI2, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i99 i128) + (-0x00000004000000000000000000000000 ..= 0x00000003ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI3, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i100 i128) + (-0x00000008000000000000000000000000 ..= 0x00000007ffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI4, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i101 i128) + (-0x00000010000000000000000000000000 ..= 0x0000000fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI5, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i102 i128) + (-0x00000020000000000000000000000000 ..= 0x0000001fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI6, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i103 i128) + (-0x00000040000000000000000000000000 ..= 0x0000003fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI7, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i104 i128) + (-0x00000080000000000000000000000000 ..= 0x0000007fffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI8, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i105 i128) + (-0x00000100000000000000000000000000 ..= 0x000000ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI1, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i106 i128) + (-0x00000200000000000000000000000000 ..= 0x000001ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI2, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i107 i128) + (-0x00000400000000000000000000000000 ..= 0x000003ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI3, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i108 i128) + (-0x00000800000000000000000000000000 ..= 0x000007ffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI4, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i109 i128) + (-0x00001000000000000000000000000000 ..= 0x00000fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI5, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i110 i128) + (-0x00002000000000000000000000000000 ..= 0x00001fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI6, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i111 i128) + (-0x00004000000000000000000000000000 ..= 0x00003fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI7, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i112 i128) + (-0x00008000000000000000000000000000 ..= 0x00007fffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI8, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxI8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i113 i128) + (-0x00010000000000000000000000000000 ..= 0x0000ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI1, p: MaxI1) + (p: MaxI1, o: MaxI1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i114 i128) + (-0x00020000000000000000000000000000 ..= 0x0001ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI2, p: MaxI1) + (p: MaxI1, o: MaxI2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i115 i128) + (-0x00040000000000000000000000000000 ..= 0x0003ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI3, p: MaxI1) + (p: MaxI1, o: MaxI3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i116 i128) + (-0x00080000000000000000000000000000 ..= 0x0007ffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI4, p: MaxI1) + (p: MaxI1, o: MaxI4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i117 i128) + (-0x00100000000000000000000000000000 ..= 0x000fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI5, p: MaxI1) + (p: MaxI1, o: MaxI5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i118 i128) + (-0x00200000000000000000000000000000 ..= 0x001fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI6, p: MaxI1) + (p: MaxI1, o: MaxI6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i119 i128) + (-0x00400000000000000000000000000000 ..= 0x003fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI7, p: MaxI1) + (p: MaxI1, o: MaxI7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i120 i128) + (-0x00800000000000000000000000000000 ..= 0x007fffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI8, p: MaxI1) + (p: MaxI1, o: MaxI8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i121 i128) + (-0x01000000000000000000000000000000 ..= 0x00ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI1) + (p: MaxI1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i122 i128) + (-0x02000000000000000000000000000000 ..= 0x01ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI2) + (p: MaxI2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i123 i128) + (-0x04000000000000000000000000000000 ..= 0x03ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI3) + (p: MaxI3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i124 i128) + (-0x08000000000000000000000000000000 ..= 0x07ffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI4) + (p: MaxI4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i125 i128) + (-0x10000000000000000000000000000000 ..= 0x0fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI5) + (p: MaxI5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i126 i128) + (-0x20000000000000000000000000000000 ..= 0x1fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI6) + (p: MaxI6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + (i127 i128) + (-0x40000000000000000000000000000000 ..= 0x3fffffffffffffffffffffffffffffff) + (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI7) + (p: MaxI7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) + + // (i128 i128) + // (-0x80000000000000000000000000000000 ..= 0x7fffffffffffffffffffffffffffffff) + // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI8) + // (p: MaxI8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) +} diff --git a/src/niche/bytes.rs b/src/niche/bytes.rs deleted file mode 100644 index 812b247..0000000 --- a/src/niche/bytes.rs +++ /dev/null @@ -1,1073 +0,0 @@ -use super::new_byte; - -new_byte!(MaxI1(i8) { - M1 = -1, - V0 = 0, -}); - - new_byte!(MaxI2(i8) { - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, -}); - - new_byte!(MaxI3(i8) { - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, -}); - - new_byte!(MaxI4(i8) { - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, -}); - - new_byte!(MaxI5(i8) { - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, -}); - - new_byte!(MaxI6(i8) { - M32 = -32, - M31 = -31, - M30 = -30, - M29 = -29, - M28 = -28, - M27 = -27, - M26 = -26, - M25 = -25, - M24 = -24, - M23 = -23, - M22 = -22, - M21 = -21, - M20 = -20, - M19 = -19, - M18 = -18, - M17 = -17, - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, -}); - - new_byte!(MaxI7(i8) { - M64 = -64, - M63 = -63, - M62 = -62, - M61 = -61, - M60 = -60, - M59 = -59, - M58 = -58, - M57 = -57, - M56 = -56, - M55 = -55, - M54 = -54, - M53 = -53, - M52 = -52, - M51 = -51, - M50 = -50, - M49 = -49, - M48 = -48, - M47 = -47, - M46 = -46, - M45 = -45, - M44 = -44, - M43 = -43, - M42 = -42, - M41 = -41, - M40 = -40, - M39 = -39, - M38 = -38, - M37 = -37, - M36 = -36, - M35 = -35, - M34 = -34, - M33 = -33, - M32 = -32, - M31 = -31, - M30 = -30, - M29 = -29, - M28 = -28, - M27 = -27, - M26 = -26, - M25 = -25, - M24 = -24, - M23 = -23, - M22 = -22, - M21 = -21, - M20 = -20, - M19 = -19, - M18 = -18, - M17 = -17, - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, - V32 = 32, - V33 = 33, - V34 = 34, - V35 = 35, - V36 = 36, - V37 = 37, - V38 = 38, - V39 = 39, - V40 = 40, - V41 = 41, - V42 = 42, - V43 = 43, - V44 = 44, - V45 = 45, - V46 = 46, - V47 = 47, - V48 = 48, - V49 = 49, - V50 = 50, - V51 = 51, - V52 = 52, - V53 = 53, - V54 = 54, - V55 = 55, - V56 = 56, - V57 = 57, - V58 = 58, - V59 = 59, - V60 = 60, - V61 = 61, - V62 = 62, - V63 = 63, -}); - - new_byte!(MaxI8(i8) { - M128 = -128, - M127 = -127, - M126 = -126, - M125 = -125, - M124 = -124, - M123 = -123, - M122 = -122, - M121 = -121, - M120 = -120, - M119 = -119, - M118 = -118, - M117 = -117, - M116 = -116, - M115 = -115, - M114 = -114, - M113 = -113, - M112 = -112, - M111 = -111, - M110 = -110, - M109 = -109, - M108 = -108, - M107 = -107, - M106 = -106, - M105 = -105, - M104 = -104, - M103 = -103, - M102 = -102, - M101 = -101, - M100 = -100, - M99 = -99, - M98 = -98, - M97 = -97, - M96 = -96, - M95 = -95, - M94 = -94, - M93 = -93, - M92 = -92, - M91 = -91, - M90 = -90, - M89 = -89, - M88 = -88, - M87 = -87, - M86 = -86, - M85 = -85, - M84 = -84, - M83 = -83, - M82 = -82, - M81 = -81, - M80 = -80, - M79 = -79, - M78 = -78, - M77 = -77, - M76 = -76, - M75 = -75, - M74 = -74, - M73 = -73, - M72 = -72, - M71 = -71, - M70 = -70, - M69 = -69, - M68 = -68, - M67 = -67, - M66 = -66, - M65 = -65, - M64 = -64, - M63 = -63, - M62 = -62, - M61 = -61, - M60 = -60, - M59 = -59, - M58 = -58, - M57 = -57, - M56 = -56, - M55 = -55, - M54 = -54, - M53 = -53, - M52 = -52, - M51 = -51, - M50 = -50, - M49 = -49, - M48 = -48, - M47 = -47, - M46 = -46, - M45 = -45, - M44 = -44, - M43 = -43, - M42 = -42, - M41 = -41, - M40 = -40, - M39 = -39, - M38 = -38, - M37 = -37, - M36 = -36, - M35 = -35, - M34 = -34, - M33 = -33, - M32 = -32, - M31 = -31, - M30 = -30, - M29 = -29, - M28 = -28, - M27 = -27, - M26 = -26, - M25 = -25, - M24 = -24, - M23 = -23, - M22 = -22, - M21 = -21, - M20 = -20, - M19 = -19, - M18 = -18, - M17 = -17, - M16 = -16, - M15 = -15, - M14 = -14, - M13 = -13, - M12 = -12, - M11 = -11, - M10 = -10, - M9 = -9, - M8 = -8, - M7 = -7, - M6 = -6, - M5 = -5, - M4 = -4, - M3 = -3, - M2 = -2, - M1 = -1, - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, - V32 = 32, - V33 = 33, - V34 = 34, - V35 = 35, - V36 = 36, - V37 = 37, - V38 = 38, - V39 = 39, - V40 = 40, - V41 = 41, - V42 = 42, - V43 = 43, - V44 = 44, - V45 = 45, - V46 = 46, - V47 = 47, - V48 = 48, - V49 = 49, - V50 = 50, - V51 = 51, - V52 = 52, - V53 = 53, - V54 = 54, - V55 = 55, - V56 = 56, - V57 = 57, - V58 = 58, - V59 = 59, - V60 = 60, - V61 = 61, - V62 = 62, - V63 = 63, - V64 = 64, - V65 = 65, - V66 = 66, - V67 = 67, - V68 = 68, - V69 = 69, - V70 = 70, - V71 = 71, - V72 = 72, - V73 = 73, - V74 = 74, - V75 = 75, - V76 = 76, - V77 = 77, - V78 = 78, - V79 = 79, - V80 = 80, - V81 = 81, - V82 = 82, - V83 = 83, - V84 = 84, - V85 = 85, - V86 = 86, - V87 = 87, - V88 = 88, - V89 = 89, - V90 = 90, - V91 = 91, - V92 = 92, - V93 = 93, - V94 = 94, - V95 = 95, - V96 = 96, - V97 = 97, - V98 = 98, - V99 = 99, - V100 = 100, - V101 = 101, - V102 = 102, - V103 = 103, - V104 = 104, - V105 = 105, - V106 = 106, - V107 = 107, - V108 = 108, - V109 = 109, - V110 = 110, - V111 = 111, - V112 = 112, - V113 = 113, - V114 = 114, - V115 = 115, - V116 = 116, - V117 = 117, - V118 = 118, - V119 = 119, - V120 = 120, - V121 = 121, - V122 = 122, - V123 = 123, - V124 = 124, - V125 = 125, - V126 = 126, - V127 = 127, -}); - -new_byte!(MaxU0(u8) { - V0 = 0, -}); - -new_byte!(MaxU1(u8) { - V0 = 0, - V1 = 1, -}); - -new_byte!(MaxU2(u8) { - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, -}); - -new_byte!(MaxU3(u8) { - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, -}); - -new_byte!(MaxU4(u8) { - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, -}); - -new_byte!(MaxU5(u8) { - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, -}); - -new_byte!(MaxU6(u8) { - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, - V32 = 32, - V33 = 33, - V34 = 34, - V35 = 35, - V36 = 36, - V37 = 37, - V38 = 38, - V39 = 39, - V40 = 40, - V41 = 41, - V42 = 42, - V43 = 43, - V44 = 44, - V45 = 45, - V46 = 46, - V47 = 47, - V48 = 48, - V49 = 49, - V50 = 50, - V51 = 51, - V52 = 52, - V53 = 53, - V54 = 54, - V55 = 55, - V56 = 56, - V57 = 57, - V58 = 58, - V59 = 59, - V60 = 60, - V61 = 61, - V62 = 62, - V63 = 63, -}); - -new_byte!(MaxU7(u8) { - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, - V32 = 32, - V33 = 33, - V34 = 34, - V35 = 35, - V36 = 36, - V37 = 37, - V38 = 38, - V39 = 39, - V40 = 40, - V41 = 41, - V42 = 42, - V43 = 43, - V44 = 44, - V45 = 45, - V46 = 46, - V47 = 47, - V48 = 48, - V49 = 49, - V50 = 50, - V51 = 51, - V52 = 52, - V53 = 53, - V54 = 54, - V55 = 55, - V56 = 56, - V57 = 57, - V58 = 58, - V59 = 59, - V60 = 60, - V61 = 61, - V62 = 62, - V63 = 63, - V64 = 64, - V65 = 65, - V66 = 66, - V67 = 67, - V68 = 68, - V69 = 69, - V70 = 70, - V71 = 71, - V72 = 72, - V73 = 73, - V74 = 74, - V75 = 75, - V76 = 76, - V77 = 77, - V78 = 78, - V79 = 79, - V80 = 80, - V81 = 81, - V82 = 82, - V83 = 83, - V84 = 84, - V85 = 85, - V86 = 86, - V87 = 87, - V88 = 88, - V89 = 89, - V90 = 90, - V91 = 91, - V92 = 92, - V93 = 93, - V94 = 94, - V95 = 95, - V96 = 96, - V97 = 97, - V98 = 98, - V99 = 99, - V100 = 100, - V101 = 101, - V102 = 102, - V103 = 103, - V104 = 104, - V105 = 105, - V106 = 106, - V107 = 107, - V108 = 108, - V109 = 109, - V110 = 110, - V111 = 111, - V112 = 112, - V113 = 113, - V114 = 114, - V115 = 115, - V116 = 116, - V117 = 117, - V118 = 118, - V119 = 119, - V120 = 120, - V121 = 121, - V122 = 122, - V123 = 123, - V124 = 124, - V125 = 125, - V126 = 126, - V127 = 127, -}); - -new_byte!(MaxU8(u8) { - V0 = 0, - V1 = 1, - V2 = 2, - V3 = 3, - V4 = 4, - V5 = 5, - V6 = 6, - V7 = 7, - V8 = 8, - V9 = 9, - V10 = 10, - V11 = 11, - V12 = 12, - V13 = 13, - V14 = 14, - V15 = 15, - V16 = 16, - V17 = 17, - V18 = 18, - V19 = 19, - V20 = 20, - V21 = 21, - V22 = 22, - V23 = 23, - V24 = 24, - V25 = 25, - V26 = 26, - V27 = 27, - V28 = 28, - V29 = 29, - V30 = 30, - V31 = 31, - V32 = 32, - V33 = 33, - V34 = 34, - V35 = 35, - V36 = 36, - V37 = 37, - V38 = 38, - V39 = 39, - V40 = 40, - V41 = 41, - V42 = 42, - V43 = 43, - V44 = 44, - V45 = 45, - V46 = 46, - V47 = 47, - V48 = 48, - V49 = 49, - V50 = 50, - V51 = 51, - V52 = 52, - V53 = 53, - V54 = 54, - V55 = 55, - V56 = 56, - V57 = 57, - V58 = 58, - V59 = 59, - V60 = 60, - V61 = 61, - V62 = 62, - V63 = 63, - V64 = 64, - V65 = 65, - V66 = 66, - V67 = 67, - V68 = 68, - V69 = 69, - V70 = 70, - V71 = 71, - V72 = 72, - V73 = 73, - V74 = 74, - V75 = 75, - V76 = 76, - V77 = 77, - V78 = 78, - V79 = 79, - V80 = 80, - V81 = 81, - V82 = 82, - V83 = 83, - V84 = 84, - V85 = 85, - V86 = 86, - V87 = 87, - V88 = 88, - V89 = 89, - V90 = 90, - V91 = 91, - V92 = 92, - V93 = 93, - V94 = 94, - V95 = 95, - V96 = 96, - V97 = 97, - V98 = 98, - V99 = 99, - V100 = 100, - V101 = 101, - V102 = 102, - V103 = 103, - V104 = 104, - V105 = 105, - V106 = 106, - V107 = 107, - V108 = 108, - V109 = 109, - V110 = 110, - V111 = 111, - V112 = 112, - V113 = 113, - V114 = 114, - V115 = 115, - V116 = 116, - V117 = 117, - V118 = 118, - V119 = 119, - V120 = 120, - V121 = 121, - V122 = 122, - V123 = 123, - V124 = 124, - V125 = 125, - V126 = 126, - V127 = 127, - V128 = 128, - V129 = 129, - V130 = 130, - V131 = 131, - V132 = 132, - V133 = 133, - V134 = 134, - V135 = 135, - V136 = 136, - V137 = 137, - V138 = 138, - V139 = 139, - V140 = 140, - V141 = 141, - V142 = 142, - V143 = 143, - V144 = 144, - V145 = 145, - V146 = 146, - V147 = 147, - V148 = 148, - V149 = 149, - V150 = 150, - V151 = 151, - V152 = 152, - V153 = 153, - V154 = 154, - V155 = 155, - V156 = 156, - V157 = 157, - V158 = 158, - V159 = 159, - V160 = 160, - V161 = 161, - V162 = 162, - V163 = 163, - V164 = 164, - V165 = 165, - V166 = 166, - V167 = 167, - V168 = 168, - V169 = 169, - V170 = 170, - V171 = 171, - V172 = 172, - V173 = 173, - V174 = 174, - V175 = 175, - V176 = 176, - V177 = 177, - V178 = 178, - V179 = 179, - V180 = 180, - V181 = 181, - V182 = 182, - V183 = 183, - V184 = 184, - V185 = 185, - V186 = 186, - V187 = 187, - V188 = 188, - V189 = 189, - V190 = 190, - V191 = 191, - V192 = 192, - V193 = 193, - V194 = 194, - V195 = 195, - V196 = 196, - V197 = 197, - V198 = 198, - V199 = 199, - V200 = 200, - V201 = 201, - V202 = 202, - V203 = 203, - V204 = 204, - V205 = 205, - V206 = 206, - V207 = 207, - V208 = 208, - V209 = 209, - V210 = 210, - V211 = 211, - V212 = 212, - V213 = 213, - V214 = 214, - V215 = 215, - V216 = 216, - V217 = 217, - V218 = 218, - V219 = 219, - V220 = 220, - V221 = 221, - V222 = 222, - V223 = 223, - V224 = 224, - V225 = 225, - V226 = 226, - V227 = 227, - V228 = 228, - V229 = 229, - V230 = 230, - V231 = 231, - V232 = 232, - V233 = 233, - V234 = 234, - V235 = 235, - V236 = 236, - V237 = 237, - V238 = 238, - V239 = 239, - V240 = 240, - V241 = 241, - V242 = 242, - V243 = 243, - V244 = 244, - V245 = 245, - V246 = 246, - V247 = 247, - V248 = 248, - V249 = 249, - V250 = 250, - V251 = 251, - V252 = 252, - V253 = 253, - V254 = 254, - V255 = 255, -}); diff --git a/src/niche/mod.rs b/src/niche/mod.rs deleted file mode 100644 index fddd694..0000000 --- a/src/niche/mod.rs +++ /dev/null @@ -1,51 +0,0 @@ -mod bytes; -mod signed; -mod unsigned; - -pub use signed::*; -pub use unsigned::*; - -macro_rules! new_type { - ( - $( - ( $Name:ident $Primitive:ident ) - ( $min:literal ..= $max:literal ) - ( $($LittleField:ident: $LittleType:ident),* ) - ( $($BigField:ident: $BigType:ident),* ) - )* - ) => {$( - #[repr(C)] - #[cfg(target_endian = "little")] - #[derive(Copy, Clone)] - pub struct $Name { - align: [core::primitive::$Primitive; 0], - $($LittleField: $LittleType,)* - } - - #[repr(C)] - #[cfg(target_endian = "big")] - #[derive(Copy, Clone)] - pub struct $Name { - align: [core::primitive::$Primitive; 0], - $($BigField: $BigType,)* - } - - impl $Name { - pub const MIN: core::primitive::$Primitive = $min; - pub const MAX: core::primitive::$Primitive = $max; - } - )*}; -} - -macro_rules! new_byte { - ($Name:ident($Primitive:ident) { $($Variant:ident = $value:literal,)* }) => { - #[allow(dead_code)] - #[derive(Copy, Clone)] - #[repr($Primitive)] - pub(super) enum $Name { - $($Variant = $value,)* - } - } -} - -pub(crate) use {new_byte, new_type}; diff --git a/src/niche/signed.rs b/src/niche/signed.rs deleted file mode 100644 index b301601..0000000 --- a/src/niche/signed.rs +++ /dev/null @@ -1,711 +0,0 @@ -use super::new_type; -use super::bytes::*; - -new_type! { - (i1 i8) - (-0x01 ..= 0x00) - (a: MaxI1) - (a: MaxI1) - - (i2 i8) - (-0x02 ..= 0x01) - (a: MaxI2) - (a: MaxI2) - - (i3 i8) - (-0x04 ..= 0x03) - (a: MaxI3) - (a: MaxI3) - - (i4 i8) - (-0x08 ..= 0x07) - (a: MaxI4) - (a: MaxI4) - - (i5 i8) - (-0x10 ..= 0x0f) - (a: MaxI5) - (a: MaxI5) - - (i6 i8) - (-0x20 ..= 0x1f) - (a: MaxI6) - (a: MaxI6) - - (i7 i8) - (-0x40 ..= 0x3f) - (a: MaxI7) - (a: MaxI7) - - // (i8 i8) - // (-0x80 ..= 0x7f) - // (a: MaxI8) - // (a: MaxI8) - - (i9 i16) - (-0x0100 ..= 0x00ff) - (a: MaxU8, b: MaxI1) - (b: MaxI1, a: MaxU8) - - (i10 i16) - (-0x0200 ..= 0x01ff) - (a: MaxU8, b: MaxI2) - (b: MaxI2, a: MaxU8) - - (i11 i16) - (-0x0400 ..= 0x03ff) - (a: MaxU8, b: MaxI3) - (b: MaxI3, a: MaxU8) - - (i12 i16) - (-0x0800 ..= 0x07ff) - (a: MaxU8, b: MaxI4) - (b: MaxI4, a: MaxU8) - - (i13 i16) - (-0x1000 ..= 0x0fff) - (a: MaxU8, b: MaxI5) - (b: MaxI5, a: MaxU8) - - (i14 i16) - (-0x2000 ..= 0x1fff) - (a: MaxU8, b: MaxI6) - (b: MaxI6, a: MaxU8) - - (i15 i16) - (-0x4000 ..= 0x3fff) - (a: MaxU8, b: MaxI7) - (b: MaxI7, a: MaxU8) - - // (i16 i16) - // (-0x8000 ..= 0x7fff) - // (a: MaxU8, b: MaxI8) - // (b: MaxI8, a: MaxU8) - - (i17 i32) - (-0x0001_0000 ..= 0x0000_ffff) - (a: MaxU8, b: MaxU8, c: MaxI1, d: MaxI1) - (d: MaxI1, c: MaxI1, b: MaxU8, a: MaxU8) - - (i18 i32) - (-0x0002_0000 ..= 0x0001_ffff) - (a: MaxU8, b: MaxU8, c: MaxI2, d: MaxI1) - (d: MaxI1, c: MaxI2, b: MaxU8, a: MaxU8) - - (i19 i32) - (-0x0004_0000 ..= 0x0003_ffff) - (a: MaxU8, b: MaxU8, c: MaxI3, d: MaxI1) - (d: MaxI1, c: MaxI3, b: MaxU8, a: MaxU8) - - (i20 i32) - (-0x0008_0000 ..= 0x0007_ffff) - (a: MaxU8, b: MaxU8, c: MaxI4, d: MaxI1) - (d: MaxI1, c: MaxI4, b: MaxU8, a: MaxU8) - - (i21 i32) - (-0x0010_0000 ..= 0x000f_ffff) - (a: MaxU8, b: MaxU8, c: MaxI5, d: MaxI1) - (d: MaxI1, c: MaxI5, b: MaxU8, a: MaxU8) - - (i22 i32) - (-0x0020_0000 ..= 0x001f_ffff) - (a: MaxU8, b: MaxU8, c: MaxI6, d: MaxI1) - (d: MaxI1, c: MaxI6, b: MaxU8, a: MaxU8) - - (i23 i32) - (-0x0040_0000 ..= 0x003f_ffff) - (a: MaxU8, b: MaxU8, c: MaxI7, d: MaxI1) - (d: MaxI1, c: MaxI7, b: MaxU8, a: MaxU8) - - (i24 i32) - (-0x0080_0000 ..= 0x007f_ffff) - (a: MaxU8, b: MaxU8, c: MaxI8, d: MaxI1) - (d: MaxI1, c: MaxU8, b: MaxU8, a: MaxU8) - - (i25 i32) - (-0x0100_0000 ..= 0x00ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI1) - (d: MaxI1, c: MaxU8, b: MaxU8, a: MaxU8) - - (i26 i32) - (-0x0200_0000 ..= 0x01ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI2) - (d: MaxI2, c: MaxU8, b: MaxU8, a: MaxU8) - - (i27 i32) - (-0x0400_0000 ..= 0x03ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI3) - (d: MaxI3, c: MaxU8, b: MaxU8, a: MaxU8) - - (i28 i32) - (-0x0800_0000 ..= 0x07ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI4) - (d: MaxI4, c: MaxU8, b: MaxU8, a: MaxU8) - - (i29 i32) - (-0x1000_0000 ..= 0x0fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI5) - (d: MaxI5, c: MaxU8, b: MaxU8, a: MaxU8) - - (i30 i32) - (-0x2000_0000 ..= 0x1fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI6) - (d: MaxI6, c: MaxU8, b: MaxU8, a: MaxU8) - - (i31 i32) - (-0x4000_0000 ..= 0x3fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI7) - (d: MaxI7, c: MaxU8, b: MaxU8, a: MaxU8) - - // (i32 i32) - // (-0x8000_0000 ..= 0x7fff_ffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxI8) - // (d: MaxI8, c: MaxU8, b: MaxU8, a: MaxU8) -} - -/* - -e = f = g = h = 0 -for i in range(33, 65): - if e < 8: - e += 1 - elif f < 8: - f += 1 - elif g < 8: - g += 1 - else: - h += 1 - def M(i, j): - if i == 0: - return 'MaxI1' - elif (i == 8) and (j > 0): - return 'MaxU8' - else: - return f'Max{i}' - print('new_type! {') - print(f' (I{i} Buf{i} i64)') - print(f' (-0x{2**(i - 1):016x} ..= 0x{2**(i - 1) - 1:016x})') - print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: {M(e, f)}, f: {M(f, g)}, g: {M(g, h)}, h: Max{h or 1})') - print(f' (h: Max{h or 1}, g: {M(g, h)}, f: {M(f, e)}, e: {M(e, f)}, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') - print('}') - -*/ - -new_type! { - (i33 i64) - (-0x0000000100000000 ..= 0x00000000ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI1, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i34 i64) - (-0x0000000200000000 ..= 0x00000001ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI2, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i35 i64) - (-0x0000000400000000 ..= 0x00000003ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI3, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i36 i64) - (-0x0000000800000000 ..= 0x00000007ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI4, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i37 i64) - (-0x0000001000000000 ..= 0x0000000fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI5, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i38 i64) - (-0x0000002000000000 ..= 0x0000001fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI6, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i39 i64) - (-0x0000004000000000 ..= 0x0000003fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI7, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i40 i64) - (-0x0000008000000000 ..= 0x0000007fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxI8, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxI8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i41 i64) - (-0x0000010000000000 ..= 0x000000ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI1, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i42 i64) - (-0x0000020000000000 ..= 0x000001ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI2, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i43 i64) - (-0x0000040000000000 ..= 0x000003ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI3, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i44 i64) - (-0x0000080000000000 ..= 0x000007ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI4, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i45 i64) - (-0x0000100000000000 ..= 0x00000fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI5, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i46 i64) - (-0x0000200000000000 ..= 0x00001fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI6, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i47 i64) - (-0x0000400000000000 ..= 0x00003fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI7, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxI7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i48 i64) - (-0x0000800000000000 ..= 0x00007fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxI8, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i49 i64) - (-0x0001000000000000 ..= 0x0000ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI1, h: MaxI1) - (h: MaxI1, g: MaxI1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i50 i64) - (-0x0002000000000000 ..= 0x0001ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI2, h: MaxI1) - (h: MaxI1, g: MaxI2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i51 i64) - (-0x0004000000000000 ..= 0x0003ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI3, h: MaxI1) - (h: MaxI1, g: MaxI3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i52 i64) - (-0x0008000000000000 ..= 0x0007ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI4, h: MaxI1) - (h: MaxI1, g: MaxI4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i53 i64) - (-0x0010000000000000 ..= 0x000fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI5, h: MaxI1) - (h: MaxI1, g: MaxI5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i54 i64) - (-0x0020000000000000 ..= 0x001fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI6, h: MaxI1) - (h: MaxI1, g: MaxI6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i55 i64) - (-0x0040000000000000 ..= 0x003fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI7, h: MaxI1) - (h: MaxI1, g: MaxI7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i56 i64) - (-0x0080000000000000 ..= 0x007fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxI8, h: MaxI1) - (h: MaxI1, g: MaxI8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i57 i64) - (-0x0100000000000000 ..= 0x00ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI1) - (h: MaxI1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i58 i64) - (-0x0200000000000000 ..= 0x01ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI2) - (h: MaxI2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i59 i64) - (-0x0400000000000000 ..= 0x03ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI3) - (h: MaxI3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i60 i64) - (-0x0800000000000000 ..= 0x07ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI4) - (h: MaxI4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i61 i64) - (-0x1000000000000000 ..= 0x0fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI5) - (h: MaxI5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i62 i64) - (-0x2000000000000000 ..= 0x1fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI6) - (h: MaxI6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i63 i64) - (-0x4000000000000000 ..= 0x3fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI7) - (h: MaxI7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - // (i64 i64) - // (-0x8000000000000000 ..= 0x7fffffffffffffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxI8) - // (h: MaxI8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - -/* - -i = j = k = l = m = n = o = p = 0 -for I in range(65, 129): - if i < 8: - i += 1 - elif j < 8: - j += 1 - elif k < 8: - k += 1 - elif j < 8: - j += 1 - elif l < 8: - l += 1 - elif m < 8: - m += 1 - elif n < 8: - n += 1 - elif o < 8: - o += 1 - else: - p += 1 - def M(i, j): - if i == 0: - return 'MaxI1' - elif (i == 8) and (j > 0): - return 'MaxU8' - else: - return f'Max{i}' - print(f' (i{I} i128)') - print(f' (-0x{2**(I - 1):032x} ..= 0x{2**(I - 1) - 1:032x})') - print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: {M(i, j)}, j: {M(j, k)}, k: {M(k, l)}, l: {M(l, m)}, m: {M(m, n)}, n: {M(n, o)}, o: {M(o, p)}, p: Max{p or 1})') - print(f' (p: Max{p or 1}, o: {M(o, p)}, n: {M(n, o)}, m: {M(m, n)}, l: {M(l, m)}, k: {M(k, l)}, j: {M(j, k)}, i: {M(i, j)}, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') - print() - -*/ - - (i65 i128) - (-0x00000000000000010000000000000000 ..= 0x0000000000000000ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI1, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i66 i128) - (-0x00000000000000020000000000000000 ..= 0x0000000000000001ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI2, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i67 i128) - (-0x00000000000000040000000000000000 ..= 0x0000000000000003ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI3, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i68 i128) - (-0x00000000000000080000000000000000 ..= 0x0000000000000007ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI4, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i69 i128) - (-0x00000000000000100000000000000000 ..= 0x000000000000000fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI5, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i70 i128) - (-0x00000000000000200000000000000000 ..= 0x000000000000001fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI6, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i71 i128) - (-0x00000000000000400000000000000000 ..= 0x000000000000003fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI7, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i72 i128) - (-0x00000000000000800000000000000000 ..= 0x000000000000007fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxI8, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxI8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i73 i128) - (-0x00000000000001000000000000000000 ..= 0x00000000000000ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI1, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i74 i128) - (-0x00000000000002000000000000000000 ..= 0x00000000000001ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI2, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i75 i128) - (-0x00000000000004000000000000000000 ..= 0x00000000000003ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI3, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i76 i128) - (-0x00000000000008000000000000000000 ..= 0x00000000000007ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI4, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i77 i128) - (-0x00000000000010000000000000000000 ..= 0x0000000000000fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI5, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i78 i128) - (-0x00000000000020000000000000000000 ..= 0x0000000000001fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI6, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i79 i128) - (-0x00000000000040000000000000000000 ..= 0x0000000000003fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI7, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i80 i128) - (-0x00000000000080000000000000000000 ..= 0x0000000000007fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxI8, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxI8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i81 i128) - (-0x00000000000100000000000000000000 ..= 0x000000000000ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI1, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i82 i128) - (-0x00000000000200000000000000000000 ..= 0x000000000001ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI2, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i83 i128) - (-0x00000000000400000000000000000000 ..= 0x000000000003ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI3, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i84 i128) - (-0x00000000000800000000000000000000 ..= 0x000000000007ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI4, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i85 i128) - (-0x00000000001000000000000000000000 ..= 0x00000000000fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI5, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i86 i128) - (-0x00000000002000000000000000000000 ..= 0x00000000001fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI6, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i87 i128) - (-0x00000000004000000000000000000000 ..= 0x00000000003fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI7, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i88 i128) - (-0x00000000008000000000000000000000 ..= 0x00000000007fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxI8, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxI8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i89 i128) - (-0x00000000010000000000000000000000 ..= 0x0000000000ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI1, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i90 i128) - (-0x00000000020000000000000000000000 ..= 0x0000000001ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI2, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i91 i128) - (-0x00000000040000000000000000000000 ..= 0x0000000003ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI3, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i92 i128) - (-0x00000000080000000000000000000000 ..= 0x0000000007ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI4, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i93 i128) - (-0x00000000100000000000000000000000 ..= 0x000000000fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI5, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i94 i128) - (-0x00000000200000000000000000000000 ..= 0x000000001fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI6, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i95 i128) - (-0x00000000400000000000000000000000 ..= 0x000000003fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI7, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i96 i128) - (-0x00000000800000000000000000000000 ..= 0x000000007fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxI8, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxI8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i97 i128) - (-0x00000001000000000000000000000000 ..= 0x00000000ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI1, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i98 i128) - (-0x00000002000000000000000000000000 ..= 0x00000001ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI2, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i99 i128) - (-0x00000004000000000000000000000000 ..= 0x00000003ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI3, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i100 i128) - (-0x00000008000000000000000000000000 ..= 0x00000007ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI4, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i101 i128) - (-0x00000010000000000000000000000000 ..= 0x0000000fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI5, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i102 i128) - (-0x00000020000000000000000000000000 ..= 0x0000001fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI6, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i103 i128) - (-0x00000040000000000000000000000000 ..= 0x0000003fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI7, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i104 i128) - (-0x00000080000000000000000000000000 ..= 0x0000007fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxI8, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxI8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i105 i128) - (-0x00000100000000000000000000000000 ..= 0x000000ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI1, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i106 i128) - (-0x00000200000000000000000000000000 ..= 0x000001ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI2, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i107 i128) - (-0x00000400000000000000000000000000 ..= 0x000003ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI3, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i108 i128) - (-0x00000800000000000000000000000000 ..= 0x000007ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI4, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i109 i128) - (-0x00001000000000000000000000000000 ..= 0x00000fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI5, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i110 i128) - (-0x00002000000000000000000000000000 ..= 0x00001fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI6, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i111 i128) - (-0x00004000000000000000000000000000 ..= 0x00003fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI7, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i112 i128) - (-0x00008000000000000000000000000000 ..= 0x00007fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxI8, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxI8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i113 i128) - (-0x00010000000000000000000000000000 ..= 0x0000ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI1, p: MaxI1) - (p: MaxI1, o: MaxI1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i114 i128) - (-0x00020000000000000000000000000000 ..= 0x0001ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI2, p: MaxI1) - (p: MaxI1, o: MaxI2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i115 i128) - (-0x00040000000000000000000000000000 ..= 0x0003ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI3, p: MaxI1) - (p: MaxI1, o: MaxI3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i116 i128) - (-0x00080000000000000000000000000000 ..= 0x0007ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI4, p: MaxI1) - (p: MaxI1, o: MaxI4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i117 i128) - (-0x00100000000000000000000000000000 ..= 0x000fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI5, p: MaxI1) - (p: MaxI1, o: MaxI5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i118 i128) - (-0x00200000000000000000000000000000 ..= 0x001fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI6, p: MaxI1) - (p: MaxI1, o: MaxI6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i119 i128) - (-0x00400000000000000000000000000000 ..= 0x003fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI7, p: MaxI1) - (p: MaxI1, o: MaxI7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i120 i128) - (-0x00800000000000000000000000000000 ..= 0x007fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxI8, p: MaxI1) - (p: MaxI1, o: MaxI8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i121 i128) - (-0x01000000000000000000000000000000 ..= 0x00ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI1) - (p: MaxI1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i122 i128) - (-0x02000000000000000000000000000000 ..= 0x01ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI2) - (p: MaxI2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i123 i128) - (-0x04000000000000000000000000000000 ..= 0x03ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI3) - (p: MaxI3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i124 i128) - (-0x08000000000000000000000000000000 ..= 0x07ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI4) - (p: MaxI4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i125 i128) - (-0x10000000000000000000000000000000 ..= 0x0fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI5) - (p: MaxI5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i126 i128) - (-0x20000000000000000000000000000000 ..= 0x1fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI6) - (p: MaxI6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (i127 i128) - (-0x40000000000000000000000000000000 ..= 0x3fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI7) - (p: MaxI7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - // (i128 i128) - // (-0x80000000000000000000000000000000 ..= 0x7fffffffffffffffffffffffffffffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxI8) - // (p: MaxI8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) -} diff --git a/src/niche/unsigned.rs b/src/niche/unsigned.rs deleted file mode 100644 index 327ed2b..0000000 --- a/src/niche/unsigned.rs +++ /dev/null @@ -1,696 +0,0 @@ -use super::new_type; -use super::bytes::*; - -new_type! { - (u1 u8) - (0 ..= 0x01) - (a: MaxU1) - (a: MaxU1) - - (u2 u8) - (0 ..= 0x03) - (a: MaxU2) - (a: MaxU2) - - (u3 u8) - (0 ..= 0x07) - (a: MaxU3) - (a: MaxU3) - - (u4 u8) - (0 ..= 0x0f) - (a: MaxU4) - (a: MaxU4) - - (u5 u8) - (0 ..= 0x1f) - (a: MaxU5) - (a: MaxU5) - - (u6 u8) - (0 ..= 0x3f) - (a: MaxU6) - (a: MaxU6) - - (u7 u8) - (0 ..= 0x7f) - (a: MaxU7) - (a: MaxU7) - - // (u8 u8) - // (0 ..= 0xff) - // (a: MaxU8) - // (a: MaxU8) - - (u9 u16) - (0 ..= 0x01ff) - (a: MaxU8, b: MaxU1) - (b: MaxU1, a: MaxU8) - - (u10 u16) - (0 ..= 0x03ff) - (a: MaxU8, b: MaxU2) - (b: MaxU2, a: MaxU8) - - (u11 u16) - (0 ..= 0x07ff) - (a: MaxU8, b: MaxU3) - (b: MaxU3, a: MaxU8) - - (u12 u16) - (0 ..= 0x0fff) - (a: MaxU8, b: MaxU4) - (b: MaxU4, a: MaxU8) - - (u13 u16) - (0 ..= 0x1fff) - (a: MaxU8, b: MaxU5) - (b: MaxU5, a: MaxU8) - - (u14 u16) - (0 ..= 0x3fff) - (a: MaxU8, b: MaxU6) - (b: MaxU6, a: MaxU8) - - (u15 u16) - (0 ..= 0x7fff) - (a: MaxU8, b: MaxU7) - (b: MaxU7, a: MaxU8) - - // (u16 u16) - // (0 ..= 0xffff) - // (a: MaxU8, b: MaxU8) - // (b: MaxU8, a: MaxU8) - - (u17 u32) - (0 ..= 0x0001_ffff) - (a: MaxU8, b: MaxU8, c: MaxU1, d: MaxU0) - (d: MaxU0, c: MaxU1, b: MaxU8, a: MaxU8) - - (u18 u32) - (0 ..= 0x0003_ffff) - (a: MaxU8, b: MaxU8, c: MaxU2, d: MaxU0) - (d: MaxU0, c: MaxU2, b: MaxU8, a: MaxU8) - - (u19 u32) - (0 ..= 0x0007_ffff) - (a: MaxU8, b: MaxU8, c: MaxU3, d: MaxU0) - (d: MaxU0, c: MaxU3, b: MaxU8, a: MaxU8) - - (u20 u32) - (0 ..= 0x000f_ffff) - (a: MaxU8, b: MaxU8, c: MaxU4, d: MaxU0) - (d: MaxU0, c: MaxU4, b: MaxU8, a: MaxU8) - - (u21 u32) - (0 ..= 0x001f_ffff) - (a: MaxU8, b: MaxU8, c: MaxU5, d: MaxU0) - (d: MaxU0, c: MaxU5, b: MaxU8, a: MaxU8) - - (u22 u32) - (0 ..= 0x003f_ffff) - (a: MaxU8, b: MaxU8, c: MaxU6, d: MaxU0) - (d: MaxU0, c: MaxU6, b: MaxU8, a: MaxU8) - - (u23 u32) - (0 ..= 0x007f_ffff) - (a: MaxU8, b: MaxU8, c: MaxU7, d: MaxU0) - (d: MaxU1, c: MaxU7, b: MaxU8, a: MaxU8) - - (u24 u32) - (0 ..= 0x00ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU0) - (d: MaxU0, c: MaxU8, b: MaxU8, a: MaxU8) - - (u25 u32) - (0 ..= 0x01ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU1) - (d: MaxU1, c: MaxU8, b: MaxU8, a: MaxU8) - - (u26 u32) - (0 ..= 0x03ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU2) - (d: MaxU2, c: MaxU8, b: MaxU8, a: MaxU8) - - (u27 u32) - (0 ..= 0x07ff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU3) - (d: MaxU3, c: MaxU8, b: MaxU8, a: MaxU8) - - (u28 u32) - (0 ..= 0x0fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU4) - (d: MaxU4, c: MaxU8, b: MaxU8, a: MaxU8) - - (u29 u32) - (0 ..= 0x1fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU5) - (d: MaxU5, c: MaxU8, b: MaxU8, a: MaxU8) - - (u30 u32) - (0 ..= 0x3fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU6) - (d: MaxU6, c: MaxU8, b: MaxU8, a: MaxU8) - - (u31 u32) - (0 ..= 0x7fff_ffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU7) - (d: MaxU7, c: MaxU8, b: MaxU8, a: MaxU8) - - // (u32 u32) - // (0 ..= 0xffff_ffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8) - // (d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - -/* -e = f = g = h = 0 -for I in range(33, 65): - if e < 8: - e += 1 - elif f < 8: - f += 1 - elif g < 8: - g += 1 - elif h < 8: - h += 1 - def M(i, j): - return f'Max{i}' - print(f' (u{I} u64)') - print(f' (0 ..= 0x{2**I-1:016x})') - print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: {M(e, f)}, f: {M(f, g)}, g: {M(g, h)}, h: {M(h, 0)})') - print(f' (h: {M(h, 0)}, g: {M(g, h)}, f: {M(f, g)}, e: {M(e, f)}, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') - print() -*/ - - (u33 u64) - (0 ..= 0x00000001ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU1, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU1, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u34 u64) - (0 ..= 0x00000003ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU2, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU2, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u35 u64) - (0 ..= 0x00000007ffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU3, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU3, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u36 u64) - (0 ..= 0x0000000fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU4, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU4, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u37 u64) - (0 ..= 0x0000001fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU5, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU5, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u38 u64) - (0 ..= 0x0000003fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU6, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU6, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u39 u64) - (0 ..= 0x0000007fffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU7, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU7, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u40 u64) - (0 ..= 0x000000ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU0, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU0, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u41 u64) - (0 ..= 0x000001ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU1, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU1, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u42 u64) - (0 ..= 0x000003ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU2, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU2, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u43 u64) - (0 ..= 0x000007ffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU3, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU3, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u44 u64) - (0 ..= 0x00000fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU4, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU4, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u45 u64) - (0 ..= 0x00001fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU5, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU5, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u46 u64) - (0 ..= 0x00003fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU6, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU6, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u47 u64) - (0 ..= 0x00007fffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU7, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU7, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u48 u64) - (0 ..= 0x0000ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU0, h: MaxU0) - (h: MaxU0, g: MaxU0, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u49 u64) - (0 ..= 0x0001ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU1, h: MaxU0) - (h: MaxU0, g: MaxU1, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u50 u64) - (0 ..= 0x0003ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU2, h: MaxU0) - (h: MaxU0, g: MaxU2, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u51 u64) - (0 ..= 0x0007ffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU3, h: MaxU0) - (h: MaxU0, g: MaxU3, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u52 u64) - (0 ..= 0x000fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU4, h: MaxU0) - (h: MaxU0, g: MaxU4, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u53 u64) - (0 ..= 0x001fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU5, h: MaxU0) - (h: MaxU0, g: MaxU5, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u54 u64) - (0 ..= 0x003fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU6, h: MaxU0) - (h: MaxU0, g: MaxU6, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u55 u64) - (0 ..= 0x007fffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU7, h: MaxU0) - (h: MaxU0, g: MaxU7, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u56 u64) - (0 ..= 0x00ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU0) - (h: MaxU0, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u57 u64) - (0 ..= 0x01ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU1) - (h: MaxU1, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u58 u64) - (0 ..= 0x03ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU2) - (h: MaxU2, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u59 u64) - (0 ..= 0x07ffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU3) - (h: MaxU3, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u60 u64) - (0 ..= 0x0fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU4) - (h: MaxU4, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u61 u64) - (0 ..= 0x1fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU5) - (h: MaxU5, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u62 u64) - (0 ..= 0x3fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU6) - (h: MaxU6, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u63 u64) - (0 ..= 0x7fffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU7) - (h: MaxU7, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - // (u64 u64) - // (0 ..= 0xffffffffffffffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8) - // (h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - -/* - -i = j = k = l = m = n = o = p = 0 -for I in range(65, 129): - if i < 8: - i += 1 - elif j < 8: - j += 1 - elif k < 8: - k += 1 - elif j < 8: - j += 1 - elif l < 8: - l += 1 - elif m < 8: - m += 1 - elif n < 8: - n += 1 - elif o < 8: - o += 1 - else: - p += 1 - def M(i, j): - return f'Max{i}' - print(f' (u{I} u128)') - print(f' (0 ..= 0x{2**I-1:032x})') - print(f' (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: {M(i, j)}, j: {M(j, k)}, k: {M(k, l)}, l: {M(l, m)}, m: {M(m, n)}, n: {M(n, o)}, o: {M(o, p)}, p: Max{p or 1})') - print(f' (p: Max{p or 1}, o: {M(o, p)}, n: {M(n, o)}, m: {M(m, n)}, l: {M(l, m)}, k: {M(k, l)}, j: {M(j, k)}, i: {M(i, j)}, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8)') - print() - -*/ - - (u65 u128) - (0 ..= 0x0000000000000001ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU1, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU1, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u66 u128) - (0 ..= 0x0000000000000003ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU2, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU2, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u67 u128) - (0 ..= 0x0000000000000007ffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU3, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU3, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u68 u128) - (0 ..= 0x000000000000000fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU4, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU4, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u69 u128) - (0 ..= 0x000000000000001fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU5, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU5, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u70 u128) - (0 ..= 0x000000000000003fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU6, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU6, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u71 u128) - (0 ..= 0x000000000000007fffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU7, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU7, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u72 u128) - (0 ..= 0x00000000000000ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU0, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU0, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u73 u128) - (0 ..= 0x00000000000001ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU1, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU1, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u74 u128) - (0 ..= 0x00000000000003ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU2, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU2, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u75 u128) - (0 ..= 0x00000000000007ffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU3, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU3, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u76 u128) - (0 ..= 0x0000000000000fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU4, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU4, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u77 u128) - (0 ..= 0x0000000000001fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU5, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU5, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u78 u128) - (0 ..= 0x0000000000003fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU6, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU6, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u79 u128) - (0 ..= 0x0000000000007fffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU7, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU7, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u80 u128) - (0 ..= 0x000000000000ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU0, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU0, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u81 u128) - (0 ..= 0x000000000001ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU1, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU1, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u82 u128) - (0 ..= 0x000000000003ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU2, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU2, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u83 u128) - (0 ..= 0x000000000007ffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU3, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU3, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u84 u128) - (0 ..= 0x00000000000fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU4, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU4, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u85 u128) - (0 ..= 0x00000000001fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU5, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU5, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u86 u128) - (0 ..= 0x00000000003fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU6, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU6, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u87 u128) - (0 ..= 0x00000000007fffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU7, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU7, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u88 u128) - (0 ..= 0x0000000000ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU0, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU0, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u89 u128) - (0 ..= 0x0000000001ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU1, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU1, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u90 u128) - (0 ..= 0x0000000003ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU2, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU2, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u91 u128) - (0 ..= 0x0000000007ffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU3, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU3, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u92 u128) - (0 ..= 0x000000000fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU4, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU4, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u93 u128) - (0 ..= 0x000000001fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU5, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU5, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u94 u128) - (0 ..= 0x000000003fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU6, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU6, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u95 u128) - (0 ..= 0x000000007fffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU7, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU7, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u96 u128) - (0 ..= 0x00000000ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU0, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU0, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u97 u128) - (0 ..= 0x00000001ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU1, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU1, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u98 u128) - (0 ..= 0x00000003ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU2, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU2, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u99 u128) - (0 ..= 0x00000007ffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU3, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU3, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u100 u128) - (0 ..= 0x0000000fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU4, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU4, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u101 u128) - (0 ..= 0x0000001fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU5, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU5, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u102 u128) - (0 ..= 0x0000003fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU6, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU6, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u103 u128) - (0 ..= 0x0000007fffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU7, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU7, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u104 u128) - (0 ..= 0x000000ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU0, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU0, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u105 u128) - (0 ..= 0x000001ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU1, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU1, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u106 u128) - (0 ..= 0x000003ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU2, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU2, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u107 u128) - (0 ..= 0x000007ffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU3, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU3, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u108 u128) - (0 ..= 0x00000fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU4, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU4, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u109 u128) - (0 ..= 0x00001fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU5, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU5, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u110 u128) - (0 ..= 0x00003fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU6, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU6, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u111 u128) - (0 ..= 0x00007fffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU7, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU7, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u112 u128) - (0 ..= 0x0000ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU0, p: MaxU1) - (p: MaxU1, o: MaxU0, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u113 u128) - (0 ..= 0x0001ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU1, p: MaxU1) - (p: MaxU1, o: MaxU1, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u114 u128) - (0 ..= 0x0003ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU2, p: MaxU1) - (p: MaxU1, o: MaxU2, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u115 u128) - (0 ..= 0x0007ffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU3, p: MaxU1) - (p: MaxU1, o: MaxU3, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u116 u128) - (0 ..= 0x000fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU4, p: MaxU1) - (p: MaxU1, o: MaxU4, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u117 u128) - (0 ..= 0x001fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU5, p: MaxU1) - (p: MaxU1, o: MaxU5, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u118 u128) - (0 ..= 0x003fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU6, p: MaxU1) - (p: MaxU1, o: MaxU6, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u119 u128) - (0 ..= 0x007fffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU7, p: MaxU1) - (p: MaxU1, o: MaxU7, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u120 u128) - (0 ..= 0x00ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU1) - (p: MaxU1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u121 u128) - (0 ..= 0x01ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU1) - (p: MaxU1, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u122 u128) - (0 ..= 0x03ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU2) - (p: MaxU2, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u123 u128) - (0 ..= 0x07ffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU3) - (p: MaxU3, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u124 u128) - (0 ..= 0x0fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU4) - (p: MaxU4, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u125 u128) - (0 ..= 0x1fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU5) - (p: MaxU5, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u126 u128) - (0 ..= 0x3fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU6) - (p: MaxU6, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - (u127 u128) - (0 ..= 0x7fffffffffffffffffffffffffffffff) - (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU7) - (p: MaxU7, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) - - // (u128 u128) - // (0 ..= 0xffffffffffffffffffffffffffffffff) - // (a: MaxU8, b: MaxU8, c: MaxU8, d: MaxU8, e: MaxU8, f: MaxU8, g: MaxU8, h: MaxU8, i: MaxU8, j: MaxU8, k: MaxU8, l: MaxU8, m: MaxU8, n: MaxU8, o: MaxU8, p: MaxU8) - // (p: MaxU8, o: MaxU8, n: MaxU8, m: MaxU8, l: MaxU8, k: MaxU8, j: MaxU8, i: MaxU8, h: MaxU8, g: MaxU8, f: MaxU8, e: MaxU8, d: MaxU8, c: MaxU8, b: MaxU8, a: MaxU8) -} From 1c7a8efe3ca8e217c868ef41655734f73cf07a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Wed, 14 Sep 2022 14:07:07 +0200 Subject: [PATCH 6/8] Make every method `#[inline]` This speeds up the compilation by 50% (YMMV), because code is only generated if used. The methods should generate trivial instructions for most methods, so there should be no drawbacks in using this annotation. --- src/conversion.rs | 6 ++++++ src/lib.rs | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/src/conversion.rs b/src/conversion.rs index 1a9a029..9581282 100644 --- a/src/conversion.rs +++ b/src/conversion.rs @@ -5,12 +5,14 @@ use crate::*; pub struct TryFromIntError(pub(crate) ()); impl From for TryFromIntError { + #[inline] fn from(_: lib::core::num::TryFromIntError) -> TryFromIntError { TryFromIntError(()) } } impl From for TryFromIntError { + #[inline] fn from(_: lib::core::convert::Infallible) -> TryFromIntError { TryFromIntError(()) } @@ -23,6 +25,7 @@ macro_rules! implement_from { {[$($name:ident),*], $from:ident } => {$(implement_from!($name, $from);)*}; {$name:ident, $from:ty} => { impl From<$from> for $name { + #[inline] fn from(x: $from) -> $name { unsafe { $name::new_unchecked(x.into()) } } @@ -38,6 +41,7 @@ macro_rules! implement_try_from { impl TryFrom<$from> for $name { type Error = TryFromIntError; + #[inline] fn try_from(x: $from) -> Result<$name, Self::Error> { Self::try_new(x.try_into()?).ok_or(TryFromIntError(())) } @@ -50,6 +54,7 @@ macro_rules! implement_into { {[$($name:ident),*], $from:ident } => {$(implement_into!($name, $from);)*}; {$name:ident, $into:ident} => { impl From<$name> for $into { + #[inline] fn from(x: $name) -> $into { x.get().into() } @@ -64,6 +69,7 @@ macro_rules! implement_try_into { impl TryFrom<$name> for $into { type Error = TryFromIntError; + #[inline] fn try_from(x: $name) -> Result<$into, Self::Error> { Ok(x.get().try_into()?) } diff --git a/src/lib.rs b/src/lib.rs index 6070e49..f3b3767 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -37,16 +37,19 @@ macro_rules! define_unsigned { ($name:ident, $bits:expr, $type:ident) => {define_unsigned!(#[doc=""], $name, $bits, $type);}; (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { impl $name { + #[inline] fn mask(value: $type) -> Self { let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); unsafe { $name::new_unchecked(value) } } + #[inline] fn mask_pos(value: $type) -> Self { let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); unsafe { $name::new_unchecked(value) } } + #[inline] fn mask_neg(value: $type) -> Self { let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); unsafe { $name::new_unchecked(value) } @@ -62,6 +65,7 @@ macro_rules! define_signed { (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { #[$doc] impl $name { + #[inline] fn mask(value: $type) -> Self { let value = if value & (1 << ($bits - 1)) == 0 { value & (((1 as $type) << $bits).overflowing_sub(1).0) @@ -71,11 +75,13 @@ macro_rules! define_signed { unsafe { $name::new_unchecked(value) } } + #[inline] fn mask_pos(value: $type) -> Self { let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); unsafe { $name::new_unchecked(value) } } + #[inline] fn mask_neg(value: $type) -> Self { let value = value | !(((1 as $type) << $bits).overflowing_sub(1).0); unsafe { $name::new_unchecked(value) } @@ -101,11 +107,13 @@ macro_rules! implement_common { pub const MIN: Self = $name::new(crate::niche::$name::MIN); /// Returns the smallest value that can be represented by this integer type. + #[inline] pub fn min_value() -> $name { $name::MIN } /// Returns the largest value that can be represented by this integer type. + #[inline] pub fn max_value() -> $name { $name::MAX } @@ -130,6 +138,7 @@ macro_rules! implement_common { /// /// This function will panic if `value` is not representable by this type #[allow(unreachable_patterns)] + #[inline] pub const fn new(value: $type) -> $name { const MIN: $type = crate::niche::$name::MIN; const MAX: $type = crate::niche::$name::MAX; @@ -150,6 +159,7 @@ macro_rules! implement_common { /// assert_eq!(i15::try_new(0x4000), None); /// ``` #[allow(unreachable_patterns)] + #[inline] pub const fn try_new(value: core::primitive::$type) -> Option<$name> { const MIN: core::primitive::$type = crate::niche::$name::MIN; const MAX: core::primitive::$type = crate::niche::$name::MAX; @@ -209,6 +219,7 @@ macro_rules! implement_common { /// assert_eq!(i5::new(-10).wrapping_sub(i5::new(5)), i5::new(-15)); /// assert_eq!(i5::new(-15).wrapping_sub(i5::new(5)), i5::new(12)); /// ``` + #[inline] pub fn wrapping_sub(self, rhs: Self) -> Self { $name::mask(self.get().wrapping_sub(rhs.get())) } @@ -228,18 +239,21 @@ macro_rules! implement_common { /// assert_eq!(i5::new(10).wrapping_add(i5::new(5)), i5::new(15)); /// assert_eq!(i5::new(15).wrapping_add(i5::new(5)), i5::new(-12)); /// ``` + #[inline] pub fn wrapping_add(self, rhs: Self) -> Self { $name::mask(self.get().wrapping_add(rhs.get())) } } impl Default for $name { + #[inline] fn default() -> Self { unsafe { $name::new_unchecked(0) } } } impl PartialEq for $name { + #[inline] fn eq(&self, other: &Self) -> bool { self.get() == other.get() } @@ -248,18 +262,21 @@ macro_rules! implement_common { impl Eq for $name {} impl PartialOrd for $name { + #[inline] fn partial_cmp(&self, other: &$name) -> Option { self.get().partial_cmp(&other.get()) } } impl Ord for $name { + #[inline] fn cmp(&self, other: &$name) -> Ordering { self.get().cmp(&other.get()) } } impl Hash for $name { + #[inline] fn hash(&self, h: &mut H) { self.get().hash(h) } @@ -267,31 +284,42 @@ macro_rules! implement_common { // Implement formating functions impl Debug for $name { + #[inline] fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { Debug::fmt(&self.get(), f) } } + impl Display for $name { + #[inline] fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { Display::fmt(&self.get(), f) } } + impl UpperHex for $name { + #[inline] fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { UpperHex::fmt(&self.get(), f) } } + impl LowerHex for $name { + #[inline] fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { LowerHex::fmt(&self.get(), f) } } + impl Octal for $name { + #[inline] fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { Octal::fmt(&self.get(), f) } } + impl Binary for $name { + #[inline] fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { Binary::fmt(&self.get(), f) } @@ -303,6 +331,7 @@ macro_rules! implement_common { { type Output = $name; + #[inline] #[allow(unused_comparisons)] fn shr(self, rhs: T) -> $name { let value = self.get(); @@ -320,6 +349,7 @@ macro_rules! implement_common { { type Output = $name; + #[inline] fn shl(self, rhs: T) -> $name { $name::mask(self.get().shl(rhs)) } @@ -329,6 +359,7 @@ macro_rules! implement_common { where $type: Shr, { + #[inline] fn shr_assign(&mut self, rhs: T) { *self = self.shr(rhs); } @@ -338,6 +369,7 @@ macro_rules! implement_common { where $type: Shl, { + #[inline] fn shl_assign(&mut self, rhs: T) { *self = self.shl(rhs); } @@ -346,6 +378,7 @@ macro_rules! implement_common { impl BitOr<$name> for $name { type Output = $name; + #[inline] fn bitor(self, rhs: $name) -> Self::Output { $name::mask(self.get().bitor(rhs.get())) } @@ -354,6 +387,7 @@ macro_rules! implement_common { impl<'a> BitOr<&'a $name> for $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitor(self, rhs: &'a $name) -> Self::Output { $name::mask(self.get().bitor(rhs.get())) } @@ -362,6 +396,7 @@ macro_rules! implement_common { impl<'a> BitOr<$name> for &'a $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitor(self, rhs: $name) -> Self::Output { $name::mask(self.get().bitor(rhs.get())) } @@ -370,12 +405,14 @@ macro_rules! implement_common { impl<'a> BitOr<&'a $name> for &'a $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitor(self, rhs: &'a $name) -> Self::Output { $name::mask(self.get().bitor(rhs.get())) } } impl BitOrAssign<$name> for $name { + #[inline] fn bitor_assign(&mut self, other: $name) { *self = self.bitor(other); } @@ -384,6 +421,7 @@ macro_rules! implement_common { impl BitXor<$name> for $name { type Output = $name; + #[inline] fn bitxor(self, rhs: $name) -> Self::Output { $name::mask(self.get().bitxor(rhs.get())) } @@ -392,6 +430,7 @@ macro_rules! implement_common { impl<'a> BitXor<&'a $name> for $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitxor(self, rhs: &'a $name) -> Self::Output { $name::mask(self.get().bitxor(rhs.get())) } @@ -400,6 +439,7 @@ macro_rules! implement_common { impl<'a> BitXor<$name> for &'a $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitxor(self, rhs: $name) -> Self::Output { $name::mask(self.get().bitxor(rhs.get())) } @@ -408,12 +448,14 @@ macro_rules! implement_common { impl<'a> BitXor<&'a $name> for &'a $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitxor(self, rhs: &'a $name) -> Self::Output { $name::mask(self.get().bitxor(rhs.get())) } } impl BitXorAssign<$name> for $name { + #[inline] fn bitxor_assign(&mut self, other: $name) { *self = self.bitxor(other); } @@ -422,6 +464,7 @@ macro_rules! implement_common { impl Not for $name { type Output = $name; + #[inline] fn not(self) -> $name { $name::mask(self.get().not()) } @@ -430,6 +473,7 @@ macro_rules! implement_common { impl<'a> Not for &'a $name { type Output = <$name as Not>::Output; + #[inline] fn not(self) -> $name { $name::mask(self.get().not()) } @@ -438,6 +482,7 @@ macro_rules! implement_common { impl BitAnd<$name> for $name { type Output = $name; + #[inline] fn bitand(self, rhs: $name) -> Self::Output { $name::mask(self.get().bitand(rhs.get())) } @@ -446,6 +491,7 @@ macro_rules! implement_common { impl<'a> BitAnd<&'a $name> for $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitand(self, rhs: &'a $name) -> Self::Output { $name::mask(self.get().bitand(rhs.get())) } @@ -454,6 +500,7 @@ macro_rules! implement_common { impl<'a> BitAnd<$name> for &'a $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitand(self, rhs: $name) -> Self::Output { $name::mask(self.get().bitand(rhs.get())) } @@ -462,12 +509,14 @@ macro_rules! implement_common { impl<'a> BitAnd<&'a $name> for &'a $name { type Output = <$name as BitOr<$name>>::Output; + #[inline] fn bitand(self, rhs: &'a $name) -> Self::Output { $name::mask(self.get().bitand(rhs.get())) } } impl BitAndAssign<$name> for $name { + #[inline] fn bitand_assign(&mut self, other: $name) { *self = self.bitand(other); } @@ -475,7 +524,9 @@ macro_rules! implement_common { impl lib::core::ops::Add<$name> for $name { type Output = $name; + #[allow(unused_comparisons)] + #[inline] fn add(self, other: $name) -> $name { if self.get() > 0 && other.get() > 0 { debug_assert!($name::MAX.get() - other.get() >= self.get()); @@ -488,7 +539,9 @@ macro_rules! implement_common { impl lib::core::ops::Sub<$name> for $name { type Output = $name; + #[allow(unused_comparisons)] + #[inline] fn sub(self, other: $name) -> $name { if self > other { debug_assert!($name::MAX.get() + other.get() >= self.get()); From dadb1db5cfe1f3198989f5bb4389d91219b203bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Fri, 16 Sep 2022 15:03:23 +0200 Subject: [PATCH 7/8] Add layout test --- src/lib.rs | 669 +++++++++++++++++++++++++++-------------------------- 1 file changed, 345 insertions(+), 324 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index f3b3767..88fa7f6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,67 +34,70 @@ use lib::core::cmp::{Ord, Ordering, PartialOrd}; use lib::core::fmt::{Binary, Debug, Display, Formatter, LowerHex, Octal, UpperHex}; macro_rules! define_unsigned { - ($name:ident, $bits:expr, $type:ident) => {define_unsigned!(#[doc=""], $name, $bits, $type);}; - (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { - impl $name { - #[inline] - fn mask(value: $type) -> Self { - let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); - unsafe { $name::new_unchecked(value) } - } + ($(($doc:literal $name:ident $bits:literal $type:ident))*) => { + $( + impl $name { + #[inline] + fn mask(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } - #[inline] - fn mask_pos(value: $type) -> Self { - let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); - unsafe { $name::new_unchecked(value) } - } + #[inline] + fn mask_pos(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } - #[inline] - fn mask_neg(value: $type) -> Self { - let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); - unsafe { $name::new_unchecked(value) } + #[inline] + fn mask_neg(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } } - } + )* - implement_common!(#[$doc], $name, $bits, $type); - } + implement_common!($(($doc $name $bits $type))*); + implement_layout_test!(test_unsigned_layout $($name $type)*); + }; } macro_rules! define_signed { - ($name:ident, $bits:expr, $type:ident) => {define_signed!(#[doc=""], $name, $bits, $type);}; - (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { - #[$doc] - impl $name { - #[inline] - fn mask(value: $type) -> Self { - let value = if value & (1 << ($bits - 1)) == 0 { - value & (((1 as $type) << $bits).overflowing_sub(1).0) - } else { - value | !(((1 as $type) << $bits).overflowing_sub(1).0) - }; - unsafe { $name::new_unchecked(value) } - } + ($(($doc:literal $name:ident $bits:literal $type:ident))*) => { + $( + impl $name { + #[inline] + fn mask(value: $type) -> Self { + let value = if value & (1 << ($bits - 1)) == 0 { + value & (((1 as $type) << $bits).overflowing_sub(1).0) + } else { + value | !(((1 as $type) << $bits).overflowing_sub(1).0) + }; + unsafe { $name::new_unchecked(value) } + } - #[inline] - fn mask_pos(value: $type) -> Self { - let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); - unsafe { $name::new_unchecked(value) } - } + #[inline] + fn mask_pos(value: $type) -> Self { + let value = value & (((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } - #[inline] - fn mask_neg(value: $type) -> Self { - let value = value | !(((1 as $type) << $bits).overflowing_sub(1).0); - unsafe { $name::new_unchecked(value) } + #[inline] + fn mask_neg(value: $type) -> Self { + let value = value | !(((1 as $type) << $bits).overflowing_sub(1).0); + unsafe { $name::new_unchecked(value) } + } } - } + )* - implement_common!(#[$doc], $name, $bits, $type); - } + implement_common!($(($doc $name $bits $type))*); + implement_layout_test!(test_signed_layout $($name $type)*); + }; } macro_rules! implement_common { - (#[$doc:meta], $name:ident, $bits:expr, $type:ident) => { - #[$doc] + ($(($doc:literal $name:ident $bits:literal $type:ident))*) => { $( + #[doc = $doc] #[allow(non_camel_case_types)] #[derive(Clone, Copy)] pub struct $name(crate::niche::$name); @@ -551,286 +554,304 @@ macro_rules! implement_common { self.wrapping_sub(other) } } + )* }; +} + +#[cfg(not(test))] +macro_rules! implement_layout_test { + ($($_:tt)*) => {}; +} + +#[cfg(test)] +macro_rules! implement_layout_test { + ($test_name:ident $($name:ident $type:ident)*) => { + #[test] + fn $test_name() { + $( + assert_eq!( + core::mem::size_of::<$name>(), + core::mem::size_of::<$type>(), + "size_of::<{}>() == size_of::<{}>()", + stringify!($name), + stringify!($type), + ); + assert_eq!( + core::mem::align_of::<$name>(), + core::mem::align_of::<$type>(), + "align_of::<{}>() == align_of::<{}>()", + stringify!($name), + stringify!($type), + ); + assert_eq!( + core::mem::size_of::<$name>(), + core::mem::size_of::>(), + "size_of::<{}>() == size_of::>()", + stringify!($name), + stringify!($name), + ); + assert_eq!( + core::mem::align_of::<$name>(), + core::mem::align_of::>(), + "align_of::<{}>() == align_of::>()", + stringify!($name), + stringify!($name), + ); + )* + } }; } -define_unsigned!(#[doc="The 1-bit unsigned integer type."], u1, 1, u8); -define_unsigned!(#[doc="The 2-bit unsigned integer type."], u2, 2, u8); -define_unsigned!(#[doc="The 3-bit unsigned integer type."], u3, 3, u8); -define_unsigned!(#[doc="The 4-bit unsigned integer type."], u4, 4, u8); -define_unsigned!(#[doc="The 5-bit unsigned integer type."], u5, 5, u8); -define_unsigned!(#[doc="The 6-bit unsigned integer type."], u6, 6, u8); -define_unsigned!(#[doc="The 7-bit unsigned integer type."], u7, 7, u8); - -define_unsigned!(#[doc="The 9-bit unsigned integer type."], u9, 9, u16); -define_unsigned!(#[doc="The 10-bit unsigned integer type."], u10, 10, u16); -define_unsigned!(#[doc="The 11-bit unsigned integer type."], u11, 11, u16); -define_unsigned!(#[doc="The 12-bit unsigned integer type."], u12, 12, u16); -define_unsigned!(#[doc="The 13-bit unsigned integer type."], u13, 13, u16); -define_unsigned!(#[doc="The 14-bit unsigned integer type."], u14, 14, u16); -define_unsigned!(#[doc="The 15-bit unsigned integer type."], u15, 15, u16); - -define_unsigned!(#[doc="The 17-bit unsigned integer type."], u17, 17, u32); -define_unsigned!(#[doc="The 18-bit unsigned integer type."], u18, 18, u32); -define_unsigned!(#[doc="The 19-bit unsigned integer type."], u19, 19, u32); -define_unsigned!(#[doc="The 20-bit unsigned integer type."], u20, 20, u32); -define_unsigned!(#[doc="The 21-bit unsigned integer type."], u21, 21, u32); -define_unsigned!(#[doc="The 22-bit unsigned integer type."], u22, 22, u32); -define_unsigned!(#[doc="The 23-bit unsigned integer type."], u23, 23, u32); -define_unsigned!(#[doc="The 24-bit unsigned integer type."], u24, 24, u32); - -define_unsigned!(#[doc="The 25-bit unsigned integer type."], u25, 25, u32); -define_unsigned!(#[doc="The 26-bit unsigned integer type."], u26, 26, u32); -define_unsigned!(#[doc="The 27-bit unsigned integer type."], u27, 27, u32); -define_unsigned!(#[doc="The 28-bit unsigned integer type."], u28, 28, u32); -define_unsigned!(#[doc="The 29-bit unsigned integer type."], u29, 29, u32); -define_unsigned!(#[doc="The 30-bit unsigned integer type."], u30, 30, u32); -define_unsigned!(#[doc="The 31-bit unsigned integer type."], u31, 31, u32); - -define_unsigned!(#[doc="The 33-bit unsigned integer type."], u33, 33, u64); -define_unsigned!(#[doc="The 34-bit unsigned integer type."], u34, 34, u64); -define_unsigned!(#[doc="The 35-bit unsigned integer type."], u35, 35, u64); -define_unsigned!(#[doc="The 36-bit unsigned integer type."], u36, 36, u64); -define_unsigned!(#[doc="The 37-bit unsigned integer type."], u37, 37, u64); -define_unsigned!(#[doc="The 38-bit unsigned integer type."], u38, 38, u64); -define_unsigned!(#[doc="The 39-bit unsigned integer type."], u39, 39, u64); -define_unsigned!(#[doc="The 40-bit unsigned integer type."], u40, 40, u64); - -define_unsigned!(#[doc="The 41-bit unsigned integer type."], u41, 41, u64); -define_unsigned!(#[doc="The 42-bit unsigned integer type."], u42, 42, u64); -define_unsigned!(#[doc="The 43-bit unsigned integer type."], u43, 43, u64); -define_unsigned!(#[doc="The 44-bit unsigned integer type."], u44, 44, u64); -define_unsigned!(#[doc="The 45-bit unsigned integer type."], u45, 45, u64); -define_unsigned!(#[doc="The 46-bit unsigned integer type."], u46, 46, u64); -define_unsigned!(#[doc="The 47-bit unsigned integer type."], u47, 47, u64); -define_unsigned!(#[doc="The 48-bit unsigned integer type."], u48, 48, u64); - -define_unsigned!(#[doc="The 49-bit unsigned integer type."], u49, 49, u64); -define_unsigned!(#[doc="The 50-bit unsigned integer type."], u50, 50, u64); -define_unsigned!(#[doc="The 51-bit unsigned integer type."], u51, 51, u64); -define_unsigned!(#[doc="The 52-bit unsigned integer type."], u52, 52, u64); -define_unsigned!(#[doc="The 53-bit unsigned integer type."], u53, 53, u64); -define_unsigned!(#[doc="The 54-bit unsigned integer type."], u54, 54, u64); -define_unsigned!(#[doc="The 55-bit unsigned integer type."], u55, 55, u64); -define_unsigned!(#[doc="The 56-bit unsigned integer type."], u56, 56, u64); - -define_unsigned!(#[doc="The 57-bit unsigned integer type."], u57, 57, u64); -define_unsigned!(#[doc="The 58-bit unsigned integer type."], u58, 58, u64); -define_unsigned!(#[doc="The 59-bit unsigned integer type."], u59, 59, u64); -define_unsigned!(#[doc="The 60-bit unsigned integer type."], u60, 60, u64); -define_unsigned!(#[doc="The 61-bit unsigned integer type."], u61, 61, u64); -define_unsigned!(#[doc="The 62-bit unsigned integer type."], u62, 62, u64); -define_unsigned!(#[doc="The 63-bit unsigned integer type."], u63, 63, u64); - -define_unsigned!(#[doc="The 65-bit unsigned integer type."], u65, 65, u128); -define_unsigned!(#[doc="The 66-bit unsigned integer type."], u66, 66, u128); -define_unsigned!(#[doc="The 67-bit unsigned integer type."], u67, 67, u128); -define_unsigned!(#[doc="The 68-bit unsigned integer type."], u68, 68, u128); -define_unsigned!(#[doc="The 69-bit unsigned integer type."], u69, 69, u128); -define_unsigned!(#[doc="The 70-bit unsigned integer type."], u70, 70, u128); -define_unsigned!(#[doc="The 71-bit unsigned integer type."], u71, 71, u128); -define_unsigned!(#[doc="The 72-bit unsigned integer type."], u72, 72, u128); - -define_unsigned!(#[doc="The 73-bit unsigned integer type."], u73, 73, u128); -define_unsigned!(#[doc="The 74-bit unsigned integer type."], u74, 74, u128); -define_unsigned!(#[doc="The 75-bit unsigned integer type."], u75, 75, u128); -define_unsigned!(#[doc="The 76-bit unsigned integer type."], u76, 76, u128); -define_unsigned!(#[doc="The 77-bit unsigned integer type."], u77, 77, u128); -define_unsigned!(#[doc="The 78-bit unsigned integer type."], u78, 78, u128); -define_unsigned!(#[doc="The 79-bit unsigned integer type."], u79, 79, u128); -define_unsigned!(#[doc="The 80-bit unsigned integer type."], u80, 80, u128); - -define_unsigned!(#[doc="The 81-bit unsigned integer type."], u81, 81, u128); -define_unsigned!(#[doc="The 82-bit unsigned integer type."], u82, 82, u128); -define_unsigned!(#[doc="The 83-bit unsigned integer type."], u83, 83, u128); -define_unsigned!(#[doc="The 84-bit unsigned integer type."], u84, 84, u128); -define_unsigned!(#[doc="The 85-bit unsigned integer type."], u85, 85, u128); -define_unsigned!(#[doc="The 86-bit unsigned integer type."], u86, 86, u128); -define_unsigned!(#[doc="The 87-bit unsigned integer type."], u87, 87, u128); -define_unsigned!(#[doc="The 88-bit unsigned integer type."], u88, 88, u128); - -define_unsigned!(#[doc="The 89-bit unsigned integer type."], u89, 89, u128); -define_unsigned!(#[doc="The 90-bit unsigned integer type."], u90, 90, u128); -define_unsigned!(#[doc="The 91-bit unsigned integer type."], u91, 91, u128); -define_unsigned!(#[doc="The 92-bit unsigned integer type."], u92, 92, u128); -define_unsigned!(#[doc="The 93-bit unsigned integer type."], u93, 93, u128); -define_unsigned!(#[doc="The 94-bit unsigned integer type."], u94, 94, u128); -define_unsigned!(#[doc="The 95-bit unsigned integer type."], u95, 95, u128); -define_unsigned!(#[doc="The 96-bit unsigned integer type."], u96, 96, u128); - -define_unsigned!(#[doc="The 97-bit unsigned integer type."], u97, 97, u128); -define_unsigned!(#[doc="The 98-bit unsigned integer type."], u98, 98, u128); -define_unsigned!(#[doc="The 99-bit unsigned integer type."], u99, 99, u128); -define_unsigned!(#[doc="The 100-bit unsigned integer type."], u100, 100, u128); -define_unsigned!(#[doc="The 101-bit unsigned integer type."], u101, 101, u128); -define_unsigned!(#[doc="The 102-bit unsigned integer type."], u102, 102, u128); -define_unsigned!(#[doc="The 103-bit unsigned integer type."], u103, 103, u128); -define_unsigned!(#[doc="The 104-bit unsigned integer type."], u104, 104, u128); - -define_unsigned!(#[doc="The 105-bit unsigned integer type."], u105, 105, u128); -define_unsigned!(#[doc="The 106-bit unsigned integer type."], u106, 106, u128); -define_unsigned!(#[doc="The 107-bit unsigned integer type."], u107, 107, u128); -define_unsigned!(#[doc="The 108-bit unsigned integer type."], u108, 108, u128); -define_unsigned!(#[doc="The 109-bit unsigned integer type."], u109, 109, u128); -define_unsigned!(#[doc="The 110-bit unsigned integer type."], u110, 110, u128); -define_unsigned!(#[doc="The 111-bit unsigned integer type."], u111, 111, u128); -define_unsigned!(#[doc="The 112-bit unsigned integer type."], u112, 112, u128); - -define_unsigned!(#[doc="The 113-bit unsigned integer type."], u113, 113, u128); -define_unsigned!(#[doc="The 114-bit unsigned integer type."], u114, 114, u128); -define_unsigned!(#[doc="The 115-bit unsigned integer type."], u115, 115, u128); -define_unsigned!(#[doc="The 116-bit unsigned integer type."], u116, 116, u128); -define_unsigned!(#[doc="The 117-bit unsigned integer type."], u117, 117, u128); -define_unsigned!(#[doc="The 118-bit unsigned integer type."], u118, 118, u128); -define_unsigned!(#[doc="The 119-bit unsigned integer type."], u119, 119, u128); -define_unsigned!(#[doc="The 120-bit unsigned integer type."], u120, 120, u128); - -define_unsigned!(#[doc="The 121-bit unsigned integer type."], u121, 121, u128); -define_unsigned!(#[doc="The 122-bit unsigned integer type."], u122, 122, u128); -define_unsigned!(#[doc="The 123-bit unsigned integer type."], u123, 123, u128); -define_unsigned!(#[doc="The 124-bit unsigned integer type."], u124, 124, u128); -define_unsigned!(#[doc="The 125-bit unsigned integer type."], u125, 125, u128); -define_unsigned!(#[doc="The 126-bit unsigned integer type."], u126, 126, u128); -define_unsigned!(#[doc="The 127-bit unsigned integer type."], u127, 127, u128); - -define_signed!(#[doc="The 1-bit signed integer type."], i1, 1, i8); -define_signed!(#[doc="The 2-bit signed integer type."], i2, 2, i8); -define_signed!(#[doc="The 3-bit signed integer type."], i3, 3, i8); -define_signed!(#[doc="The 4-bit signed integer type."], i4, 4, i8); -define_signed!(#[doc="The 5-bit signed integer type."], i5, 5, i8); -define_signed!(#[doc="The 6-bit signed integer type."], i6, 6, i8); -define_signed!(#[doc="The 7-bit signed integer type."], i7, 7, i8); - -define_signed!(#[doc="The 9-bit signed integer type."], i9, 9, i16); -define_signed!(#[doc="The 10-bit signed integer type."], i10, 10, i16); -define_signed!(#[doc="The 11-bit signed integer type."], i11, 11, i16); -define_signed!(#[doc="The 12-bit signed integer type."], i12, 12, i16); -define_signed!(#[doc="The 13-bit signed integer type."], i13, 13, i16); -define_signed!(#[doc="The 14-bit signed integer type."], i14, 14, i16); -define_signed!(#[doc="The 15-bit signed integer type."], i15, 15, i16); - -define_signed!(#[doc="The 17-bit signed integer type."], i17, 17, i32); -define_signed!(#[doc="The 18-bit signed integer type."], i18, 18, i32); -define_signed!(#[doc="The 19-bit signed integer type."], i19, 19, i32); -define_signed!(#[doc="The 20-bit signed integer type."], i20, 20, i32); -define_signed!(#[doc="The 21-bit signed integer type."], i21, 21, i32); -define_signed!(#[doc="The 22-bit signed integer type."], i22, 22, i32); -define_signed!(#[doc="The 23-bit signed integer type."], i23, 23, i32); -define_signed!(#[doc="The 24-bit signed integer type."], i24, 24, i32); - -define_signed!(#[doc="The 25-bit signed integer type."], i25, 25, i32); -define_signed!(#[doc="The 26-bit signed integer type."], i26, 26, i32); -define_signed!(#[doc="The 27-bit signed integer type."], i27, 27, i32); -define_signed!(#[doc="The 28-bit signed integer type."], i28, 28, i32); -define_signed!(#[doc="The 29-bit signed integer type."], i29, 29, i32); -define_signed!(#[doc="The 30-bit signed integer type."], i30, 30, i32); -define_signed!(#[doc="The 31-bit signed integer type."], i31, 31, i32); - -define_signed!(#[doc="The 33-bit signed integer type."], i33, 33, i64); -define_signed!(#[doc="The 34-bit signed integer type."], i34, 34, i64); -define_signed!(#[doc="The 35-bit signed integer type."], i35, 35, i64); -define_signed!(#[doc="The 36-bit signed integer type."], i36, 36, i64); -define_signed!(#[doc="The 37-bit signed integer type."], i37, 37, i64); -define_signed!(#[doc="The 38-bit signed integer type."], i38, 38, i64); -define_signed!(#[doc="The 39-bit signed integer type."], i39, 39, i64); -define_signed!(#[doc="The 40-bit signed integer type."], i40, 40, i64); - -define_signed!(#[doc="The 41-bit signed integer type."], i41, 41, i64); -define_signed!(#[doc="The 42-bit signed integer type."], i42, 42, i64); -define_signed!(#[doc="The 43-bit signed integer type."], i43, 43, i64); -define_signed!(#[doc="The 44-bit signed integer type."], i44, 44, i64); -define_signed!(#[doc="The 45-bit signed integer type."], i45, 45, i64); -define_signed!(#[doc="The 46-bit signed integer type."], i46, 46, i64); -define_signed!(#[doc="The 47-bit signed integer type."], i47, 47, i64); -define_signed!(#[doc="The 48-bit signed integer type."], i48, 48, i64); - -define_signed!(#[doc="The 49-bit signed integer type."], i49, 49, i64); -define_signed!(#[doc="The 50-bit signed integer type."], i50, 50, i64); -define_signed!(#[doc="The 51-bit signed integer type."], i51, 51, i64); -define_signed!(#[doc="The 52-bit signed integer type."], i52, 52, i64); -define_signed!(#[doc="The 53-bit signed integer type."], i53, 53, i64); -define_signed!(#[doc="The 54-bit signed integer type."], i54, 54, i64); -define_signed!(#[doc="The 55-bit signed integer type."], i55, 55, i64); -define_signed!(#[doc="The 56-bit signed integer type."], i56, 56, i64); - -define_signed!(#[doc="The 57-bit signed integer type."], i57, 57, i64); -define_signed!(#[doc="The 58-bit signed integer type."], i58, 58, i64); -define_signed!(#[doc="The 59-bit signed integer type."], i59, 59, i64); -define_signed!(#[doc="The 60-bit signed integer type."], i60, 60, i64); -define_signed!(#[doc="The 61-bit signed integer type."], i61, 61, i64); -define_signed!(#[doc="The 62-bit signed integer type."], i62, 62, i64); -define_signed!(#[doc="The 63-bit signed integer type."], i63, 63, i64); - -define_signed!(#[doc="The 65-bit signed integer type."], i65, 65, i128); -define_signed!(#[doc="The 66-bit signed integer type."], i66, 66, i128); -define_signed!(#[doc="The 67-bit signed integer type."], i67, 67, i128); -define_signed!(#[doc="The 68-bit signed integer type."], i68, 68, i128); -define_signed!(#[doc="The 69-bit signed integer type."], i69, 69, i128); -define_signed!(#[doc="The 70-bit signed integer type."], i70, 70, i128); -define_signed!(#[doc="The 71-bit signed integer type."], i71, 71, i128); -define_signed!(#[doc="The 72-bit signed integer type."], i72, 72, i128); - -define_signed!(#[doc="The 73-bit signed integer type."], i73, 73, i128); -define_signed!(#[doc="The 74-bit signed integer type."], i74, 74, i128); -define_signed!(#[doc="The 75-bit signed integer type."], i75, 75, i128); -define_signed!(#[doc="The 76-bit signed integer type."], i76, 76, i128); -define_signed!(#[doc="The 77-bit signed integer type."], i77, 77, i128); -define_signed!(#[doc="The 78-bit signed integer type."], i78, 78, i128); -define_signed!(#[doc="The 79-bit signed integer type."], i79, 79, i128); -define_signed!(#[doc="The 80-bit signed integer type."], i80, 80, i128); - -define_signed!(#[doc="The 81-bit signed integer type."], i81, 81, i128); -define_signed!(#[doc="The 82-bit signed integer type."], i82, 82, i128); -define_signed!(#[doc="The 83-bit signed integer type."], i83, 83, i128); -define_signed!(#[doc="The 84-bit signed integer type."], i84, 84, i128); -define_signed!(#[doc="The 85-bit signed integer type."], i85, 85, i128); -define_signed!(#[doc="The 86-bit signed integer type."], i86, 86, i128); -define_signed!(#[doc="The 87-bit signed integer type."], i87, 87, i128); -define_signed!(#[doc="The 88-bit signed integer type."], i88, 88, i128); - -define_signed!(#[doc="The 89-bit signed integer type."], i89, 89, i128); -define_signed!(#[doc="The 90-bit signed integer type."], i90, 90, i128); -define_signed!(#[doc="The 91-bit signed integer type."], i91, 91, i128); -define_signed!(#[doc="The 92-bit signed integer type."], i92, 92, i128); -define_signed!(#[doc="The 93-bit signed integer type."], i93, 93, i128); -define_signed!(#[doc="The 94-bit signed integer type."], i94, 94, i128); -define_signed!(#[doc="The 95-bit signed integer type."], i95, 95, i128); -define_signed!(#[doc="The 96-bit signed integer type."], i96, 96, i128); - -define_signed!(#[doc="The 97-bit signed integer type."], i97, 97, i128); -define_signed!(#[doc="The 98-bit signed integer type."], i98, 98, i128); -define_signed!(#[doc="The 99-bit signed integer type."], i99, 99, i128); -define_signed!(#[doc="The 100-bit signed integer type."], i100, 100, i128); -define_signed!(#[doc="The 101-bit signed integer type."], i101, 101, i128); -define_signed!(#[doc="The 102-bit signed integer type."], i102, 102, i128); -define_signed!(#[doc="The 103-bit signed integer type."], i103, 103, i128); -define_signed!(#[doc="The 104-bit signed integer type."], i104, 104, i128); - -define_signed!(#[doc="The 105-bit signed integer type."], i105, 105, i128); -define_signed!(#[doc="The 106-bit signed integer type."], i106, 106, i128); -define_signed!(#[doc="The 107-bit signed integer type."], i107, 107, i128); -define_signed!(#[doc="The 108-bit signed integer type."], i108, 108, i128); -define_signed!(#[doc="The 109-bit signed integer type."], i109, 109, i128); -define_signed!(#[doc="The 110-bit signed integer type."], i110, 110, i128); -define_signed!(#[doc="The 111-bit signed integer type."], i111, 111, i128); -define_signed!(#[doc="The 112-bit signed integer type."], i112, 112, i128); - -define_signed!(#[doc="The 113-bit signed integer type."], i113, 113, i128); -define_signed!(#[doc="The 114-bit signed integer type."], i114, 114, i128); -define_signed!(#[doc="The 115-bit signed integer type."], i115, 115, i128); -define_signed!(#[doc="The 116-bit signed integer type."], i116, 116, i128); -define_signed!(#[doc="The 117-bit signed integer type."], i117, 117, i128); -define_signed!(#[doc="The 118-bit signed integer type."], i118, 118, i128); -define_signed!(#[doc="The 119-bit signed integer type."], i119, 119, i128); -define_signed!(#[doc="The 120-bit signed integer type."], i120, 120, i128); - -define_signed!(#[doc="The 121-bit signed integer type."], i121, 121, i128); -define_signed!(#[doc="The 122-bit signed integer type."], i122, 122, i128); -define_signed!(#[doc="The 123-bit signed integer type."], i123, 123, i128); -define_signed!(#[doc="The 124-bit signed integer type."], i124, 124, i128); -define_signed!(#[doc="The 125-bit signed integer type."], i125, 125, i128); -define_signed!(#[doc="The 126-bit signed integer type."], i126, 126, i128); -define_signed!(#[doc="The 127-bit signed integer type."], i127, 127, i128); +define_unsigned! { + ("The 1-bit unsigned integer type." u1 1 u8) + ("The 2-bit unsigned integer type." u2 2 u8) + ("The 3-bit unsigned integer type." u3 3 u8) + ("The 4-bit unsigned integer type." u4 4 u8) + ("The 5-bit unsigned integer type." u5 5 u8) + ("The 6-bit unsigned integer type." u6 6 u8) + ("The 7-bit unsigned integer type." u7 7 u8) + ("The 9-bit unsigned integer type." u9 9 u16) + ("The 10-bit unsigned integer type." u10 10 u16) + ("The 11-bit unsigned integer type." u11 11 u16) + ("The 12-bit unsigned integer type." u12 12 u16) + ("The 13-bit unsigned integer type." u13 13 u16) + ("The 14-bit unsigned integer type." u14 14 u16) + ("The 15-bit unsigned integer type." u15 15 u16) + ("The 17-bit unsigned integer type." u17 17 u32) + ("The 18-bit unsigned integer type." u18 18 u32) + ("The 19-bit unsigned integer type." u19 19 u32) + ("The 20-bit unsigned integer type." u20 20 u32) + ("The 21-bit unsigned integer type." u21 21 u32) + ("The 22-bit unsigned integer type." u22 22 u32) + ("The 23-bit unsigned integer type." u23 23 u32) + ("The 24-bit unsigned integer type." u24 24 u32) + ("The 25-bit unsigned integer type." u25 25 u32) + ("The 26-bit unsigned integer type." u26 26 u32) + ("The 27-bit unsigned integer type." u27 27 u32) + ("The 28-bit unsigned integer type." u28 28 u32) + ("The 29-bit unsigned integer type." u29 29 u32) + ("The 30-bit unsigned integer type." u30 30 u32) + ("The 31-bit unsigned integer type." u31 31 u32) + ("The 33-bit unsigned integer type." u33 33 u64) + ("The 34-bit unsigned integer type." u34 34 u64) + ("The 35-bit unsigned integer type." u35 35 u64) + ("The 36-bit unsigned integer type." u36 36 u64) + ("The 37-bit unsigned integer type." u37 37 u64) + ("The 38-bit unsigned integer type." u38 38 u64) + ("The 39-bit unsigned integer type." u39 39 u64) + ("The 40-bit unsigned integer type." u40 40 u64) + ("The 41-bit unsigned integer type." u41 41 u64) + ("The 42-bit unsigned integer type." u42 42 u64) + ("The 43-bit unsigned integer type." u43 43 u64) + ("The 44-bit unsigned integer type." u44 44 u64) + ("The 45-bit unsigned integer type." u45 45 u64) + ("The 46-bit unsigned integer type." u46 46 u64) + ("The 47-bit unsigned integer type." u47 47 u64) + ("The 48-bit unsigned integer type." u48 48 u64) + ("The 49-bit unsigned integer type." u49 49 u64) + ("The 50-bit unsigned integer type." u50 50 u64) + ("The 51-bit unsigned integer type." u51 51 u64) + ("The 52-bit unsigned integer type." u52 52 u64) + ("The 53-bit unsigned integer type." u53 53 u64) + ("The 54-bit unsigned integer type." u54 54 u64) + ("The 55-bit unsigned integer type." u55 55 u64) + ("The 56-bit unsigned integer type." u56 56 u64) + ("The 57-bit unsigned integer type." u57 57 u64) + ("The 58-bit unsigned integer type." u58 58 u64) + ("The 59-bit unsigned integer type." u59 59 u64) + ("The 60-bit unsigned integer type." u60 60 u64) + ("The 61-bit unsigned integer type." u61 61 u64) + ("The 62-bit unsigned integer type." u62 62 u64) + ("The 63-bit unsigned integer type." u63 63 u64) + ("The 65-bit unsigned integer type." u65 65 u128) + ("The 66-bit unsigned integer type." u66 66 u128) + ("The 67-bit unsigned integer type." u67 67 u128) + ("The 68-bit unsigned integer type." u68 68 u128) + ("The 69-bit unsigned integer type." u69 69 u128) + ("The 70-bit unsigned integer type." u70 70 u128) + ("The 71-bit unsigned integer type." u71 71 u128) + ("The 72-bit unsigned integer type." u72 72 u128) + ("The 73-bit unsigned integer type." u73 73 u128) + ("The 74-bit unsigned integer type." u74 74 u128) + ("The 75-bit unsigned integer type." u75 75 u128) + ("The 76-bit unsigned integer type." u76 76 u128) + ("The 77-bit unsigned integer type." u77 77 u128) + ("The 78-bit unsigned integer type." u78 78 u128) + ("The 79-bit unsigned integer type." u79 79 u128) + ("The 80-bit unsigned integer type." u80 80 u128) + ("The 81-bit unsigned integer type." u81 81 u128) + ("The 82-bit unsigned integer type." u82 82 u128) + ("The 83-bit unsigned integer type." u83 83 u128) + ("The 84-bit unsigned integer type." u84 84 u128) + ("The 85-bit unsigned integer type." u85 85 u128) + ("The 86-bit unsigned integer type." u86 86 u128) + ("The 87-bit unsigned integer type." u87 87 u128) + ("The 88-bit unsigned integer type." u88 88 u128) + ("The 89-bit unsigned integer type." u89 89 u128) + ("The 90-bit unsigned integer type." u90 90 u128) + ("The 91-bit unsigned integer type." u91 91 u128) + ("The 92-bit unsigned integer type." u92 92 u128) + ("The 93-bit unsigned integer type." u93 93 u128) + ("The 94-bit unsigned integer type." u94 94 u128) + ("The 95-bit unsigned integer type." u95 95 u128) + ("The 96-bit unsigned integer type." u96 96 u128) + ("The 97-bit unsigned integer type." u97 97 u128) + ("The 98-bit unsigned integer type." u98 98 u128) + ("The 99-bit unsigned integer type." u99 99 u128) + ("The 100-bit unsigned integer type." u100 100 u128) + ("The 101-bit unsigned integer type." u101 101 u128) + ("The 102-bit unsigned integer type." u102 102 u128) + ("The 103-bit unsigned integer type." u103 103 u128) + ("The 104-bit unsigned integer type." u104 104 u128) + ("The 105-bit unsigned integer type." u105 105 u128) + ("The 106-bit unsigned integer type." u106 106 u128) + ("The 107-bit unsigned integer type." u107 107 u128) + ("The 108-bit unsigned integer type." u108 108 u128) + ("The 109-bit unsigned integer type." u109 109 u128) + ("The 110-bit unsigned integer type." u110 110 u128) + ("The 111-bit unsigned integer type." u111 111 u128) + ("The 112-bit unsigned integer type." u112 112 u128) + ("The 113-bit unsigned integer type." u113 113 u128) + ("The 114-bit unsigned integer type." u114 114 u128) + ("The 115-bit unsigned integer type." u115 115 u128) + ("The 116-bit unsigned integer type." u116 116 u128) + ("The 117-bit unsigned integer type." u117 117 u128) + ("The 118-bit unsigned integer type." u118 118 u128) + ("The 119-bit unsigned integer type." u119 119 u128) + ("The 120-bit unsigned integer type." u120 120 u128) + ("The 121-bit unsigned integer type." u121 121 u128) + ("The 122-bit unsigned integer type." u122 122 u128) + ("The 123-bit unsigned integer type." u123 123 u128) + ("The 124-bit unsigned integer type." u124 124 u128) + ("The 125-bit unsigned integer type." u125 125 u128) + ("The 126-bit unsigned integer type." u126 126 u128) + ("The 127-bit unsigned integer type." u127 127 u128) +} + +define_signed! { + ("The 1-bit signed integer type." i1 1 i8) + ("The 2-bit signed integer type." i2 2 i8) + ("The 3-bit signed integer type." i3 3 i8) + ("The 4-bit signed integer type." i4 4 i8) + ("The 5-bit signed integer type." i5 5 i8) + ("The 6-bit signed integer type." i6 6 i8) + ("The 7-bit signed integer type." i7 7 i8) + ("The 9-bit signed integer type." i9 9 i16) + ("The 10-bit signed integer type." i10 10 i16) + ("The 11-bit signed integer type." i11 11 i16) + ("The 12-bit signed integer type." i12 12 i16) + ("The 13-bit signed integer type." i13 13 i16) + ("The 14-bit signed integer type." i14 14 i16) + ("The 15-bit signed integer type." i15 15 i16) + ("The 17-bit signed integer type." i17 17 i32) + ("The 18-bit signed integer type." i18 18 i32) + ("The 19-bit signed integer type." i19 19 i32) + ("The 20-bit signed integer type." i20 20 i32) + ("The 21-bit signed integer type." i21 21 i32) + ("The 22-bit signed integer type." i22 22 i32) + ("The 23-bit signed integer type." i23 23 i32) + ("The 24-bit signed integer type." i24 24 i32) + ("The 25-bit signed integer type." i25 25 i32) + ("The 26-bit signed integer type." i26 26 i32) + ("The 27-bit signed integer type." i27 27 i32) + ("The 28-bit signed integer type." i28 28 i32) + ("The 29-bit signed integer type." i29 29 i32) + ("The 30-bit signed integer type." i30 30 i32) + ("The 31-bit signed integer type." i31 31 i32) + ("The 33-bit signed integer type." i33 33 i64) + ("The 34-bit signed integer type." i34 34 i64) + ("The 35-bit signed integer type." i35 35 i64) + ("The 36-bit signed integer type." i36 36 i64) + ("The 37-bit signed integer type." i37 37 i64) + ("The 38-bit signed integer type." i38 38 i64) + ("The 39-bit signed integer type." i39 39 i64) + ("The 40-bit signed integer type." i40 40 i64) + ("The 41-bit signed integer type." i41 41 i64) + ("The 42-bit signed integer type." i42 42 i64) + ("The 43-bit signed integer type." i43 43 i64) + ("The 44-bit signed integer type." i44 44 i64) + ("The 45-bit signed integer type." i45 45 i64) + ("The 46-bit signed integer type." i46 46 i64) + ("The 47-bit signed integer type." i47 47 i64) + ("The 48-bit signed integer type." i48 48 i64) + ("The 49-bit signed integer type." i49 49 i64) + ("The 50-bit signed integer type." i50 50 i64) + ("The 51-bit signed integer type." i51 51 i64) + ("The 52-bit signed integer type." i52 52 i64) + ("The 53-bit signed integer type." i53 53 i64) + ("The 54-bit signed integer type." i54 54 i64) + ("The 55-bit signed integer type." i55 55 i64) + ("The 56-bit signed integer type." i56 56 i64) + ("The 57-bit signed integer type." i57 57 i64) + ("The 58-bit signed integer type." i58 58 i64) + ("The 59-bit signed integer type." i59 59 i64) + ("The 60-bit signed integer type." i60 60 i64) + ("The 61-bit signed integer type." i61 61 i64) + ("The 62-bit signed integer type." i62 62 i64) + ("The 63-bit signed integer type." i63 63 i64) + ("The 65-bit signed integer type." i65 65 i128) + ("The 66-bit signed integer type." i66 66 i128) + ("The 67-bit signed integer type." i67 67 i128) + ("The 68-bit signed integer type." i68 68 i128) + ("The 69-bit signed integer type." i69 69 i128) + ("The 70-bit signed integer type." i70 70 i128) + ("The 71-bit signed integer type." i71 71 i128) + ("The 72-bit signed integer type." i72 72 i128) + ("The 73-bit signed integer type." i73 73 i128) + ("The 74-bit signed integer type." i74 74 i128) + ("The 75-bit signed integer type." i75 75 i128) + ("The 76-bit signed integer type." i76 76 i128) + ("The 77-bit signed integer type." i77 77 i128) + ("The 78-bit signed integer type." i78 78 i128) + ("The 79-bit signed integer type." i79 79 i128) + ("The 80-bit signed integer type." i80 80 i128) + ("The 81-bit signed integer type." i81 81 i128) + ("The 82-bit signed integer type." i82 82 i128) + ("The 83-bit signed integer type." i83 83 i128) + ("The 84-bit signed integer type." i84 84 i128) + ("The 85-bit signed integer type." i85 85 i128) + ("The 86-bit signed integer type." i86 86 i128) + ("The 87-bit signed integer type." i87 87 i128) + ("The 88-bit signed integer type." i88 88 i128) + ("The 89-bit signed integer type." i89 89 i128) + ("The 90-bit signed integer type." i90 90 i128) + ("The 91-bit signed integer type." i91 91 i128) + ("The 92-bit signed integer type." i92 92 i128) + ("The 93-bit signed integer type." i93 93 i128) + ("The 94-bit signed integer type." i94 94 i128) + ("The 95-bit signed integer type." i95 95 i128) + ("The 96-bit signed integer type." i96 96 i128) + ("The 97-bit signed integer type." i97 97 i128) + ("The 98-bit signed integer type." i98 98 i128) + ("The 99-bit signed integer type." i99 99 i128) + ("The 100-bit signed integer type." i100 100 i128) + ("The 101-bit signed integer type." i101 101 i128) + ("The 102-bit signed integer type." i102 102 i128) + ("The 103-bit signed integer type." i103 103 i128) + ("The 104-bit signed integer type." i104 104 i128) + ("The 105-bit signed integer type." i105 105 i128) + ("The 106-bit signed integer type." i106 106 i128) + ("The 107-bit signed integer type." i107 107 i128) + ("The 108-bit signed integer type." i108 108 i128) + ("The 109-bit signed integer type." i109 109 i128) + ("The 110-bit signed integer type." i110 110 i128) + ("The 111-bit signed integer type." i111 111 i128) + ("The 112-bit signed integer type." i112 112 i128) + ("The 113-bit signed integer type." i113 113 i128) + ("The 114-bit signed integer type." i114 114 i128) + ("The 115-bit signed integer type." i115 115 i128) + ("The 116-bit signed integer type." i116 116 i128) + ("The 117-bit signed integer type." i117 117 i128) + ("The 118-bit signed integer type." i118 118 i128) + ("The 119-bit signed integer type." i119 119 i128) + ("The 120-bit signed integer type." i120 120 i128) + ("The 121-bit signed integer type." i121 121 i128) + ("The 122-bit signed integer type." i122 122 i128) + ("The 123-bit signed integer type." i123 123 i128) + ("The 124-bit signed integer type." i124 124 i128) + ("The 125-bit signed integer type." i125 125 i128) + ("The 126-bit signed integer type." i126 126 i128) + ("The 127-bit signed integer type." i127 127 i128) +} #[cfg(test)] mod tests { From 65b6a7ea595525bd9eb110aabba32c085039a86e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Fri, 16 Sep 2022 15:47:08 +0200 Subject: [PATCH 8/8] Cleanup: remove lib core --- src/conversion.rs | 8 ++++---- src/lib.rs | 41 +++++++++++++++++------------------------ 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/conversion.rs b/src/conversion.rs index 9581282..7f03e90 100644 --- a/src/conversion.rs +++ b/src/conversion.rs @@ -4,16 +4,16 @@ use crate::*; #[derive(Debug, Copy, Clone, PartialEq, Eq)] pub struct TryFromIntError(pub(crate) ()); -impl From for TryFromIntError { +impl From for TryFromIntError { #[inline] - fn from(_: lib::core::num::TryFromIntError) -> TryFromIntError { + fn from(_: core::num::TryFromIntError) -> TryFromIntError { TryFromIntError(()) } } -impl From for TryFromIntError { +impl From for TryFromIntError { #[inline] - fn from(_: lib::core::convert::Infallible) -> TryFromIntError { + fn from(_: core::convert::Infallible) -> TryFromIntError { TryFromIntError(()) } } diff --git a/src/lib.rs b/src/lib.rs index 88fa7f6..6edd157 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,24 +14,17 @@ #![no_std] -mod lib { - pub use core; -} - mod conversion; - mod niche; -use lib::core::ops::{ - BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign, Not, Shl, ShlAssign, Shr, - ShrAssign, +use core::cmp::{Ord, Ordering, PartialOrd}; +use core::fmt::{Binary, Debug, Display, Formatter, LowerHex, Octal, UpperHex}; +use core::hash::{Hash, Hasher}; +use core::ops::{ + Add, BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign, Not, Shl, ShlAssign, Shr, + ShrAssign, Sub, }; - -use lib::core::hash::{Hash, Hasher}; - -use lib::core::cmp::{Ord, Ordering, PartialOrd}; - -use lib::core::fmt::{Binary, Debug, Display, Formatter, LowerHex, Octal, UpperHex}; +use core::{fmt, mem}; macro_rules! define_unsigned { ($(($doc:literal $name:ident $bits:literal $type:ident))*) => { @@ -188,7 +181,7 @@ macro_rules! implement_common { /// ``` #[inline] pub const unsafe fn new_unchecked(value: $type) -> $name { - Self(lib::core::mem::transmute(value)) + Self(mem::transmute(value)) } /// Get the contained value @@ -204,7 +197,7 @@ macro_rules! implement_common { /// ``` #[inline] pub const fn get(self) -> $type { - unsafe { lib::core::mem::transmute(self.0) } + unsafe { mem::transmute(self.0) } } /// Wrapping (modular) subtraction. Computes `self - other`, @@ -288,42 +281,42 @@ macro_rules! implement_common { // Implement formating functions impl Debug for $name { #[inline] - fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { + fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { Debug::fmt(&self.get(), f) } } impl Display for $name { #[inline] - fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { + fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { Display::fmt(&self.get(), f) } } impl UpperHex for $name { #[inline] - fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { + fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { UpperHex::fmt(&self.get(), f) } } impl LowerHex for $name { #[inline] - fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { + fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { LowerHex::fmt(&self.get(), f) } } impl Octal for $name { #[inline] - fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { + fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { Octal::fmt(&self.get(), f) } } impl Binary for $name { #[inline] - fn fmt(&self, f: &mut Formatter) -> Result<(), lib::core::fmt::Error> { + fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { Binary::fmt(&self.get(), f) } } @@ -525,7 +518,7 @@ macro_rules! implement_common { } } - impl lib::core::ops::Add<$name> for $name { + impl Add<$name> for $name { type Output = $name; #[allow(unused_comparisons)] @@ -540,7 +533,7 @@ macro_rules! implement_common { } } - impl lib::core::ops::Sub<$name> for $name { + impl Sub<$name> for $name { type Output = $name; #[allow(unused_comparisons)]