#[repr(C)]
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default)]
pub struct Bc6hBitLayout {
pub comp: i8,
pub index: i8,
pub last_bit: i8,
pub first_bit: i8,
}
pub static BC6H_MODE_SIG_BITS: [[u8; 4]; 14] = [
[10, 5, 5, 5],
[7, 6, 6, 6],
[11, 5, 4, 4],
[11, 4, 5, 4],
[11, 4, 4, 5],
[9, 5, 5, 5],
[8, 6, 5, 5],
[8, 5, 6, 5],
[8, 5, 5, 6],
[6, 6, 6, 6],
[10, 10, 10, 10],
[11, 9, 9, 9],
[12, 8, 8, 8],
[16, 4, 4, 4],
];
pub static BC6H_BIT_LAYOUTS: [Bc6hBitLayout; 260] = [
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 6,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 6,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 6,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 8,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 8,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 8,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 0,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 1,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 2,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 3,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 5,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 3,
last_bit: 4,
first_bit: -1,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 3,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 2,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 2,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 3,
last_bit: 5,
first_bit: 0,
},
Bc6hBitLayout {
comp: 3,
index: -1,
last_bit: 4,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 8,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 8,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 8,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 10,
first_bit: -1,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 10,
first_bit: 11,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 10,
first_bit: 11,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 7,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 10,
first_bit: 11,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 9,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 0,
index: 0,
last_bit: 10,
first_bit: 15,
},
Bc6hBitLayout {
comp: 1,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 1,
index: 0,
last_bit: 10,
first_bit: 15,
},
Bc6hBitLayout {
comp: 2,
index: 1,
last_bit: 3,
first_bit: 0,
},
Bc6hBitLayout {
comp: 2,
index: 0,
last_bit: 10,
first_bit: 15,
},
Bc6hBitLayout {
comp: -1,
index: 0,
last_bit: 0,
first_bit: 0,
},
];
pub static BC6H_LAYOUT_OFFSETS: [usize; 14] = [
0, 21, 46, 66, 88, 110, 131, 152, 175, 198, 223, 230, 240, 250,
];
pub static BC6H_2SUBSET_PATTERNS: [[u8; 4]; 128] = [
[128, 0, 1, 1],
[0, 0, 1, 1],
[0, 0, 1, 1],
[0, 0, 1, 129],
[128, 0, 0, 1],
[0, 0, 0, 1],
[0, 0, 0, 1],
[0, 0, 0, 129],
[128, 1, 1, 1],
[0, 1, 1, 1],
[0, 1, 1, 1],
[0, 1, 1, 129],
[128, 0, 0, 1],
[0, 0, 1, 1],
[0, 0, 1, 1],
[0, 1, 1, 129],
[128, 0, 0, 0],
[0, 0, 0, 1],
[0, 0, 0, 1],
[0, 0, 1, 129],
[128, 0, 1, 1],
[0, 1, 1, 1],
[0, 1, 1, 1],
[1, 1, 1, 129],
[128, 0, 0, 1],
[0, 0, 1, 1],
[0, 1, 1, 1],
[1, 1, 1, 129],
[128, 0, 0, 0],
[0, 0, 0, 1],
[0, 0, 1, 1],
[0, 1, 1, 129],
[128, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 1],
[0, 0, 1, 129],
[128, 0, 1, 1],
[0, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 129],
[128, 0, 0, 0],
[0, 0, 0, 1],
[0, 1, 1, 1],
[1, 1, 1, 129],
[128, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 1],
[0, 1, 1, 129],
[128, 0, 0, 1],
[0, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 129],
[128, 0, 0, 0],
[0, 0, 0, 0],
[1, 1, 1, 1],
[1, 1, 1, 129],
[128, 0, 0, 0],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 129],
[128, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[1, 1, 1, 129],
[128, 0, 0, 0],
[1, 0, 0, 0],
[1, 1, 1, 0],
[1, 1, 1, 129],
[128, 1, 129, 1],
[0, 0, 0, 1],
[0, 0, 0, 0],
[0, 0, 0, 0],
[128, 0, 0, 0],
[0, 0, 0, 0],
[129, 0, 0, 0],
[1, 1, 1, 0],
[128, 1, 129, 1],
[0, 0, 1, 1],
[0, 0, 0, 1],
[0, 0, 0, 0],
[128, 0, 129, 1],
[0, 0, 0, 1],
[0, 0, 0, 0],
[0, 0, 0, 0],
[128, 0, 0, 0],
[1, 0, 0, 0],
[129, 1, 0, 0],
[1, 1, 1, 0],
[128, 0, 0, 0],
[0, 0, 0, 0],
[129, 0, 0, 0],
[1, 1, 0, 0],
[128, 1, 1, 1],
[0, 0, 1, 1],
[0, 0, 1, 1],
[0, 0, 0, 129],
[128, 0, 129, 1],
[0, 0, 0, 1],
[0, 0, 0, 1],
[0, 0, 0, 0],
[128, 0, 0, 0],
[1, 0, 0, 0],
[129, 0, 0, 0],
[1, 1, 0, 0],
[128, 1, 129, 0],
[0, 1, 1, 0],
[0, 1, 1, 0],
[0, 1, 1, 0],
[128, 0, 129, 1],
[0, 1, 1, 0],
[0, 1, 1, 0],
[1, 1, 0, 0],
[128, 0, 0, 1],
[0, 1, 1, 1],
[129, 1, 1, 0],
[1, 0, 0, 0],
[128, 0, 0, 0],
[1, 1, 1, 1],
[129, 1, 1, 1],
[0, 0, 0, 0],
[128, 1, 129, 1],
[0, 0, 0, 1],
[1, 0, 0, 0],
[1, 1, 1, 0],
[128, 0, 129, 1],
[1, 0, 0, 1],
[1, 0, 0, 1],
[1, 1, 0, 0],
];
#[cfg(test)]
mod offset_tests {
use super::{BC6H_BIT_LAYOUTS, BC6H_LAYOUT_OFFSETS};
#[test]
fn layout_offsets_match_sentinel_scan() {
let mut ofs = [0usize; 14];
let mut mode = 1;
for (i, step) in BC6H_BIT_LAYOUTS.iter().enumerate() {
if step.comp == -1 && mode < 14 {
ofs[mode] = i + 1;
mode += 1;
}
}
assert_eq!(ofs, BC6H_LAYOUT_OFFSETS);
}
}