| 800 |
FILE *sfp; /* scoreboard */ |
FILE *sfp; /* scoreboard */ |
| 801 |
struct ITREE *root_expr; |
struct ITREE *root_expr; |
| 802 |
int cr; |
int cr; |
| 803 |
|
#ifdef KEYCHECK |
| 804 |
|
unsigned int ok, ng; |
| 805 |
|
#endif |
| 806 |
|
|
| 807 |
int xhash_loaded; |
int xhash_loaded; |
| 808 |
|
|
| 891 |
cr = 0; |
cr = 0; |
| 892 |
memset( &status, 0, sizeof( struct status ) ); |
memset( &status, 0, sizeof( struct status ) ); |
| 893 |
status.startTime = status.lastTime = usec(); |
status.startTime = status.lastTime = usec(); |
| 894 |
|
#ifdef KEYCHECK |
| 895 |
|
ok = ng = 0; |
| 896 |
|
#endif |
| 897 |
/* 探索ループだぞっと */ |
/* 探索ループだぞっと */ |
| 898 |
for (;;) |
for (;;) |
| 899 |
{ |
{ |
| 936 |
nblk_total++, xhash_loaded = 0; |
nblk_total++, xhash_loaded = 0; |
| 937 |
|
|
| 938 |
t = param64.t[HIT_ANY].a[kk]; |
t = param64.t[HIT_ANY].a[kk]; |
| 939 |
|
#ifndef KEYCHECK |
| 940 |
if (!t) |
if (!t) |
| 941 |
continue; |
continue; |
| 942 |
|
#endif |
| 943 |
|
|
| 944 |
nap_total += ALU_BITS; |
nap_total += ALU_BITS; |
| 945 |
|
|
| 950 |
unsigned char buf[32]; |
unsigned char buf[32]; |
| 951 |
time_t tloc; |
time_t tloc; |
| 952 |
|
|
| 953 |
|
#ifndef KEYCHECK |
| 954 |
if (!(t & ((ALU_T)1 << k))) |
if (!(t & ((ALU_T)1 << k))) |
| 955 |
continue; |
continue; |
| 956 |
|
#endif |
| 957 |
|
|
| 958 |
nap_hit++; |
nap_hit++; |
| 959 |
|
|
| 965 |
xhash_loaded = 1; |
xhash_loaded = 1; |
| 966 |
} |
} |
| 967 |
|
|
| 968 |
|
#ifndef KEYCHECK |
| 969 |
/* 辞書を調べる */ |
/* 辞書を調べる */ |
| 970 |
if (!((param64.t[HIT_BOOL].a[kk] & ((ALU_T)1 << k)) |
if (!((param64.t[HIT_BOOL].a[kk] & ((ALU_T)1 << k)) |
| 971 |
|| wdict_ishit(param64.t, |
|| wdict_ishit(param64.t, |
| 972 |
kk, k, |
kk, k, |
| 973 |
xhash[(ALU_BITS * kk + k) & 0x3F]))) |
xhash[(ALU_BITS * kk + k) & 0x3F]))) |
| 974 |
continue; |
continue; |
| 975 |
|
#endif |
| 976 |
|
|
| 977 |
for (i = 1; i < 11; i++) |
for (i = 1; i < 11; i++) |
| 978 |
{ |
{ |
| 988 |
time( &tloc ); |
time( &tloc ); |
| 989 |
if (translate(buf, 0, 1)) |
if (translate(buf, 0, 1)) |
| 990 |
{ |
{ |
| 991 |
|
#ifdef KEYCHECK |
| 992 |
|
ok++; |
| 993 |
|
if ( ok + ng >= 100000000 ) { |
| 994 |
|
printf( "\nok = %lu, ng = %lu\n", ok, ng ); |
| 995 |
|
exit( 1 ); |
| 996 |
|
} |
| 997 |
|
#endif |
| 998 |
if (cr) |
if (cr) |
| 999 |
fprintf(stderr, "\n"); |
fprintf(stderr, "\n"); |
| 1000 |
cr = 0; |
cr = 0; |
| 1009 |
} |
} |
| 1010 |
else |
else |
| 1011 |
{ |
{ |
| 1012 |
|
#ifdef KEYCHECK |
| 1013 |
|
ng++; |
| 1014 |
|
if ( ok + ng >= 100000000 ) { |
| 1015 |
|
printf( "\nok = %lu, ng = %lu\n", ok, ng ); |
| 1016 |
|
exit( 1 ); |
| 1017 |
|
} |
| 1018 |
|
#endif |
| 1019 |
/* 魔改造 failed も表示する */ |
/* 魔改造 failed も表示する */ |
| 1020 |
if (cr) |
if (cr) |
| 1021 |
fprintf(stderr, "\n"); |
fprintf(stderr, "\n"); |
| 1026 |
buf[0], buf[1], buf[2], buf[3], |
buf[0], buf[1], buf[2], buf[3], |
| 1027 |
buf[4], buf[5], buf[6], buf[7], ctime(&tloc) ); |
buf[4], buf[5], buf[6], buf[7], ctime(&tloc) ); |
| 1028 |
} |
} |
| 1029 |
|
printf( "ok = %lu, ng = %lu\n", ok, ng ); |
| 1030 |
} |
} |
| 1031 |
} |
} |
| 1032 |
|
|