X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fhash.c;h=f63b3f50d25240541bf4904e727178260ff99cf3;hp=54f38abc1af26e8d92abb0a7bf5be6e4ebc0c550;hb=2b0ff8e75f11c5fb58e16e95d8195d6f1252c97c;hpb=e24285f0509319319aef28a188b7c01ba7e22bf1 diff --git a/src/hash.c b/src/hash.c index 54f38ab..f63b3f5 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1,5 +1,22 @@ #include "hash.h" +/* ハッシュ表のサイズを決めるため、引数の数値より大きい最小の素数を返す */ +int hashtabsize(int size) +{ + int i; + const int prime[] = + {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, + 31, 37, 41, 43, 47, 53, 59, 61, 67, + 71, 73, 79, 83, 89, 97, + }; + for(i = 0; i < ARRAYSIZE(prime); i++) { + if(i > 0 && prime[i] >= size) { + break; + } + } + return prime[i]; +} + /* ハッシュ値を取得する */ unsigned hash(int keyc, HKEY *keyv[], int tabsize) {