Changeset 9612 for trunk/mgpp/lib/perf_hash.cpp
- Timestamp:
- 2005-04-08T15:41:31+12:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mgpp/lib/perf_hash.cpp
r3365 r9612 213 213 Stack[StackPos].v = v; 214 214 Stack[StackPos].m = 0; 215 StackPos++;215 ++StackPos; 216 216 while (StackPos) 217 217 { 218 218 int m, b; 219 StackPos--;219 --StackPos; 220 220 e = Stack[StackPos].e; 221 221 v = Stack[StackPos].v; … … 277 277 /* build list of edges for each node */ 278 278 for (v = 1; v <= n; FIRST[v++] = 0); 279 for (e = 1; e <= m; e++)279 for (e = 1; e <= m; ++e) 280 280 { 281 281 NEXT[A + e] = FIRST[NODEa[e]]; … … 293 293 S.sp = 0; /* empty the stack */ 294 294 mk[0] = ERASED; /* a sentinel for the test below */ 295 for (v = 1; v <= n; v++)295 for (v = 1; v <= n; ++v) 296 296 { 297 297 if (mk[e = norm (unique (v))] == MEMBER) … … 324 324 *n = (int) (num * c + 1); 325 325 /* initialize tables of random integers */ 326 for (i = 0; i < MAX_CH; i++)327 for (j = 0; j < MAX_L; j++)326 for (i = 0; i < MAX_CH; ++i) 327 for (j = 0; j < MAX_L; ++j) 328 328 { 329 329 #ifndef STRUCT … … 340 340 341 341 /* compute an edge (NODEa[e], NODEb[e], NODEc[e]) for each word */ 342 for (e = 1; e <= num; e++)342 for (e = 1; e <= num; ++e) 343 343 { 344 344 /*generate an edge corresponding to the ith word */ … … 363 363 if (++j >= MAX_L) 364 364 j = 0; 365 w++;365 ++w; 366 366 } 367 367 while (--l); … … 460 460 461 461 /*for each word compute its place in hash table and check if correct */ 462 for (e = 1; e <= m; e++)462 for (e = 1; e <= m; ++e) 463 463 { 464 464 if ((e - 1) != (g[NODEa[e]] ^ g[NODEb[e]] ^ g[NODEc[e]])) … … 538 538 printf ("#define _HFM %d\n#define _HXL %d\n", m, MAX_L); 539 539 printf ("#define _HFA %d\n\nstatic int g[_HFN] = {\n", lc - fc + 1); 540 for (i = 1; i < n; i++)540 for (i = 1; i < n; ++i) 541 541 { 542 542 if (i % 8 == 0) … … 547 547 548 548 printf ("static int mt1[_HFA][_HXL] = {\n"); 549 for (j = fc; j < lc; j++)549 for (j = fc; j < lc; ++j) 550 550 { 551 551 printf ("{"); 552 for (i = 0; i < MAX_L - 1; i++)552 for (i = 0; i < MAX_L - 1; ++i) 553 553 printf ("%*d,", w, tb0[j][i]); 554 554 printf ("%*d},\n", w, tb0[j][MAX_L - 1]); 555 555 } 556 556 printf ("{"); 557 for (i = 0; i < MAX_L - 1; i++)557 for (i = 0; i < MAX_L - 1; ++i) 558 558 printf ("%*d,", w, tb0[lc][i]); 559 559 printf ("%*d}\n", w, tb0[lc][MAX_L - 1]); … … 561 561 562 562 printf ("static int mt2[_HFA][_HXL] = {\n"); 563 for (j = fc; j < lc; j++)563 for (j = fc; j < lc; ++j) 564 564 { 565 565 printf ("{"); 566 for (i = 0; i < MAX_L - 1; i++)566 for (i = 0; i < MAX_L - 1; ++i) 567 567 printf ("%*d,", w, tb1[j][i]); 568 568 printf ("%*d},\n", w, tb1[j][MAX_L - 1]); 569 569 } 570 570 printf ("{"); 571 for (i = 0; i < MAX_L - 1; i++)571 for (i = 0; i < MAX_L - 1; ++i) 572 572 printf ("%*d,", w, tb1[lc][i]); 573 573 printf ("%*d}\n", w, tb1[lc][MAX_L - 1]); … … 575 575 576 576 printf ("static int mt3[_HFA][_HXL] = {\n"); 577 for (j = fc; j < lc; j++)577 for (j = fc; j < lc; ++j) 578 578 { 579 579 printf ("{"); 580 for (i = 0; i < MAX_L - 1; i++)580 for (i = 0; i < MAX_L - 1; ++i) 581 581 printf ("%*d,", w, tb2[j][i]); 582 582 printf ("%*d},\n", w, tb2[j][MAX_L - 1]); 583 583 } 584 584 printf ("{"); 585 for (i = 0; i < MAX_L - 1; i++)585 for (i = 0; i < MAX_L - 1; ++i) 586 586 printf ("%*d,", w, tb2[lc][i]); 587 587 printf ("%*d}\n", w, tb2[lc][MAX_L - 1]); … … 606 606 607 607 MAX_L = 1; 608 for (i = 0; i < num; i++)608 for (i = 0; i < num; ++i) 609 609 { 610 610 unsigned len = keys[i][0]; 611 611 u_char *s = keys[i] + 1; 612 for (; len; len--, s++)612 for (; len; len--, ++s) 613 613 translate[*s] = 1; 614 614 if (i) … … 621 621 } 622 622 j = 0; 623 for (i = 0; i < 256; i++)623 for (i = 0; i < 256; ++i) 624 624 if (translate[i]) 625 625 translate[i] = j++; … … 657 657 Xfree (g); 658 658 #ifndef STRUCT 659 for (i = 0; i < MAX_CH; i++)659 for (i = 0; i < MAX_CH; ++i) 660 660 { 661 661 if (tb0 && tb0[i]) … … 673 673 Xfree (tb2); 674 674 #else 675 for (i = 0; i < MAX_CH; i++)675 for (i = 0; i < MAX_CH; ++i) 676 676 if (tb && tb[i]) 677 677 Xfree (tb[i]); … … 697 697 tb1 = Xmalloc (sizeof (int *) * MAX_CH); 698 698 tb2 = Xmalloc (sizeof (int *) * MAX_CH); 699 for (i = 0; i < MAX_CH; i++)699 for (i = 0; i < MAX_CH; ++i) 700 700 { 701 701 if (tb0) … … 718 718 #else 719 719 tb = (tb_entry **)Xmalloc (sizeof (struct tb_entry *) * MAX_CH); 720 for (i = 0; i < MAX_CH; i++)720 for (i = 0; i < MAX_CH; ++i) 721 721 if (tb) 722 722 if (!(tb[i] = (tb_entry *)Xmalloc (sizeof (struct tb_entry) * MAX_L))) … … 809 809 810 810 /* [RPAP - Jan 97: Endian Ordering] */ 811 for (i = 0; i < phd->MAX_N + 1; i++)811 for (i = 0; i < phd->MAX_N + 1; ++i) 812 812 HTONSI(phd->g[i]); 813 813 … … 815 815 816 816 /* [RPAP - Jan 97: Endian Ordering] */ 817 for (i = 0; i < phd->MAX_N + 1; i++)817 for (i = 0; i < phd->MAX_N + 1; ++i) 818 818 NTOHSI(phd->g[i]); 819 819 820 820 #ifndef STRUCT 821 for (i = 0; i < phd->MAX_CH; i++)821 for (i = 0; i < phd->MAX_CH; ++i) 822 822 { 823 823 /* [RPAP - Jan 97: Endian Ordering] */ 824 824 int j; 825 for (j = 0; j < phd->MAX_L; j++)825 for (j = 0; j < phd->MAX_L; ++j) 826 826 { 827 827 HTONSI(phd->tb0[i][j]); … … 838 838 839 839 /* [RPAP - Jan 97: Endian Ordering] */ 840 for (j = 0; j < phd->MAX_L; j++)840 for (j = 0; j < phd->MAX_L; ++j) 841 841 { 842 842 NTOHSI(phd->tb0[i][j]); … … 846 846 } 847 847 #else 848 for (i = 0; i < phd->MAX_CH; i++)848 for (i = 0; i < phd->MAX_CH; ++i) 849 849 { 850 850 /* [RPAP - Jan 97: Endian Ordering] */ 851 851 int j; 852 for (j = 0; j < phd->MAX_L; j++)852 for (j = 0; j < phd->MAX_L; ++j) 853 853 { 854 854 HTONSL(phd->tb[i][j].tb0); … … 861 861 862 862 /* [RPAP - Jan 97: Endian Ordering] */ 863 for (j = 0; j < phd->MAX_L; j++)863 for (j = 0; j < phd->MAX_L; ++j) 864 864 { 865 865 NTOHSL(phd->tb[i][j].tb0); … … 899 899 phd->tb1 = Xmalloc (sizeof (int *) * phd->MAX_CH); 900 900 phd->tb2 = Xmalloc (sizeof (int *) * phd->MAX_CH); 901 for (i = 0; i < phd->MAX_CH; i++)901 for (i = 0; i < phd->MAX_CH; ++i) 902 902 { 903 903 if (phd->tb0) … … 917 917 if (phd->g) 918 918 Xfree (phd->g); 919 for (i = 0; i < MAX_CH; i++)919 for (i = 0; i < MAX_CH; ++i) 920 920 { 921 921 if (phd->tb0 && phd->tb0[i]) … … 939 939 940 940 /* [RPAP - Jan 97: Endian Ordering] */ 941 for (i = 0; i < phd->MAX_N + 1; i++)941 for (i = 0; i < phd->MAX_N + 1; ++i) 942 942 NTOHSI(phd->g[i]); 943 943 944 for (i = 0; i < phd->MAX_CH; i++)944 for (i = 0; i < phd->MAX_CH; ++i) 945 945 { 946 946 int j; … … 954 954 955 955 /* [RPAP - Jan 97: Endian Ordering] */ 956 for (j = 0; j < phd->MAX_L; j++)956 for (j = 0; j < phd->MAX_L; ++j) 957 957 { 958 958 NTOHSI(phd->tb0[i][j]); … … 963 963 #else 964 964 phd->tb = (struct tb_entry **)Xmalloc (sizeof (struct tb_entry *) * phd->MAX_CH); 965 for (i = 0; i < phd->MAX_CH; i++)965 for (i = 0; i < phd->MAX_CH; ++i) 966 966 if (phd->tb) 967 967 if (!(phd->tb[i] = (struct tb_entry *)Xmalloc (sizeof (struct tb_entry) * phd->MAX_L))) … … 973 973 if (phd->g) 974 974 Xfree (phd->g); 975 for (i = 0; i < MAX_CH; i++)975 for (i = 0; i < MAX_CH; ++i) 976 976 if (phd->tb && phd->tb[i]) 977 977 Xfree (phd->tb[i]); … … 985 985 986 986 /* [RPAP - Jan 97: Endian Ordering] */ 987 for (i = 0; i < phd->MAX_N + 1; i++)987 for (i = 0; i < phd->MAX_N + 1; ++i) 988 988 NTOHSI(phd->g[i]); 989 989 990 for (i = 0; i < phd->MAX_CH; i++)990 for (i = 0; i < phd->MAX_CH; ++i) 991 991 { 992 992 int j; … … 996 996 997 997 /* [RPAP - Jan 97: Endian Ordering] */ 998 for (j = 0; j < phd->MAX_L; j++)998 for (j = 0; j < phd->MAX_L; ++j) 999 999 { 1000 1000 NTOHSL(phd->tb[i][j].tb0); … … 1015 1015 if (phd->g) 1016 1016 Xfree (phd->g); 1017 for (i = 0; i < phd->MAX_CH; i++)1017 for (i = 0; i < phd->MAX_CH; ++i) 1018 1018 if (phd->tb && phd->tb[i]) 1019 1019 Xfree (phd->tb[i]); … … 1051 1051 if (++i >= phd->MAX_L) 1052 1052 i = 0; 1053 l--;1054 s++;1053 --l; 1054 ++s; 1055 1055 } 1056 1056 if (u == v && ++v >= phd->MAX_N)
Note:
See TracChangeset
for help on using the changeset viewer.