xref: /freebsd/contrib/bzip2/crctable.c (revision fb2971ccd2bab42f5406f919812ceb8e014773ea)
1 
2 /*-------------------------------------------------------------*/
3 /*--- Table for doing CRCs                                  ---*/
4 /*---                                            crctable.c ---*/
5 /*-------------------------------------------------------------*/
6 
7 /* ------------------------------------------------------------------
8    This file is part of bzip2/libbzip2, a program and library for
9    lossless, block-sorting data compression.
10 
11    bzip2/libbzip2 version 1.0.6 of 6 September 2010
12    Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
13 
14    Please read the WARNING, DISCLAIMER and PATENTS sections in the
15    README file.
16 
17    This program is released under the terms of the license contained
18    in the file LICENSE.
19    ------------------------------------------------------------------ */
20 
21 
22 #include "bzlib_private.h"
23 
24 /*--
25   I think this is an implementation of the AUTODIN-II,
26   Ethernet & FDDI 32-bit CRC standard.  Vaguely derived
27   from code by Rob Warnock, in Section 51 of the
28   comp.compression FAQ.
29 --*/
30 
31 UInt32 BZ2_crc32Table[256] = {
32 
33    /*-- Ugly, innit? --*/
34 
35    0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
36    0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
37    0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
38    0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
39    0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
40    0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
41    0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
42    0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
43    0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
44    0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
45    0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
46    0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
47    0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
48    0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
49    0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
50    0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
51    0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
52    0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
53    0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
54    0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
55    0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
56    0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
57    0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
58    0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
59    0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
60    0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
61    0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
62    0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
63    0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
64    0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
65    0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
66    0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
67    0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
68    0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
69    0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
70    0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
71    0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
72    0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
73    0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
74    0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
75    0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
76    0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
77    0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
78    0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
79    0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
80    0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
81    0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
82    0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
83    0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
84    0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
85    0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
86    0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
87    0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
88    0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
89    0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
90    0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
91    0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
92    0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
93    0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
94    0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
95    0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
96    0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
97    0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
98    0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
99 };
100 
101 
102 /*-------------------------------------------------------------*/
103 /*--- end                                        crctable.c ---*/
104 /*-------------------------------------------------------------*/
105