Annotation of researchv10no/cmd/odist/pax/include/hashpart.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * K. P. Vo
                      3:  * G. S. Fowler
                      4:  * AT&T Bell Laboratories
                      5:  *
                      6:  * ``the best'' combined linear congruent checksum/hash/PRNG
                      7:  */
                      8: 
                      9: #ifndef HASHPART
                     10: 
                     11: #define HASH_ADD(h)    (0x9c39c33dL)
                     12: 
                     13: #if __sparc__ || sparc
                     14: 
                     15: #define HASH_A(h,n)    ((((h) << 2) - (h)) << (n))
                     16: #define HASH_B(h,n)    ((((h) << 4) - (h)) << (n))
                     17: #define HASH_C(h,n)    ((HASH_A(h,7) + HASH_B(h,0)) << (n))
                     18: #define HASH_MPY(h)    (HASH_C(h,22)+HASH_C(h,10)+HASH_A(h,6)+HASH_A(h,3)+(h))
                     19: 
                     20: #else
                     21: 
                     22: #define HASH_MPY(h)    ((h)*0x63c63cd9L)
                     23: 
                     24: #endif
                     25: 
                     26: #define HASHPART(h,c)  (h = HASH_MPY(h) + HASH_ADD(h) + (c))
                     27: 
                     28: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.