[#benchmarks]
= Benchmarks
:idprefix: benchmarks_
(More results in a
https://github.com/boostorg/boost_bloom_benchmarks[dedicated repo^].)
The tables show the false positive rate and execution times in nanoseconds per operation
for several configurations of `boost::bloom::filter<int, +++...+++>` where 10M elements have
been inserted.
* **ins.:** Insertion.
* **succ. lkp.:** Successful lookup (the element is in the filter).
* **uns. lkp.:** Unsuccessful lookup (the element is not in the filter, though lookup may return `true`).
Filters are constructed with a capacity `c * N` (bits), so `c` is the number of
bits used per element. For each combination of `c` and a given filter configuration, we have
selected the optimum value of `K` (that yielding the minimum FPR).
Standard release-mode settings are used; AVX2 is indicated for Visual Studio builds
(`/arch:AVX2`) and GCC/Clang builds (`-march=native`), which causes
`fast_multiblock32` and `fast_multiblock64` to use their AVX2 variant.
== GCC 14, x64
+++
<div style="overflow-x: auto;">
<table class="bordered_table" style="font-size: 85%;">
<tr>
<th></th>
<th colspan="5"><code>filter<int,K></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">6</td>
<td align="right">2.1519</td>
<td align="right">14.04</td>
<td align="right">15.82</td>
<td align="right">20.84</td>
<td align="center">4</td>
<td align="right">3.3467</td>
<td align="right">5.82</td>
<td align="right">6.50</td>
<td align="right">6.54</td>
<td align="center">5</td>
<td align="right">3.0383</td>
<td align="right">5.46</td>
<td align="right">6.13</td>
<td align="right">6.15</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">9</td>
<td align="right">0.3180</td>
<td align="right">47.65</td>
<td align="right">52.28</td>
<td align="right">27.38</td>
<td align="center">5</td>
<td align="right">1.0300</td>
<td align="right">10.07</td>
<td align="right">10.98</td>
<td align="right">10.98</td>
<td align="center">6</td>
<td align="right">0.8268</td>
<td align="right">11.52</td>
<td align="right">12.52</td>
<td align="right">12.49</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0469</td>
<td align="right">83.25</td>
<td align="right">99.75</td>
<td align="right">34.96</td>
<td align="center">6</td>
<td align="right">0.4034</td>
<td align="right">18.34</td>
<td align="right">18.38</td>
<td align="right">18.39</td>
<td align="center">7</td>
<td align="right">0.2883</td>
<td align="right">18.97</td>
<td align="right">19.08</td>
<td align="right">19.08</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">14</td>
<td align="right">0.0065</td>
<td align="right">125.12</td>
<td align="right">135.16</td>
<td align="right">39.56</td>
<td align="center">7</td>
<td align="right">0.1887</td>
<td align="right">21.87</td>
<td align="right">21.99</td>
<td align="right">21.99</td>
<td align="center">8</td>
<td align="right">0.1194</td>
<td align="right">22.85</td>
<td align="right">25.21</td>
<td align="right">25.17</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4510</td>
<td align="right">6.42</td>
<td align="right">7.10</td>
<td align="right">7.12</td>
<td align="center">5</td>
<td align="right">2.3157</td>
<td align="right">7.23</td>
<td align="right">8.98</td>
<td align="right">8.96</td>
<td align="center">5</td>
<td align="right">2.7361</td>
<td align="right">5.90</td>
<td align="right">5.67</td>
<td align="right">5.70</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4207</td>
<td align="right">13.45</td>
<td align="right">17.14</td>
<td align="right">17.16</td>
<td align="center">8</td>
<td align="right">0.3724</td>
<td align="right">16.49</td>
<td align="right">20.61</td>
<td align="right">20.65</td>
<td align="center">8</td>
<td align="right">0.5415</td>
<td align="right">7.63</td>
<td align="right">7.92</td>
<td align="right">7.97</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0764</td>
<td align="right">29.25</td>
<td align="right">30.26</td>
<td align="right">30.26</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">34.90</td>
<td align="right">35.52</td>
<td align="right">35.29</td>
<td align="center">11</td>
<td align="right">0.1179</td>
<td align="right">19.11</td>
<td align="right">20.64</td>
<td align="right">14.95</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0150</td>
<td align="right">38.40</td>
<td align="right">39.18</td>
<td align="right">39.20</td>
<td align="center">14</td>
<td align="right">0.0122</td>
<td align="right">40.68</td>
<td align="right">50.85</td>
<td align="right">50.24</td>
<td align="center">13</td>
<td align="right">0.0275</td>
<td align="right">22.00</td>
<td align="right">23.66</td>
<td align="right">16.68</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4788</td>
<td align="right">4.24</td>
<td align="right">3.92</td>
<td align="right">3.96</td>
<td align="center">5</td>
<td align="right">2.4546</td>
<td align="right">5.59</td>
<td align="right">5.86</td>
<td align="right">5.89</td>
<td align="center">5</td>
<td align="right">2.3234</td>
<td align="right">5.97</td>
<td align="right">6.01</td>
<td align="right">5.92</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4394</td>
<td align="right">8.19</td>
<td align="right">8.03</td>
<td align="right">8.03</td>
<td align="center">8</td>
<td align="right">0.4210</td>
<td align="right">8.75</td>
<td align="right">9.69</td>
<td align="right">9.74</td>
<td align="center">8</td>
<td align="right">0.3754</td>
<td align="right">11.13</td>
<td align="right">12.23</td>
<td align="right">12.20</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0865</td>
<td align="right">18.60</td>
<td align="right">20.34</td>
<td align="right">14.59</td>
<td align="center">11</td>
<td align="right">0.0781</td>
<td align="right">24.65</td>
<td align="right">25.86</td>
<td align="right">21.31</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">23.72</td>
<td align="right">26.12</td>
<td align="right">21.53</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0178</td>
<td align="right">21.80</td>
<td align="right">23.56</td>
<td align="right">16.42</td>
<td align="center">13</td>
<td align="right">0.0160</td>
<td align="right">31.93</td>
<td align="right">36.25</td>
<td align="right">24.75</td>
<td align="center">14</td>
<td align="right">0.0110</td>
<td align="right">31.64</td>
<td align="right">36.52</td>
<td align="right">25.04</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>,1></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t[8],K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.3292</td>
<td align="right">7.58</td>
<td align="right">8.62</td>
<td align="right">15.62</td>
<td align="center">6</td>
<td align="right">2.2986</td>
<td align="right">13.07</td>
<td align="right">10.80</td>
<td align="right">20.72</td>
<td align="center">7</td>
<td align="right">2.3389</td>
<td align="right">15.28</td>
<td align="right">15.27</td>
<td align="right">15.29</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">7</td>
<td align="right">0.4140</td>
<td align="right">17.22</td>
<td align="right">18.44</td>
<td align="right">18.84</td>
<td align="center">7</td>
<td align="right">0.3845</td>
<td align="right">22.19</td>
<td align="right">21.28</td>
<td align="right">20.79</td>
<td align="center">10</td>
<td align="right">0.3468</td>
<td align="right">26.63</td>
<td align="right">28.35</td>
<td align="right">28.33</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">9</td>
<td align="right">0.0852</td>
<td align="right">27.39</td>
<td align="right">27.86</td>
<td align="right">21.79</td>
<td align="center">10</td>
<td align="right">0.0714</td>
<td align="right">35.48</td>
<td align="right">33.83</td>
<td align="right">26.65</td>
<td align="center">11</td>
<td align="right">0.0493</td>
<td align="right">45.00</td>
<td align="right">49.14</td>
<td align="right">49.05</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">12</td>
<td align="right">0.0196</td>
<td align="right">41.61</td>
<td align="right">42.34</td>
<td align="right">24.90</td>
<td align="center">12</td>
<td align="right">0.0152</td>
<td align="right">50.90</td>
<td align="right">50.31</td>
<td align="right">28.79</td>
<td align="center">15</td>
<td align="right">0.0076</td>
<td align="right">74.41</td>
<td align="right">73.92</td>
<td align="right">73.83</td>
</tr>
</table>
</div>
+++
== Clang 18, x64
+++
<div style="overflow-x: auto;">
<table class="bordered_table" style="font-size: 85%;">
<tr>
<th></th>
<th colspan="5"><code>filter<int,K></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">6</td>
<td align="right">2.1519</td>
<td align="right">13.57</td>
<td align="right">14.12</td>
<td align="right">20.85</td>
<td align="center">4</td>
<td align="right">3.3467</td>
<td align="right">5.65</td>
<td align="right">5.67</td>
<td align="right">5.63</td>
<td align="center">5</td>
<td align="right">3.0383</td>
<td align="right">5.42</td>
<td align="right">6.03</td>
<td align="right">5.98</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">9</td>
<td align="right">0.3180</td>
<td align="right">47.85</td>
<td align="right">49.49</td>
<td align="right">26.49</td>
<td align="center">5</td>
<td align="right">1.0300</td>
<td align="right">11.03</td>
<td align="right">10.97</td>
<td align="right">10.98</td>
<td align="center">6</td>
<td align="right">0.8268</td>
<td align="right">10.64</td>
<td align="right">11.56</td>
<td align="right">11.58</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0469</td>
<td align="right">83.54</td>
<td align="right">85.35</td>
<td align="right">31.09</td>
<td align="center">6</td>
<td align="right">0.4034</td>
<td align="right">17.89</td>
<td align="right">17.95</td>
<td align="right">17.96</td>
<td align="center">7</td>
<td align="right">0.2883</td>
<td align="right">17.23</td>
<td align="right">19.07</td>
<td align="right">19.08</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">14</td>
<td align="right">0.0065</td>
<td align="right">120.39</td>
<td align="right">119.09</td>
<td align="right">36.47</td>
<td align="center">7</td>
<td align="right">0.1887</td>
<td align="right">21.98</td>
<td align="right">21.72</td>
<td align="right">21.72</td>
<td align="center">8</td>
<td align="right">0.1194</td>
<td align="right">14.71</td>
<td align="right">15.30</td>
<td align="right">15.26</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4510</td>
<td align="right">4.32</td>
<td align="right">5.17</td>
<td align="right">5.21</td>
<td align="center">5</td>
<td align="right">2.3157</td>
<td align="right">4.10</td>
<td align="right">4.63</td>
<td align="right">4.66</td>
<td align="center">5</td>
<td align="right">2.7361</td>
<td align="right">3.56</td>
<td align="right">3.45</td>
<td align="right">3.44</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4207</td>
<td align="right">8.83</td>
<td align="right">10.55</td>
<td align="right">10.56</td>
<td align="center">8</td>
<td align="right">0.3724</td>
<td align="right">9.91</td>
<td align="right">12.46</td>
<td align="right">12.52</td>
<td align="center">8</td>
<td align="right">0.5415</td>
<td align="right">7.85</td>
<td align="right">7.54</td>
<td align="right">7.54</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0764</td>
<td align="right">19.62</td>
<td align="right">22.72</td>
<td align="right">22.75</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">19.05</td>
<td align="right">22.93</td>
<td align="right">22.92</td>
<td align="center">11</td>
<td align="right">0.1179</td>
<td align="right">15.19</td>
<td align="right">16.32</td>
<td align="right">12.45</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0150</td>
<td align="right">23.87</td>
<td align="right">29.73</td>
<td align="right">29.79</td>
<td align="center">14</td>
<td align="right">0.0122</td>
<td align="right">24.92</td>
<td align="right">30.80</td>
<td align="right">30.80</td>
<td align="center">13</td>
<td align="right">0.0275</td>
<td align="right">17.36</td>
<td align="right">18.34</td>
<td align="right">13.99</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4788</td>
<td align="right">3.72</td>
<td align="right">3.38</td>
<td align="right">3.36</td>
<td align="center">5</td>
<td align="right">2.4546</td>
<td align="right">4.76</td>
<td align="right">5.07</td>
<td align="right">5.02</td>
<td align="center">5</td>
<td align="right">2.3234</td>
<td align="right">5.27</td>
<td align="right">5.37</td>
<td align="right">5.25</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4394</td>
<td align="right">7.60</td>
<td align="right">7.58</td>
<td align="right">7.56</td>
<td align="center">8</td>
<td align="right">0.4210</td>
<td align="right">8.66</td>
<td align="right">9.24</td>
<td align="right">9.27</td>
<td align="center">8</td>
<td align="right">0.3754</td>
<td align="right">10.28</td>
<td align="right">11.52</td>
<td align="right">11.58</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0865</td>
<td align="right">14.43</td>
<td align="right">16.09</td>
<td align="right">11.92</td>
<td align="center">11</td>
<td align="right">0.0781</td>
<td align="right">20.19</td>
<td align="right">21.55</td>
<td align="right">17.22</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">18.83</td>
<td align="right">21.05</td>
<td align="right">16.85</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0178</td>
<td align="right">16.64</td>
<td align="right">18.26</td>
<td align="right">13.45</td>
<td align="center">13</td>
<td align="right">0.0160</td>
<td align="right">25.12</td>
<td align="right">29.48</td>
<td align="right">20.08</td>
<td align="center">14</td>
<td align="right">0.0110</td>
<td align="right">25.37</td>
<td align="right">26.90</td>
<td align="right">19.62</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>,1></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t[8],K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.3292</td>
<td align="right">7.67</td>
<td align="right">7.97</td>
<td align="right">15.08</td>
<td align="center">6</td>
<td align="right">2.2986</td>
<td align="right">13.91</td>
<td align="right">10.27</td>
<td align="right">19.76</td>
<td align="center">7</td>
<td align="right">2.3389</td>
<td align="right">13.83</td>
<td align="right">13.87</td>
<td align="right">13.86</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">7</td>
<td align="right">0.4140</td>
<td align="right">17.06</td>
<td align="right">15.61</td>
<td align="right">17.52</td>
<td align="center">7</td>
<td align="right">0.3845</td>
<td align="right">25.80</td>
<td align="right">21.21</td>
<td align="right">20.63</td>
<td align="center">10</td>
<td align="right">0.3468</td>
<td align="right">31.17</td>
<td align="right">32.58</td>
<td align="right">32.61</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">9</td>
<td align="right">0.0852</td>
<td align="right">28.89</td>
<td align="right">26.74</td>
<td align="right">21.75</td>
<td align="center">10</td>
<td align="right">0.0714</td>
<td align="right">36.21</td>
<td align="right">32.66</td>
<td align="right">24.97</td>
<td align="center">11</td>
<td align="right">0.0493</td>
<td align="right">45.58</td>
<td align="right">48.10</td>
<td align="right">47.96</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">12</td>
<td align="right">0.0196</td>
<td align="right">43.30</td>
<td align="right">35.81</td>
<td align="right">24.25</td>
<td align="center">12</td>
<td align="right">0.0152</td>
<td align="right">52.38</td>
<td align="right">40.08</td>
<td align="right">26.46</td>
<td align="center">15</td>
<td align="right">0.0076</td>
<td align="right">78.06</td>
<td align="right">72.34</td>
<td align="right">72.55</td>
</tr>
</table>
</div>
+++
== Clang 15, ARM64
+++
<div style="overflow-x: auto;">
<table class="bordered_table" style="font-size: 85%;">
<tr>
<th></th>
<th colspan="5"><code>filter<int,K></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">6</td>
<td align="right">2.1519</td>
<td align="right">7.75</td>
<td align="right">6.16</td>
<td align="right">12.93</td>
<td align="center">4</td>
<td align="right">3.3467</td>
<td align="right">2.05</td>
<td align="right">1.99</td>
<td align="right">2.00</td>
<td align="center">5</td>
<td align="right">3.0383</td>
<td align="right">2.13</td>
<td align="right">2.02</td>
<td align="right">2.04</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">9</td>
<td align="right">0.3180</td>
<td align="right">13.15</td>
<td align="right">11.04</td>
<td align="right">16.16</td>
<td align="center">5</td>
<td align="right">1.0300</td>
<td align="right">3.50</td>
<td align="right">3.47</td>
<td align="right">3.49</td>
<td align="center">6</td>
<td align="right">0.8268</td>
<td align="right">3.22</td>
<td align="right">3.16</td>
<td align="right">3.09</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0469</td>
<td align="right">30.88</td>
<td align="right">24.03</td>
<td align="right">18.38</td>
<td align="center">6</td>
<td align="right">0.4034</td>
<td align="right">6.66</td>
<td align="right">6.31</td>
<td align="right">6.56</td>
<td align="center">7</td>
<td align="right">0.2883</td>
<td align="right">6.92</td>
<td align="right">5.98</td>
<td align="right">5.87</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">14</td>
<td align="right">0.0065</td>
<td align="right">53.83</td>
<td align="right">40.29</td>
<td align="right">20.91</td>
<td align="center">7</td>
<td align="right">0.1887</td>
<td align="right">9.13</td>
<td align="right">7.94</td>
<td align="right">7.86</td>
<td align="center">8</td>
<td align="right">0.1194</td>
<td align="right">7.69</td>
<td align="right">6.46</td>
<td align="right">6.74</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4510</td>
<td align="right">2.70</td>
<td align="right">2.48</td>
<td align="right">2.56</td>
<td align="center">5</td>
<td align="right">2.3157</td>
<td align="right">2.70</td>
<td align="right">2.59</td>
<td align="right">2.58</td>
<td align="center">5</td>
<td align="right">2.7361</td>
<td align="right">2.38</td>
<td align="right">2.49</td>
<td align="right">2.50</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4207</td>
<td align="right">3.76</td>
<td align="right">4.62</td>
<td align="right">4.28</td>
<td align="center">8</td>
<td align="right">0.3724</td>
<td align="right">4.31</td>
<td align="right">4.64</td>
<td align="right">4.53</td>
<td align="center">8</td>
<td align="right">0.5415</td>
<td align="right">2.75</td>
<td align="right">3.44</td>
<td align="right">3.49</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0764</td>
<td align="right">10.95</td>
<td align="right">9.92</td>
<td align="right">9.78</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">10.68</td>
<td align="right">9.53</td>
<td align="right">9.51</td>
<td align="center">11</td>
<td align="right">0.1179</td>
<td align="right">8.69</td>
<td align="right">8.41</td>
<td align="right">5.77</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0150</td>
<td align="right">15.22</td>
<td align="right">12.68</td>
<td align="right">12.37</td>
<td align="center">14</td>
<td align="right">0.0122</td>
<td align="right">14.96</td>
<td align="right">12.90</td>
<td align="right">12.72</td>
<td align="center">13</td>
<td align="right">0.0275</td>
<td align="right">10.43</td>
<td align="right">11.08</td>
<td align="right">6.61</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4788</td>
<td align="right">2.39</td>
<td align="right">2.51</td>
<td align="right">2.54</td>
<td align="center">5</td>
<td align="right">2.4510</td>
<td align="right">2.72</td>
<td align="right">2.51</td>
<td align="right">2.55</td>
<td align="center">5</td>
<td align="right">2.3157</td>
<td align="right">2.71</td>
<td align="right">2.57</td>
<td align="right">2.59</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4394</td>
<td align="right">2.94</td>
<td align="right">3.10</td>
<td align="right">3.03</td>
<td align="center">8</td>
<td align="right">0.4207</td>
<td align="right">3.70</td>
<td align="right">3.88</td>
<td align="right">3.88</td>
<td align="center">8</td>
<td align="right">0.3724</td>
<td align="right">4.26</td>
<td align="right">4.68</td>
<td align="right">4.39</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0865</td>
<td align="right">8.29</td>
<td align="right">8.49</td>
<td align="right">5.82</td>
<td align="center">11</td>
<td align="right">0.0764</td>
<td align="right">10.94</td>
<td align="right">9.88</td>
<td align="right">9.73</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">11.28</td>
<td align="right">9.95</td>
<td align="right">9.82</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0178</td>
<td align="right">10.41</td>
<td align="right">10.88</td>
<td align="right">6.60</td>
<td align="center">13</td>
<td align="right">0.0150</td>
<td align="right">16.00</td>
<td align="right">12.90</td>
<td align="right">13.27</td>
<td align="center">14</td>
<td align="right">0.0122</td>
<td align="right">15.77</td>
<td align="right">13.47</td>
<td align="right">13.55</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>,1></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t[8],K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.3292</td>
<td align="right">4.64</td>
<td align="right">4.30</td>
<td align="right">11.29</td>
<td align="center">6</td>
<td align="right">2.2986</td>
<td align="right">8.72</td>
<td align="right">4.92</td>
<td align="right">13.50</td>
<td align="center">7</td>
<td align="right">2.3389</td>
<td align="right">8.87</td>
<td align="right">6.65</td>
<td align="right">6.71</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">7</td>
<td align="right">0.4140</td>
<td align="right">9.37</td>
<td align="right">8.45</td>
<td align="right">13.03</td>
<td align="center">7</td>
<td align="right">0.3845</td>
<td align="right">13.33</td>
<td align="right">7.80</td>
<td align="right">12.91</td>
<td align="center">10</td>
<td align="right">0.3468</td>
<td align="right">14.57</td>
<td align="right">12.25</td>
<td align="right">12.16</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">9</td>
<td align="right">0.0852</td>
<td align="right">16.42</td>
<td align="right">13.68</td>
<td align="right">14.25</td>
<td align="center">10</td>
<td align="right">0.0714</td>
<td align="right">21.98</td>
<td align="right">15.88</td>
<td align="right">16.60</td>
<td align="center">11</td>
<td align="right">0.0493</td>
<td align="right">26.05</td>
<td align="right">21.96</td>
<td align="right">23.13</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">12</td>
<td align="right">0.0196</td>
<td align="right">23.13</td>
<td align="right">17.52</td>
<td align="right">15.45</td>
<td align="center">12</td>
<td align="right">0.0152</td>
<td align="right">28.91</td>
<td align="right">22.21</td>
<td align="right">17.26</td>
<td align="center">15</td>
<td align="right">0.0076</td>
<td align="right">49.71</td>
<td align="right">38.19</td>
<td align="right">39.07</td>
</tr>
</table>
</div>
+++
== VS 2022, x64
+++
<div style="overflow-x: auto;">
<table class="bordered_table" style="font-size: 85%;">
<tr>
<th></th>
<th colspan="5"><code>filter<int,K></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t,K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">6</td>
<td align="right">2.1519</td>
<td align="right">11.10</td>
<td align="right">11.87</td>
<td align="right">15.76</td>
<td align="center">4</td>
<td align="right">3.3467</td>
<td align="right">4.21</td>
<td align="right">3.84</td>
<td align="right">3.79</td>
<td align="center">5</td>
<td align="right">3.0383</td>
<td align="right">4.72</td>
<td align="right">4.58</td>
<td align="right">4.52</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">9</td>
<td align="right">0.3180</td>
<td align="right">18.05</td>
<td align="right">18.04</td>
<td align="right">16.58</td>
<td align="center">5</td>
<td align="right">1.0300</td>
<td align="right">6.22</td>
<td align="right">5.70</td>
<td align="right">5.67</td>
<td align="center">6</td>
<td align="right">0.8268</td>
<td align="right">7.09</td>
<td align="right">6.91</td>
<td align="right">6.79</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0469</td>
<td align="right">68.24</td>
<td align="right">79.45</td>
<td align="right">25.94</td>
<td align="center">6</td>
<td align="right">0.4034</td>
<td align="right">16.32</td>
<td align="right">13.98</td>
<td align="right">13.97</td>
<td align="center">7</td>
<td align="right">0.2883</td>
<td align="right">16.42</td>
<td align="right">16.00</td>
<td align="right">16.02</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">14</td>
<td align="right">0.0065</td>
<td align="right">102.36</td>
<td align="right">117.69</td>
<td align="right">31.08</td>
<td align="center">7</td>
<td align="right">0.1887</td>
<td align="right">20.87</td>
<td align="right">19.33</td>
<td align="right">19.26</td>
<td align="center">8</td>
<td align="right">0.1194</td>
<td align="right">20.70</td>
<td align="right">22.48</td>
<td align="right">22.55</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t,K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4510</td>
<td align="right">6.10</td>
<td align="right">4.69</td>
<td align="right">4.60</td>
<td align="center">5</td>
<td align="right">2.3157</td>
<td align="right">8.57</td>
<td align="right">5.05</td>
<td align="right">4.97</td>
<td align="center">5</td>
<td align="right">2.7361</td>
<td align="right">3.17</td>
<td align="right">2.40</td>
<td align="right">2.31</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4207</td>
<td align="right">10.18</td>
<td align="right">8.79</td>
<td align="right">8.59</td>
<td align="center">8</td>
<td align="right">0.3724</td>
<td align="right">14.85</td>
<td align="right">9.56</td>
<td align="right">9.29</td>
<td align="center">8</td>
<td align="right">0.5415</td>
<td align="right">4.81</td>
<td align="right">4.92</td>
<td align="right">4.34</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0764</td>
<td align="right">26.70</td>
<td align="right">23.24</td>
<td align="right">23.54</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">29.69</td>
<td align="right">27.85</td>
<td align="right">27.90</td>
<td align="center">11</td>
<td align="right">0.1179</td>
<td align="right">14.92</td>
<td align="right">16.50</td>
<td align="right">11.60</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0150</td>
<td align="right">36.05</td>
<td align="right">34.93</td>
<td align="right">35.15</td>
<td align="center">14</td>
<td align="right">0.0122</td>
<td align="right">39.81</td>
<td align="right">38.16</td>
<td align="right">38.14</td>
<td align="center">13</td>
<td align="right">0.0275</td>
<td align="right">16.37</td>
<td align="right">17.89</td>
<td align="right">12.37</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,fast_multiblock32<K>,1></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>></code></th>
<th colspan="5"><code>filter<int,1,fast_multiblock64<K>,1></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.4788</td>
<td align="right">3.18</td>
<td align="right">2.26</td>
<td align="right">2.16</td>
<td align="center">5</td>
<td align="right">2.4546</td>
<td align="right">4.08</td>
<td align="right">3.48</td>
<td align="right">3.43</td>
<td align="center">5</td>
<td align="right">2.3234</td>
<td align="right">4.17</td>
<td align="right">3.40</td>
<td align="right">3.33</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">8</td>
<td align="right">0.4394</td>
<td align="right">5.21</td>
<td align="right">5.56</td>
<td align="right">4.70</td>
<td align="center">8</td>
<td align="right">0.4210</td>
<td align="right">6.73</td>
<td align="right">6.13</td>
<td align="right">5.67</td>
<td align="center">8</td>
<td align="right">0.3754</td>
<td align="right">7.65</td>
<td align="right">6.64</td>
<td align="right">5.69</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">11</td>
<td align="right">0.0865</td>
<td align="right">15.06</td>
<td align="right">15.45</td>
<td align="right">10.99</td>
<td align="center">11</td>
<td align="right">0.0781</td>
<td align="right">23.17</td>
<td align="right">18.49</td>
<td align="right">15.69</td>
<td align="center">11</td>
<td align="right">0.0642</td>
<td align="right">20.82</td>
<td align="right">19.11</td>
<td align="right">16.18</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">13</td>
<td align="right">0.0178</td>
<td align="right">16.74</td>
<td align="right">17.88</td>
<td align="right">12.32</td>
<td align="center">13</td>
<td align="right">0.0160</td>
<td align="right">28.66</td>
<td align="right">26.92</td>
<td align="right">18.97</td>
<td align="center">14</td>
<td align="right">0.0110</td>
<td align="right">28.58</td>
<td align="right">26.87</td>
<td align="right">19.11</td>
</tr>
<tr>
<th></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>></code></th>
<th colspan="5"><code>filter<int,1,block<uint64_t[8],K>,1></code></th>
<th colspan="5"><code>filter<int,1,multiblock<uint64_t[8],K>></code></th>
</tr>
<tr>
<th>c</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
<th>K</th>
<th>FPR<br/>[%]</th>
<th>ins.</th>
<th>succ.<br/>lkp.</th>
<th>uns.<br/>lkp.</th>
</tr>
<tr>
<td align="center">8</td>
<td align="center">5</td>
<td align="right">2.3292</td>
<td align="right">7.72</td>
<td align="right">7.43</td>
<td align="right">11.95</td>
<td align="center">6</td>
<td align="right">2.2986</td>
<td align="right">10.68</td>
<td align="right">9.72</td>
<td align="right">14.95</td>
<td align="center">7</td>
<td align="right">2.3389</td>
<td align="right">11.52</td>
<td align="right">10.03</td>
<td align="right">10.06</td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">7</td>
<td align="right">0.4140</td>
<td align="right">11.37</td>
<td align="right">12.06</td>
<td align="right">13.71</td>
<td align="center">7</td>
<td align="right">0.3845</td>
<td align="right">14.52</td>
<td align="right">13.96</td>
<td align="right">14.46</td>
<td align="center">10</td>
<td align="right">0.3468</td>
<td align="right">15.45</td>
<td align="right">14.39</td>
<td align="right">14.26</td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">9</td>
<td align="right">0.0852</td>
<td align="right">25.26</td>
<td align="right">25.52</td>
<td align="right">19.68</td>
<td align="center">10</td>
<td align="right">0.0714</td>
<td align="right">33.28</td>
<td align="right">32.53</td>
<td align="right">20.02</td>
<td align="center">11</td>
<td align="right">0.0493</td>
<td align="right">41.18</td>
<td align="right">40.24</td>
<td align="right">40.31</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">12</td>
<td align="right">0.0196</td>
<td align="right">35.58</td>
<td align="right">34.62</td>
<td align="right">22.93</td>
<td align="center">12</td>
<td align="right">0.0152</td>
<td align="right">42.87</td>
<td align="right">41.63</td>
<td align="right">22.03</td>
<td align="center">15</td>
<td align="right">0.0076</td>
<td align="right">68.99</td>
<td align="right">64.79</td>
<td align="right">64.87</td>
</tr>
</table>
+++