[#fast_multiblock64]
== Class Template `fast_multiblock64`

:idprefix: fast_multiblock64_

`boost::bloom::fast_multiblock64` -- A faster replacement of
`xref:multiblock[multiblock]<std::uint64_t, K>`.

=== Synopsis

[listing,subs="+macros,+quotes"]
-----
// #include <boost/bloom/fast_multiblock64.hpp>

namespace boost{
namespace bloom{

template<std::size_t K>
struct fast_multiblock64
{
  static constexpr std::size_t k               = K;
  using value_type                             = _implementation-defined_;

  // might not be present
  static constexpr std::size_t used_value_size = _implementation-defined_;

  // the rest of the interface is not public

} // namespace bloom
} // namespace boost
-----

=== Description

*Template Parameters*

[cols="1,4"]
|===

|`K`
| Number of bits set/checked per operation. Must be greater than zero.

|===

`fast_multiblock64<K>` is statistically equivalent to
`xref:multiblock[multiblock]<std::uint64_t, K>`, but takes advantage
of selected SIMD technologies, when available at compile time, to perform faster.
Currently supported: AVX2.
The non-SIMD case falls back to regular `multiblock`.

`xref:subfilters_used_value_size[_used-value-size_]<fast_multiblock64<K>>` is
`8 * K`.
