crctable.c revision 78556
178556Sobrien 278556Sobrien/*-------------------------------------------------------------*/ 378556Sobrien/*--- Table for doing CRCs ---*/ 478556Sobrien/*--- crctable.c ---*/ 578556Sobrien/*-------------------------------------------------------------*/ 678556Sobrien 778556Sobrien/*-- 878556Sobrien This file is a part of bzip2 and/or libbzip2, a program and 978556Sobrien library for lossless, block-sorting data compression. 1078556Sobrien 1178556Sobrien Copyright (C) 1996-2000 Julian R Seward. All rights reserved. 1278556Sobrien 1378556Sobrien Redistribution and use in source and binary forms, with or without 1478556Sobrien modification, are permitted provided that the following conditions 1578556Sobrien are met: 1678556Sobrien 1778556Sobrien 1. Redistributions of source code must retain the above copyright 1878556Sobrien notice, this list of conditions and the following disclaimer. 1978556Sobrien 2078556Sobrien 2. The origin of this software must not be misrepresented; you must 2178556Sobrien not claim that you wrote the original software. If you use this 2278556Sobrien software in a product, an acknowledgment in the product 2378556Sobrien documentation would be appreciated but is not required. 2478556Sobrien 2578556Sobrien 3. Altered source versions must be plainly marked as such, and must 2678556Sobrien not be misrepresented as being the original software. 2778556Sobrien 2878556Sobrien 4. The name of the author may not be used to endorse or promote 2978556Sobrien products derived from this software without specific prior written 3078556Sobrien permission. 3178556Sobrien 3278556Sobrien THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 3378556Sobrien OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 3478556Sobrien WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 3578556Sobrien ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 3678556Sobrien DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3778556Sobrien DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 3878556Sobrien GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 3978556Sobrien INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 4078556Sobrien WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 4178556Sobrien NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 4278556Sobrien SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4378556Sobrien 4478556Sobrien Julian Seward, Cambridge, UK. 4578556Sobrien jseward@acm.org 4678556Sobrien bzip2/libbzip2 version 1.0 of 21 March 2000 4778556Sobrien 4878556Sobrien This program is based on (at least) the work of: 4978556Sobrien Mike Burrows 5078556Sobrien David Wheeler 5178556Sobrien Peter Fenwick 5278556Sobrien Alistair Moffat 5378556Sobrien Radford Neal 5478556Sobrien Ian H. Witten 5578556Sobrien Robert Sedgewick 5678556Sobrien Jon L. Bentley 5778556Sobrien 5878556Sobrien For more information on these sources, see the manual. 5978556Sobrien--*/ 6078556Sobrien 6178556Sobrien 6278556Sobrien#include "bzlib_private.h" 6378556Sobrien 6478556Sobrien/*-- 6578556Sobrien I think this is an implementation of the AUTODIN-II, 6678556Sobrien Ethernet & FDDI 32-bit CRC standard. Vaguely derived 6778556Sobrien from code by Rob Warnock, in Section 51 of the 6878556Sobrien comp.compression FAQ. 6978556Sobrien--*/ 7078556Sobrien 7178556SobrienUInt32 BZ2_crc32Table[256] = { 7278556Sobrien 7378556Sobrien /*-- Ugly, innit? --*/ 7478556Sobrien 7578556Sobrien 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, 7678556Sobrien 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, 7778556Sobrien 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, 7878556Sobrien 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, 7978556Sobrien 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, 8078556Sobrien 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, 8178556Sobrien 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, 8278556Sobrien 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, 8378556Sobrien 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, 8478556Sobrien 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, 8578556Sobrien 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, 8678556Sobrien 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, 8778556Sobrien 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, 8878556Sobrien 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, 8978556Sobrien 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, 9078556Sobrien 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, 9178556Sobrien 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, 9278556Sobrien 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, 9378556Sobrien 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, 9478556Sobrien 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, 9578556Sobrien 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, 9678556Sobrien 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, 9778556Sobrien 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, 9878556Sobrien 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, 9978556Sobrien 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, 10078556Sobrien 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, 10178556Sobrien 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, 10278556Sobrien 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, 10378556Sobrien 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, 10478556Sobrien 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, 10578556Sobrien 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, 10678556Sobrien 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, 10778556Sobrien 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, 10878556Sobrien 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, 10978556Sobrien 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, 11078556Sobrien 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, 11178556Sobrien 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, 11278556Sobrien 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, 11378556Sobrien 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, 11478556Sobrien 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, 11578556Sobrien 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, 11678556Sobrien 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, 11778556Sobrien 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, 11878556Sobrien 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, 11978556Sobrien 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, 12078556Sobrien 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, 12178556Sobrien 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, 12278556Sobrien 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, 12378556Sobrien 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, 12478556Sobrien 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, 12578556Sobrien 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, 12678556Sobrien 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, 12778556Sobrien 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, 12878556Sobrien 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, 12978556Sobrien 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, 13078556Sobrien 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, 13178556Sobrien 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, 13278556Sobrien 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, 13378556Sobrien 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, 13478556Sobrien 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, 13578556Sobrien 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, 13678556Sobrien 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, 13778556Sobrien 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, 13878556Sobrien 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L 13978556Sobrien}; 14078556Sobrien 14178556Sobrien 14278556Sobrien/*-------------------------------------------------------------*/ 14378556Sobrien/*--- end crctable.c ---*/ 14478556Sobrien/*-------------------------------------------------------------*/ 145