Hi Sam, > Sorry for the multiple bumps, but this patch offers a 77% reduction in > compute time for CRC an a 35% reduction in gzip time,
Thanks for following through! > if this patch is not compliant then can some please let me know I would suggest three things: 1) Add into comments references to the research papers that are used in or are useful to understand the code. Like the "Intel paper" that you showed us in the beginning. 2) Generate the tables at build time. Rationale: big tables with hex numbers are frowned upon, because they are not "source code" (in the sense of the GPL: "the preferred form of the work for making modifications to it"). Step 1: Move the tables into a file lib/crc-sliceby8.h, that you #include from lib/crc.c. Add a copyright and license notice, like for every file. Step 2: Extend your program lib/crc-generate-table.c so that it generates the entire lib/crc-sliceby8.h, i.e. including the copyright and license notice. For this, you can copy & adapt the code from lib/gen-uni-tables.c, functions output_library_license and output_predicate. Step 3: Write a Makefile.am rule, in modules/crc, that runs the generator. Take a look at modules/uninorm/composition (there it's gperf as generator; it doesn't make a big difference). 3) Use GNU coding style: printf( --> printf ( int main(int argc, char* argv[]) --> int main (int argc, char* argv[]) Indent by 2 spaces, not mixed 2 / 4 spaces. Thanks! Bruno