150477Speter
22736Sdfr/*-------------------------------------------------------------*/
32736Sdfr/*--- Table for doing CRCs                                  ---*/
4174891Sedwin/*---                                            crctable.c ---*/
5174891Sedwin/*-------------------------------------------------------------*/
6174891Sedwin
7174891Sedwin/* ------------------------------------------------------------------
8174891Sedwin   This file is part of bzip2/libbzip2, a program and library for
92736Sdfr   lossless, block-sorting data compression.
10201386Sed
11201386Sed   bzip2/libbzip2 version 1.0.8 of 13 July 2019
122736Sdfr   Copyright (C) 1996-2019 Julian Seward <jseward@acm.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
31UInt32 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