178556Sobrien 278556Sobrien/*-------------------------------------------------------------*/ 378556Sobrien/*--- Table for doing CRCs ---*/ 478556Sobrien/*--- crctable.c ---*/ 578556Sobrien/*-------------------------------------------------------------*/ 678556Sobrien 7167974Sdelphij/* ------------------------------------------------------------------ 8167974Sdelphij This file is part of bzip2/libbzip2, a program and library for 9167974Sdelphij lossless, block-sorting data compression. 1078556Sobrien 11215041Sobrien bzip2/libbzip2 version 1.0.6 of 6 September 2010 12215041Sobrien Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org> 1378556Sobrien 14167974Sdelphij Please read the WARNING, DISCLAIMER and PATENTS sections in the 15167974Sdelphij README file. 1678556Sobrien 17167974Sdelphij This program is released under the terms of the license contained 18167974Sdelphij in the file LICENSE. 19167974Sdelphij ------------------------------------------------------------------ */ 2078556Sobrien 2178556Sobrien 2278556Sobrien#include "bzlib_private.h" 2378556Sobrien 2478556Sobrien/*-- 2578556Sobrien I think this is an implementation of the AUTODIN-II, 2678556Sobrien Ethernet & FDDI 32-bit CRC standard. Vaguely derived 2778556Sobrien from code by Rob Warnock, in Section 51 of the 2878556Sobrien comp.compression FAQ. 2978556Sobrien--*/ 3078556Sobrien 3178556SobrienUInt32 BZ2_crc32Table[256] = { 3278556Sobrien 3378556Sobrien /*-- Ugly, innit? --*/ 3478556Sobrien 3578556Sobrien 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, 3678556Sobrien 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, 3778556Sobrien 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, 3878556Sobrien 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, 3978556Sobrien 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, 4078556Sobrien 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, 4178556Sobrien 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, 4278556Sobrien 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, 4378556Sobrien 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, 4478556Sobrien 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, 4578556Sobrien 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, 4678556Sobrien 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, 4778556Sobrien 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, 4878556Sobrien 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, 4978556Sobrien 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, 5078556Sobrien 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, 5178556Sobrien 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, 5278556Sobrien 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, 5378556Sobrien 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, 5478556Sobrien 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, 5578556Sobrien 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, 5678556Sobrien 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, 5778556Sobrien 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, 5878556Sobrien 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, 5978556Sobrien 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, 6078556Sobrien 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, 6178556Sobrien 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, 6278556Sobrien 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, 6378556Sobrien 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, 6478556Sobrien 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, 6578556Sobrien 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, 6678556Sobrien 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, 6778556Sobrien 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, 6878556Sobrien 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, 6978556Sobrien 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, 7078556Sobrien 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, 7178556Sobrien 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, 7278556Sobrien 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, 7378556Sobrien 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, 7478556Sobrien 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, 7578556Sobrien 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, 7678556Sobrien 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, 7778556Sobrien 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, 7878556Sobrien 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, 7978556Sobrien 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, 8078556Sobrien 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, 8178556Sobrien 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, 8278556Sobrien 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, 8378556Sobrien 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, 8478556Sobrien 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, 8578556Sobrien 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, 8678556Sobrien 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, 8778556Sobrien 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, 8878556Sobrien 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, 8978556Sobrien 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, 9078556Sobrien 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, 9178556Sobrien 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, 9278556Sobrien 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, 9378556Sobrien 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, 9478556Sobrien 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, 9578556Sobrien 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, 9678556Sobrien 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, 9778556Sobrien 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, 9878556Sobrien 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L 9978556Sobrien}; 10078556Sobrien 10178556Sobrien 10278556Sobrien/*-------------------------------------------------------------*/ 10378556Sobrien/*--- end crctable.c ---*/ 10478556Sobrien/*-------------------------------------------------------------*/ 105