Diff for /libaitcrc/example/test_hash.c between versions 1.1 and 1.2

version 1.1, 2010/06/13 16:32:09 version 1.2, 2011/04/28 20:28:20
Line 0 Line 1
   #include <stdio.h>
   #include <string.h>
   #include <fcntl.h>
   #include <unistd.h>
   #include "aitcrc.h"
   
   
   int main()
   {
           int i, f;
           char szLine[256], szAvalanche[][2] = { { 0, 0 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, 
                   { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 } };
           struct timeval before, after;
   
           /*
           f = open("/dev/urandom", O_RDONLY);
           if (f == -1)
                   return 1;
           // hash_varchar
           gettimeofday(&before, NULL);
           for (i = 0; i < 1000000; i++) {
                   memset(szLine, 0, 256);
                   read(f, szLine, 255);
                   hash_varchar(szLine, 256);
   //              printf("%u\n", hash_varchar(szLine, 256));
           }
           gettimeofday(&after, NULL);
           printf("hash_varchar:: elapsed time %f seconds\n", 
                           (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); 
           // hash_bernstein
           gettimeofday(&before, NULL);
           for (i = 0; i < 1000000; i++) {
                   memset(szLine, 0, 256);
                   read(f, szLine, 255);
                   hash_bernstein(szLine, 256, 0);
   //              printf("%u\n", hash_varchar(szLine, 256));
           }
           gettimeofday(&after, NULL);
           printf("hash_bernstein:: elapsed time %f seconds\n", 
                           (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); 
           // hash_bernstein DJBX33A
           gettimeofday(&before, NULL);
           for (i = 0; i < 1000000; i++) {
                   memset(szLine, 0, 256);
                   read(f, szLine, 255);
                   hash_bernstein(szLine, 256, 1);
   //              printf("%u\n", hash_varchar(szLine, 256));
           }
           gettimeofday(&after, NULL);
           printf("hash_bernstein DJBX33A:: elapsed time %f seconds\n", 
                           (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); 
           // hash_FNV-1a
           gettimeofday(&before, NULL);
           for (i = 0; i < 1000000; i++) {
                   memset(szLine, 0, 256);
                   read(f, szLine, 255);
                   hash_fnv1(szLine, 256, 0);
   //              printf("%u\n", hash_varchar(szLine, 256));
           }
           gettimeofday(&after, NULL);
           printf("hash_fnv1:: elapsed time %f seconds\n", 
                           (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); 
           // hash_FNV-1
           gettimeofday(&before, NULL);
           for (i = 0; i < 1000000; i++) {
                   memset(szLine, 0, 256);
                   read(f, szLine, 255);
                   hash_fnv1(szLine, 256, 1);
   //              printf("%u\n", hash_varchar(szLine, 256));
           }
           gettimeofday(&after, NULL);
           printf("hash_fnv1 A:: elapsed time %f seconds\n", 
                           (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); 
           // hash_jenkins
           gettimeofday(&before, NULL);
           for (i = 0; i < 1000000; i++) {
                   memset(szLine, 0, 256);
                   read(f, szLine, 255);
                   hash_jenkins(szLine, 256);
   //              printf("%u\n", hash_varchar(szLine, 256));
           }
           gettimeofday(&after, NULL);
           printf("hash_jenkins:: elapsed time %f seconds\n", 
                           (after.tv_sec - before.tv_sec) + (after.tv_usec - before.tv_usec) / 1.e6); 
   
           close(f);
           printf("\n");
           */
           printf("Test avalanche 0 .. 7::\n");
   
           printf("  hash_varchar:");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_varchar(szLine, 1, 1));
           }
           printf("\n");
           printf("  hash_fnv1:");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_fnv1(szLine, 1, 0));
           }
           printf("\n");
           printf("  hash_fnv1 A:");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_fnv1(szLine, 1, 1));
           }
           printf("\n");
           printf("  hash_fnv1 A (define):");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_fnv(szLine, 1));
           }
           printf("\n");
           printf("  hash_bernstein:");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_bernstein(szLine, 1, 0));
           }
           printf("\n");
           printf("  hash_bernstein DJBX33A:");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_bernstein(szLine, 1, 1));
           }
           printf("\n");
           printf("  hash_jenkins:");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_jenkins(szLine, 1));
           }
           printf("\n");
           printf("  hash_reddragon:");
           for (i = 0; i < 8; i++) {
                   memset(szLine, 0, 256);
                   memcpy(szLine, &szAvalanche[i][0], 1);
                   printf(" %d=>%u", i, hash_reddragon(szLine, 1));
           }
           printf("\n");
           printf(" aaa>%u\n", hash_reddragon("aaa", 3));
           printf(" aab>%u\n", hash_reddragon("aab", 3));
           return 0;
   }

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>