<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p><span style="color: rgb(33, 33, 33); font-size: 12pt;">>>The bloom filter for the .gnu.hash table is a two-bit bloom filter. To choose two bit locations, we compute one hash value H and create</span><br>
</p>
<div dir="ltr" style="font-size:12pt; color:#000000; background-color:#FFFFFF; font-family:Calibri,Arial,Helvetica,sans-serif">
<div>
<div style="color:rgb(33,33,33)">
<div>
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>>>two hash values H1 and H2 in the following manner :Assume a 64-bit machine. Bits H[0,5] are always used for computing the</div>
<div>>>first hash H1. Bits H[Shift2, Shift2 + 5] are used for computing the second hash H2.​<br>
</div>
<div>>>As long as the hash function produces evenly distributed hash values, choosing bits [6, 11] isn't different from choosing other bits, say [15, 20]. </div>
<div>>>No Shift2 greater than 5 should be better than any other Shift2 values in theory.</div>
<div>>> </div>
<div>>>Am I missing something?</div>
<div>> </div>
<div style="color:rgb(33,33,33); font-family:Calibri,Arial,Helvetica,sans-serif; font-size:16px; background-color:rgb(255,255,255)">
>I think there is a mistake here. See, we have following code:<br>
</div>
<div style="color:rgb(33,33,33); font-family:Calibri,Arial,Helvetica,sans-serif; font-size:16px; background-color:rgb(255,255,255)">
<div>>Val |= uint64_t(1) << (Sym.Hash % C);</div>
<div>>Val |= uint64_t(1) << ((Sym.Hash >> getShift2()) % C);</div>
<div><span style="white-space:pre"></span></div>
<div>>C == 64 for 64 bits, ot 2^6. It is simplified to:<br>
</div>
<div><span style="white-space:pre"></span></div>
<div>>Val |= uint64_t(1) << (Sym.Hash >> 6);</div>
<div>>Val |= uint64_t(1) << (Sym.Hash >> (Shift2 + 6));</div>
<div><span style="white-space:pre"></span></div>
<div>>Or I believe bits H[6, 63] are used to find Bit 1 and H[6 + Shift2, 63] for Bit 2.​<br>
</div>
<div>> </div>
<div>>George.<br>
</div>
</div>
<br>
</div>
<div class="gmail_quote">Sorry for noise, my simplification in incorrect, I read "%" as "/" by mistake.<br>
</div>
<div class="gmail_quote">You right about bits used.<br>
</div>
<div class="gmail_quote"><br>
</div>
<div class="gmail_quote">George.<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>