Current section
Files
Jump to
Current section
Files
lib/tables.ex
defmodule ExCRC.Tables do
@moduledoc false
# Polynomial 0x1021
def ccitt_table do
%{
0x00 => 0x0000, 0x01 => 0x1021, 0x02 => 0x2042, 0x03 => 0x3063,
0x04 => 0x4084, 0x05 => 0x50a5, 0x06 => 0x60c6, 0x07 => 0x70e7,
0x08 => 0x8108, 0x09 => 0x9129, 0x0a => 0xa14a, 0x0b => 0xb16b,
0x0c => 0xc18c, 0x0d => 0xd1ad, 0x0e => 0xe1ce, 0x0f => 0xf1ef,
0x10 => 0x1231, 0x11 => 0x0210, 0x12 => 0x3273, 0x13 => 0x2252,
0x14 => 0x52b5, 0x15 => 0x4294, 0x16 => 0x72f7, 0x17 => 0x62d6,
0x18 => 0x9339, 0x19 => 0x8318, 0x1a => 0xb37b, 0x1b => 0xa35a,
0x1c => 0xd3bd, 0x1d => 0xc39c, 0x1e => 0xf3ff, 0x1f => 0xe3de,
0x20 => 0x2462, 0x21 => 0x3443, 0x22 => 0x0420, 0x23 => 0x1401,
0x24 => 0x64e6, 0x25 => 0x74c7, 0x26 => 0x44a4, 0x27 => 0x5485,
0x28 => 0xa56a, 0x29 => 0xb54b, 0x2a => 0x8528, 0x2b => 0x9509,
0x2c => 0xe5ee, 0x2d => 0xf5cf, 0x2e => 0xc5ac, 0x2f => 0xd58d,
0x30 => 0x3653, 0x31 => 0x2672, 0x32 => 0x1611, 0x33 => 0x0630,
0x34 => 0x76d7, 0x35 => 0x66f6, 0x36 => 0x5695, 0x37 => 0x46b4,
0x38 => 0xb75b, 0x39 => 0xa77a, 0x3a => 0x9719, 0x3b => 0x8738,
0x3c => 0xf7df, 0x3d => 0xe7fe, 0x3e => 0xd79d, 0x3f => 0xc7bc,
0x40 => 0x48c4, 0x41 => 0x58e5, 0x42 => 0x6886, 0x43 => 0x78a7,
0x44 => 0x0840, 0x45 => 0x1861, 0x46 => 0x2802, 0x47 => 0x3823,
0x48 => 0xc9cc, 0x49 => 0xd9ed, 0x4a => 0xe98e, 0x4b => 0xf9af,
0x4c => 0x8948, 0x4d => 0x9969, 0x4e => 0xa90a, 0x4f => 0xb92b,
0x50 => 0x5af5, 0x51 => 0x4ad4, 0x52 => 0x7ab7, 0x53 => 0x6a96,
0x54 => 0x1a71, 0x55 => 0x0a50, 0x56 => 0x3a33, 0x57 => 0x2a12,
0x58 => 0xdbfd, 0x59 => 0xcbdc, 0x5a => 0xfbbf, 0x5b => 0xeb9e,
0x5c => 0x9b79, 0x5d => 0x8b58, 0x5e => 0xbb3b, 0x5f => 0xab1a,
0x60 => 0x6ca6, 0x61 => 0x7c87, 0x62 => 0x4ce4, 0x63 => 0x5cc5,
0x64 => 0x2c22, 0x65 => 0x3c03, 0x66 => 0x0c60, 0x67 => 0x1c41,
0x68 => 0xedae, 0x69 => 0xfd8f, 0x6a => 0xcdec, 0x6b => 0xddcd,
0x6c => 0xad2a, 0x6d => 0xbd0b, 0x6e => 0x8d68, 0x6f => 0x9d49,
0x70 => 0x7e97, 0x71 => 0x6eb6, 0x72 => 0x5ed5, 0x73 => 0x4ef4,
0x74 => 0x3e13, 0x75 => 0x2e32, 0x76 => 0x1e51, 0x77 => 0x0e70,
0x78 => 0xff9f, 0x79 => 0xefbe, 0x7a => 0xdfdd, 0x7b => 0xcffc,
0x7c => 0xbf1b, 0x7d => 0xaf3a, 0x7e => 0x9f59, 0x7f => 0x8f78,
0x80 => 0x9188, 0x81 => 0x81a9, 0x82 => 0xb1ca, 0x83 => 0xa1eb,
0x84 => 0xd10c, 0x85 => 0xc12d, 0x86 => 0xf14e, 0x87 => 0xe16f,
0x88 => 0x1080, 0x89 => 0x00a1, 0x8a => 0x30c2, 0x8b => 0x20e3,
0x8c => 0x5004, 0x8d => 0x4025, 0x8e => 0x7046, 0x8f => 0x6067,
0x90 => 0x83b9, 0x91 => 0x9398, 0x92 => 0xa3fb, 0x93 => 0xb3da,
0x94 => 0xc33d, 0x95 => 0xd31c, 0x96 => 0xe37f, 0x97 => 0xf35e,
0x98 => 0x02b1, 0x99 => 0x1290, 0x9a => 0x22f3, 0x9b => 0x32d2,
0x9c => 0x4235, 0x9d => 0x5214, 0x9e => 0x6277, 0x9f => 0x7256,
0xa0 => 0xb5ea, 0xa1 => 0xa5cb, 0xa2 => 0x95a8, 0xa3 => 0x8589,
0xa4 => 0xf56e, 0xa5 => 0xe54f, 0xa6 => 0xd52c, 0xa7 => 0xc50d,
0xa8 => 0x34e2, 0xa9 => 0x24c3, 0xaa => 0x14a0, 0xab => 0x0481,
0xac => 0x7466, 0xad => 0x6447, 0xae => 0x5424, 0xaf => 0x4405,
0xb0 => 0xa7db, 0xb1 => 0xb7fa, 0xb2 => 0x8799, 0xb3 => 0x97b8,
0xb4 => 0xe75f, 0xb5 => 0xf77e, 0xb6 => 0xc71d, 0xb7 => 0xd73c,
0xb8 => 0x26d3, 0xb9 => 0x36f2, 0xba => 0x0691, 0xbb => 0x16b0,
0xbc => 0x6657, 0xbd => 0x7676, 0xbe => 0x4615, 0xbf => 0x5634,
0xc0 => 0xd94c, 0xc1 => 0xc96d, 0xc2 => 0xf90e, 0xc3 => 0xe92f,
0xc4 => 0x99c8, 0xc5 => 0x89e9, 0xc6 => 0xb98a, 0xc7 => 0xa9ab,
0xc8 => 0x5844, 0xc9 => 0x4865, 0xca => 0x7806, 0xcb => 0x6827,
0xcc => 0x18c0, 0xcd => 0x08e1, 0xce => 0x3882, 0xcf => 0x28a3,
0xd0 => 0xcb7d, 0xd1 => 0xdb5c, 0xd2 => 0xeb3f, 0xd3 => 0xfb1e,
0xd4 => 0x8bf9, 0xd5 => 0x9bd8, 0xd6 => 0xabbb, 0xd7 => 0xbb9a,
0xd8 => 0x4a75, 0xd9 => 0x5a54, 0xda => 0x6a37, 0xdb => 0x7a16,
0xdc => 0x0af1, 0xdd => 0x1ad0, 0xde => 0x2ab3, 0xdf => 0x3a92,
0xe0 => 0xfd2e, 0xe1 => 0xed0f, 0xe2 => 0xdd6c, 0xe3 => 0xcd4d,
0xe4 => 0xbdaa, 0xe5 => 0xad8b, 0xe6 => 0x9de8, 0xe7 => 0x8dc9,
0xe8 => 0x7c26, 0xe9 => 0x6c07, 0xea => 0x5c64, 0xeb => 0x4c45,
0xec => 0x3ca2, 0xed => 0x2c83, 0xee => 0x1ce0, 0xef => 0x0cc1,
0xf0 => 0xef1f, 0xf1 => 0xff3e, 0xf2 => 0xcf5d, 0xf3 => 0xdf7c,
0xf4 => 0xaf9b, 0xf5 => 0xbfba, 0xf6 => 0x8fd9, 0xf7 => 0x9ff8,
0xf8 => 0x6e17, 0xf9 => 0x7e36, 0xfa => 0x4e55, 0xfb => 0x5e74,
0xfc => 0x2e93, 0xfd => 0x3eb2, 0xfe => 0x0ed1, 0xff => 0x1ef0
}
end
# Polynomial 0x8408
def kermit_table do
%{
0x00 => 0x0000, 0x01 => 0x1189, 0x02 => 0x2312, 0x03 => 0x329b,
0x04 => 0x4624, 0x05 => 0x57ad, 0x06 => 0x6536, 0x07 => 0x74bf,
0x08 => 0x8c48, 0x09 => 0x9dc1, 0x0a => 0xaf5a, 0x0b => 0xbed3,
0x0c => 0xca6c, 0x0d => 0xdbe5, 0x0e => 0xe97e, 0x0f => 0xf8f7,
0x10 => 0x1081, 0x11 => 0x0108, 0x12 => 0x3393, 0x13 => 0x221a,
0x14 => 0x56a5, 0x15 => 0x472c, 0x16 => 0x75b7, 0x17 => 0x643e,
0x18 => 0x9cc9, 0x19 => 0x8d40, 0x1a => 0xbfdb, 0x1b => 0xae52,
0x1c => 0xdaed, 0x1d => 0xcb64, 0x1e => 0xf9ff, 0x1f => 0xe876,
0x20 => 0x2102, 0x21 => 0x308b, 0x22 => 0x0210, 0x23 => 0x1399,
0x24 => 0x6726, 0x25 => 0x76af, 0x26 => 0x4434, 0x27 => 0x55bd,
0x28 => 0xad4a, 0x29 => 0xbcc3, 0x2a => 0x8e58, 0x2b => 0x9fd1,
0x2c => 0xeb6e, 0x2d => 0xfae7, 0x2e => 0xc87c, 0x2f => 0xd9f5,
0x30 => 0x3183, 0x31 => 0x200a, 0x32 => 0x1291, 0x33 => 0x0318,
0x34 => 0x77a7, 0x35 => 0x662e, 0x36 => 0x54b5, 0x37 => 0x453c,
0x38 => 0xbdcb, 0x39 => 0xac42, 0x3a => 0x9ed9, 0x3b => 0x8f50,
0x3c => 0xfbef, 0x3d => 0xea66, 0x3e => 0xd8fd, 0x3f => 0xc974,
0x40 => 0x4204, 0x41 => 0x538d, 0x42 => 0x6116, 0x43 => 0x709f,
0x44 => 0x0420, 0x45 => 0x15a9, 0x46 => 0x2732, 0x47 => 0x36bb,
0x48 => 0xce4c, 0x49 => 0xdfc5, 0x4a => 0xed5e, 0x4b => 0xfcd7,
0x4c => 0x8868, 0x4d => 0x99e1, 0x4e => 0xab7a, 0x4f => 0xbaf3,
0x50 => 0x5285, 0x51 => 0x430c, 0x52 => 0x7197, 0x53 => 0x601e,
0x54 => 0x14a1, 0x55 => 0x0528, 0x56 => 0x37b3, 0x57 => 0x263a,
0x58 => 0xdecd, 0x59 => 0xcf44, 0x5a => 0xfddf, 0x5b => 0xec56,
0x5c => 0x98e9, 0x5d => 0x8960, 0x5e => 0xbbfb, 0x5f => 0xaa72,
0x60 => 0x6306, 0x61 => 0x728f, 0x62 => 0x4014, 0x63 => 0x519d,
0x64 => 0x2522, 0x65 => 0x34ab, 0x66 => 0x0630, 0x67 => 0x17b9,
0x68 => 0xef4e, 0x69 => 0xfec7, 0x6a => 0xcc5c, 0x6b => 0xddd5,
0x6c => 0xa96a, 0x6d => 0xb8e3, 0x6e => 0x8a78, 0x6f => 0x9bf1,
0x70 => 0x7387, 0x71 => 0x620e, 0x72 => 0x5095, 0x73 => 0x411c,
0x74 => 0x35a3, 0x75 => 0x242a, 0x76 => 0x16b1, 0x77 => 0x0738,
0x78 => 0xffcf, 0x79 => 0xee46, 0x7a => 0xdcdd, 0x7b => 0xcd54,
0x7c => 0xb9eb, 0x7d => 0xa862, 0x7e => 0x9af9, 0x7f => 0x8b70,
0x80 => 0x8408, 0x81 => 0x9581, 0x82 => 0xa71a, 0x83 => 0xb693,
0x84 => 0xc22c, 0x85 => 0xd3a5, 0x86 => 0xe13e, 0x87 => 0xf0b7,
0x88 => 0x0840, 0x89 => 0x19c9, 0x8a => 0x2b52, 0x8b => 0x3adb,
0x8c => 0x4e64, 0x8d => 0x5fed, 0x8e => 0x6d76, 0x8f => 0x7cff,
0x90 => 0x9489, 0x91 => 0x8500, 0x92 => 0xb79b, 0x93 => 0xa612,
0x94 => 0xd2ad, 0x95 => 0xc324, 0x96 => 0xf1bf, 0x97 => 0xe036,
0x98 => 0x18c1, 0x99 => 0x0948, 0x9a => 0x3bd3, 0x9b => 0x2a5a,
0x9c => 0x5ee5, 0x9d => 0x4f6c, 0x9e => 0x7df7, 0x9f => 0x6c7e,
0xa0 => 0xa50a, 0xa1 => 0xb483, 0xa2 => 0x8618, 0xa3 => 0x9791,
0xa4 => 0xe32e, 0xa5 => 0xf2a7, 0xa6 => 0xc03c, 0xa7 => 0xd1b5,
0xa8 => 0x2942, 0xa9 => 0x38cb, 0xaa => 0x0a50, 0xab => 0x1bd9,
0xac => 0x6f66, 0xad => 0x7eef, 0xae => 0x4c74, 0xaf => 0x5dfd,
0xb0 => 0xb58b, 0xb1 => 0xa402, 0xb2 => 0x9699, 0xb3 => 0x8710,
0xb4 => 0xf3af, 0xb5 => 0xe226, 0xb6 => 0xd0bd, 0xb7 => 0xc134,
0xb8 => 0x39c3, 0xb9 => 0x284a, 0xba => 0x1ad1, 0xbb => 0x0b58,
0xbc => 0x7fe7, 0xbd => 0x6e6e, 0xbe => 0x5cf5, 0xbf => 0x4d7c,
0xc0 => 0xc60c, 0xc1 => 0xd785, 0xc2 => 0xe51e, 0xc3 => 0xf497,
0xc4 => 0x8028, 0xc5 => 0x91a1, 0xc6 => 0xa33a, 0xc7 => 0xb2b3,
0xc8 => 0x4a44, 0xc9 => 0x5bcd, 0xca => 0x6956, 0xcb => 0x78df,
0xcc => 0x0c60, 0xcd => 0x1de9, 0xce => 0x2f72, 0xcf => 0x3efb,
0xd0 => 0xd68d, 0xd1 => 0xc704, 0xd2 => 0xf59f, 0xd3 => 0xe416,
0xd4 => 0x90a9, 0xd5 => 0x8120, 0xd6 => 0xb3bb, 0xd7 => 0xa232,
0xd8 => 0x5ac5, 0xd9 => 0x4b4c, 0xda => 0x79d7, 0xdb => 0x685e,
0xdc => 0x1ce1, 0xdd => 0x0d68, 0xde => 0x3ff3, 0xdf => 0x2e7a,
0xe0 => 0xe70e, 0xe1 => 0xf687, 0xe2 => 0xc41c, 0xe3 => 0xd595,
0xe4 => 0xa12a, 0xe5 => 0xb0a3, 0xe6 => 0x8238, 0xe7 => 0x93b1,
0xe8 => 0x6b46, 0xe9 => 0x7acf, 0xea => 0x4854, 0xeb => 0x59dd,
0xec => 0x2d62, 0xed => 0x3ceb, 0xee => 0x0e70, 0xef => 0x1ff9,
0xf0 => 0xf78f, 0xf1 => 0xe606, 0xf2 => 0xd49d, 0xf3 => 0xc514,
0xf4 => 0xb1ab, 0xf5 => 0xa022, 0xf6 => 0x92b9, 0xf7 => 0x8330,
0xf8 => 0x7bc7, 0xf9 => 0x6a4e, 0xfa => 0x58d5, 0xfb => 0x495c,
0xfc => 0x3de3, 0xfd => 0x2c6a, 0xfe => 0x1ef1, 0xff => 0x0f78
}
end
end