pub const fn gen_tables_u8(genpoly: usize) -> ([usize; 256], [u8; 1023]) {
let mut logtable: [usize; 256] = [0; 256];
let mut alogtable: [u8; 1023] = [0; 1023];
logtable[0] = 511;
alogtable[0] = 1;
let mut i = 1;
while i < 255 {
let mut next = (alogtable[i - 1] as usize) * 2;
if next >= 256 {
next ^= genpoly;
}
alogtable[i] = next as u8;
logtable[alogtable[i] as usize] = i;
i += 1;
}
alogtable[255] = alogtable[0];
logtable[alogtable[255] as usize] = 255;
let mut i = 256;
while i < 510 {
alogtable[i] = alogtable[i % 255];
i += 1;
}
alogtable[510] = 1;
(logtable, alogtable)
}