IOSS 2.0
Loading...
Searching...
No Matches
tsl::hh::mod_growth_policy< GrowthFactor > Class Template Reference

#include <hopscotch_growth_policy.h>

Public Member Functions

 mod_growth_policy (std::size_t &min_bucket_count_in_out)
 
std::size_t bucket_for_hash (std::size_t hash) const noexcept
 
std::size_t next_bucket_count () const
 
std::size_t max_bucket_count () const
 
void clear () noexcept
 

Private Attributes

std::size_t m_mod
 

Static Private Attributes

static constexpr double REHASH_SIZE_MULTIPLICATION_FACTOR
 
static const std::size_t MAX_BUCKET_COUNT
 

Detailed Description

template<class GrowthFactor = std::ratio<3, 2>>
class tsl::hh::mod_growth_policy< GrowthFactor >

Grow the hash table by GrowthFactor::num / GrowthFactor::den and use a modulo to map a hash to a bucket. Slower but it can be useful if you want a slower growth.

Constructor & Destructor Documentation

◆ mod_growth_policy()

template<class GrowthFactor = std::ratio<3, 2>>
tsl::hh::mod_growth_policy< GrowthFactor >::mod_growth_policy ( std::size_t & min_bucket_count_in_out)
inlineexplicit

Member Function Documentation

◆ bucket_for_hash()

template<class GrowthFactor = std::ratio<3, 2>>
std::size_t tsl::hh::mod_growth_policy< GrowthFactor >::bucket_for_hash ( std::size_t hash) const
inlinenoexcept

◆ clear()

template<class GrowthFactor = std::ratio<3, 2>>
void tsl::hh::mod_growth_policy< GrowthFactor >::clear ( )
inlinenoexcept

◆ max_bucket_count()

template<class GrowthFactor = std::ratio<3, 2>>
std::size_t tsl::hh::mod_growth_policy< GrowthFactor >::max_bucket_count ( ) const
inline

◆ next_bucket_count()

template<class GrowthFactor = std::ratio<3, 2>>
std::size_t tsl::hh::mod_growth_policy< GrowthFactor >::next_bucket_count ( ) const
inline

Member Data Documentation

◆ m_mod

template<class GrowthFactor = std::ratio<3, 2>>
std::size_t tsl::hh::mod_growth_policy< GrowthFactor >::m_mod
private

◆ MAX_BUCKET_COUNT

template<class GrowthFactor = std::ratio<3, 2>>
const std::size_t tsl::hh::mod_growth_policy< GrowthFactor >::MAX_BUCKET_COUNT
staticprivate
Initial value:
= std::size_t(
double(std::numeric_limits<std::size_t>::max() / REHASH_SIZE_MULTIPLICATION_FACTOR))
static constexpr double REHASH_SIZE_MULTIPLICATION_FACTOR
Definition hopscotch_growth_policy.h:220

◆ REHASH_SIZE_MULTIPLICATION_FACTOR

template<class GrowthFactor = std::ratio<3, 2>>
double tsl::hh::mod_growth_policy< GrowthFactor >::REHASH_SIZE_MULTIPLICATION_FACTOR
staticconstexprprivate
Initial value:
=
1.0 * GrowthFactor::num / GrowthFactor::den

The documentation for this class was generated from the following file: