Lines Matching full:k

118 #define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k))))
150 Some k values for my "a-=c; a^=rot(c,k); c+=b;" arrangement that
233 const uint32_t *k, /* the key, an array of uint32_t values */
245 a += k[0];
246 b += k[1];
247 c += k[2];
250 k += 3;
256 case 3 : c+=k[2];
259 case 2 : b+=k[1];
262 case 1 : a+=k[0];
285 const uint32_t *k, /* the key, an array of uint32_t values */
299 a += k[0];
300 b += k[1];
301 c += k[2];
304 k += 3;
310 case 3 : c+=k[2];
313 case 2 : b+=k[1];
316 case 1 : a+=k[0];
332 k : the key (the unaligned variable-length array of bytes)
345 If you are hashing n strings (uint8_t **)k, do it like this:
346 for (i=0, h=0; i<n; ++i) h = hashlittle( k[i], len[i], h);
366 const uint32_t *k = (const uint32_t *)key; /* read 32-bit chunks */
374 a += k[0];
375 b += k[1];
376 c += k[2];
379 k += 3;
384 * "k[2]&0xffffff" actually reads beyond the end of the string, but
396 case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
397 case 11: c+=k[2]&0xffffff; b+=k[1]; a+=k[0]; break;
398 case 10: c+=k[2]&0xffff; b+=k[1]; a+=k[0]; break;
399 case 9 : c+=k[2]&0xff; b+=k[1]; a+=k[0]; break;
400 case 8 : b+=k[1]; a+=k[0]; break;
401 case 7 : b+=k[1]&0xffffff; a+=k[0]; break;
402 case 6 : b+=k[1]&0xffff; a+=k[0]; break;
403 case 5 : b+=k[1]&0xff; a+=k[0]; break;
404 case 4 : a+=k[0]; break;
405 case 3 : a+=k[0]&0xffffff; break;
406 case 2 : a+=k[0]&0xffff; break;
407 case 1 : a+=k[0]&0xff; break;
413 k8 = (const uint8_t *)k;
416 case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
426 case 8 : b+=k[1]; a+=k[0]; break;
436 case 4 : a+=k[0]; break;
450 const uint16_t *k = (const uint16_t *)key; /* read 16-bit chunks */
456 a += k[0] + (((uint32_t)k[1])<<16);
457 b += k[2] + (((uint32_t)k[3])<<16);
458 c += k[4] + (((uint32_t)k[5])<<16);
461 k += 6;
465 k8 = (const uint8_t *)k;
468 case 12: c+=k[4]+(((uint32_t)k[5])<<16);
469 b+=k[2]+(((uint32_t)k[3])<<16);
470 a+=k[0]+(((uint32_t)k[1])<<16);
475 case 10: c+=k[4];
476 b+=k[2]+(((uint32_t)k[3])<<16);
477 a+=k[0]+(((uint32_t)k[1])<<16);
482 case 8 : b+=k[2]+(((uint32_t)k[3])<<16);
483 a+=k[0]+(((uint32_t)k[1])<<16);
488 case 6 : b+=k[2];
489 a+=k[0]+(((uint32_t)k[1])<<16);
494 case 4 : a+=k[0]+(((uint32_t)k[1])<<16);
499 case 2 : a+=k[0];
507 const uint8_t *k = (const uint8_t *)key;
512 a += k[0];
513 a += ((uint32_t)k[1])<<8;
514 a += ((uint32_t)k[2])<<16;
515 a += ((uint32_t)k[3])<<24;
516 b += k[4];
517 b += ((uint32_t)k[5])<<8;
518 b += ((uint32_t)k[6])<<16;
519 b += ((uint32_t)k[7])<<24;
520 c += k[8];
521 c += ((uint32_t)k[9])<<8;
522 c += ((uint32_t)k[10])<<16;
523 c += ((uint32_t)k[11])<<24;
526 k += 12;
532 case 12: c+=((uint32_t)k[11])<<24;
535 case 11: c+=((uint32_t)k[10])<<16;
538 case 10: c+=((uint32_t)k[9])<<8;
541 case 9 : c+=k[8];
544 case 8 : b+=((uint32_t)k[7])<<24;
547 case 7 : b+=((uint32_t)k[6])<<16;
550 case 6 : b+=((uint32_t)k[5])<<8;
553 case 5 : b+=k[4];
556 case 4 : a+=((uint32_t)k[3])<<24;
559 case 3 : a+=((uint32_t)k[2])<<16;
562 case 2 : a+=((uint32_t)k[1])<<8;
565 case 1 : a+=k[0];
602 const uint32_t *k = (const uint32_t *)key; /* read 32-bit chunks */
610 a += k[0];
611 b += k[1];
612 c += k[2];
615 k += 3;
620 * "k[2]&0xffffff" actually reads beyond the end of the string, but
632 case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
633 case 11: c+=k[2]&0xffffff; b+=k[1]; a+=k[0]; break;
634 case 10: c+=k[2]&0xffff; b+=k[1]; a+=k[0]; break;
635 case 9 : c+=k[2]&0xff; b+=k[1]; a+=k[0]; break;
636 case 8 : b+=k[1]; a+=k[0]; break;
637 case 7 : b+=k[1]&0xffffff; a+=k[0]; break;
638 case 6 : b+=k[1]&0xffff; a+=k[0]; break;
639 case 5 : b+=k[1]&0xff; a+=k[0]; break;
640 case 4 : a+=k[0]; break;
641 case 3 : a+=k[0]&0xffffff; break;
642 case 2 : a+=k[0]&0xffff; break;
643 case 1 : a+=k[0]&0xff; break;
649 k8 = (const uint8_t *)k;
652 case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
662 case 8 : b+=k[1]; a+=k[0]; break;
672 case 4 : a+=k[0]; break;
686 const uint16_t *k = (const uint16_t *)key; /* read 16-bit chunks */
692 a += k[0] + (((uint32_t)k[1])<<16);
693 b += k[2] + (((uint32_t)k[3])<<16);
694 c += k[4] + (((uint32_t)k[5])<<16);
697 k += 6;
701 k8 = (const uint8_t *)k;
704 case 12: c+=k[4]+(((uint32_t)k[5])<<16);
705 b+=k[2]+(((uint32_t)k[3])<<16);
706 a+=k[0]+(((uint32_t)k[1])<<16);
711 case 10: c+=k[4];
712 b+=k[2]+(((uint32_t)k[3])<<16);
713 a+=k[0]+(((uint32_t)k[1])<<16);
718 case 8 : b+=k[2]+(((uint32_t)k[3])<<16);
719 a+=k[0]+(((uint32_t)k[1])<<16);
724 case 6 : b+=k[2];
725 a+=k[0]+(((uint32_t)k[1])<<16);
730 case 4 : a+=k[0]+(((uint32_t)k[1])<<16);
735 case 2 : a+=k[0];
743 const uint8_t *k = (const uint8_t *)key;
748 a += k[0];
749 a += ((uint32_t)k[1])<<8;
750 a += ((uint32_t)k[2])<<16;
751 a += ((uint32_t)k[3])<<24;
752 b += k[4];
753 b += ((uint32_t)k[5])<<8;
754 b += ((uint32_t)k[6])<<16;
755 b += ((uint32_t)k[7])<<24;
756 c += k[8];
757 c += ((uint32_t)k[9])<<8;
758 c += ((uint32_t)k[10])<<16;
759 c += ((uint32_t)k[11])<<24;
762 k += 12;
768 case 12: c+=((uint32_t)k[11])<<24;
771 case 11: c+=((uint32_t)k[10])<<16;
774 case 10: c+=((uint32_t)k[9])<<8;
777 case 9 : c+=k[8];
780 case 8 : b+=((uint32_t)k[7])<<24;
783 case 7 : b+=((uint32_t)k[6])<<16;
786 case 6 : b+=((uint32_t)k[5])<<8;
789 case 5 : b+=k[4];
792 case 4 : a+=((uint32_t)k[3])<<24;
795 case 3 : a+=((uint32_t)k[2])<<16;
798 case 2 : a+=((uint32_t)k[1])<<8;
801 case 1 : a+=k[0];
831 const uint32_t *k = (const uint32_t *)key; /* read 32-bit chunks */
839 a += k[0];
840 b += k[1];
841 c += k[2];
844 k += 3;
849 * "k[2]<<8" actually reads beyond the end of the string, but
861 case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
862 case 11: c+=k[2]&0xffffff00; b+=k[1]; a+=k[0]; break;
863 case 10: c+=k[2]&0xffff0000; b+=k[1]; a+=k[0]; break;
864 case 9 : c+=k[2]&0xff000000; b+=k[1]; a+=k[0]; break;
865 case 8 : b+=k[1]; a+=k[0]; break;
866 case 7 : b+=k[1]&0xffffff00; a+=k[0]; break;
867 case 6 : b+=k[1]&0xffff0000; a+=k[0]; break;
868 case 5 : b+=k[1]&0xff000000; a+=k[0]; break;
869 case 4 : a+=k[0]; break;
870 case 3 : a+=k[0]&0xffffff00; break;
871 case 2 : a+=k[0]&0xffff0000; break;
872 case 1 : a+=k[0]&0xff000000; break;
878 k8 = (const uint8_t *)k;
881 case 12: c+=k[2]; b+=k[1]; a+=k[0]; break;
891 case 8 : b+=k[1]; a+=k[0]; break;
901 case 4 : a+=k[0]; break;
915 const uint8_t *k = (const uint8_t *)key;
920 a += ((uint32_t)k[0])<<24;
921 a += ((uint32_t)k[1])<<16;
922 a += ((uint32_t)k[2])<<8;
923 a += ((uint32_t)k[3]);
924 b += ((uint32_t)k[4])<<24;
925 b += ((uint32_t)k[5])<<16;
926 b += ((uint32_t)k[6])<<8;
927 b += ((uint32_t)k[7]);
928 c += ((uint32_t)k[8])<<24;
929 c += ((uint32_t)k[9])<<16;
930 c += ((uint32_t)k[10])<<8;
931 c += ((uint32_t)k[11]);
934 k += 12;
940 case 12: c+=k[11];
943 case 11: c+=((uint32_t)k[10])<<8;
946 case 10: c+=((uint32_t)k[9])<<16;
949 case 9 : c+=((uint32_t)k[8])<<24;
952 case 8 : b+=k[7];
955 case 7 : b+=((uint32_t)k[6])<<8;
958 case 6 : b+=((uint32_t)k[5])<<16;
961 case 5 : b+=((uint32_t)k[4])<<24;
964 case 4 : a+=k[3];
967 case 3 : a+=((uint32_t)k[2])<<8;
970 case 2 : a+=((uint32_t)k[1])<<16;
973 case 1 : a+=((uint32_t)k[0])<<24;
1013 uint32_t c[HASHSTATE], d[HASHSTATE], i=0, j=0, k, l, m=0, z;
1032 for (k=0; k<MAXPAIR; k+=2)
1038 a[i] ^= (k<<j);
1039 a[i] ^= (k>>(8-j));
1041 b[i] ^= ((k+1)<<j);
1042 b[i] ^= ((k+1)>>(8-j));
1057 if (k>z) z=k;
1058 if (k==MAXPAIR)