Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

immer::detail::hamts Namespace Reference

Classes

struct  champ
 
struct  champ_iterator
 
struct  get_bitmap_type
 
struct  get_bitmap_type< 6u >
 
struct  node
 

Typedefs

using size_t = std::size_t
 
using hash_t = std::size_t
 
using bits_t = std::uint32_t
 
using count_t = std::uint32_t
 
using shift_t = std::uint32_t
 

Functions

auto popcount_fallback (std::uint32_t x)
 
auto popcount_fallback (std::uint64_t x)
 
count_t popcount (std::uint32_t x)
 
count_t popcount (std::uint64_t x)
 

Variables

template<bits_t B, typename T = count_t>
constexpr T branches = T{1u} << B
 
template<bits_t B, typename T = size_t>
constexpr T mask = branches<B, T> - 1u
 
template<bits_t B, typename T = count_t>
constexpr T max_depth = (sizeof(hash_t) * 8u + B - 1u) / B
 
template<bits_t B, typename T = count_t>
constexpr T max_shift = max_depth<B, count_t> * B
 

Typedef Documentation

◆ bits_t

using immer::detail::hamts::bits_t = typedef std::uint32_t

Definition at line 23 of file bits.hpp.

◆ count_t

using immer::detail::hamts::count_t = typedef std::uint32_t

Definition at line 24 of file bits.hpp.

◆ hash_t

using immer::detail::hamts::hash_t = typedef std::size_t

Definition at line 22 of file bits.hpp.

◆ shift_t

using immer::detail::hamts::shift_t = typedef std::uint32_t

Definition at line 25 of file bits.hpp.

◆ size_t

using immer::detail::hamts::size_t = typedef std::size_t

Definition at line 21 of file bits.hpp.

Function Documentation

◆ popcount() [1/2]

count_t immer::detail::hamts::popcount ( std::uint32_t  x)
inline

Definition at line 73 of file bits.hpp.

Referenced by immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::copy_inner_insert_value(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::copy_inner_remove_value(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::copy_inner_replace(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::copy_inner_replace_inline(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::copy_inner_replace_merged(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::copy_inner_replace_value(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::delete_deep(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::delete_deep_shift(), immer::detail::hamts::node< T, Hash, Equal, MemoryPolicy, B >::delete_inner(), immer::detail::hamts::champ< value_t, hash_key, equal_key, MemoryPolicy, B >::do_add(), immer::detail::hamts::champ< value_t, hash_key, equal_key, MemoryPolicy, B >::do_sub(), immer::detail::hamts::champ< value_t, hash_key, equal_key, MemoryPolicy, B >::do_update(), immer::detail::hamts::champ< value_t, hash_key, equal_key, MemoryPolicy, B >::equals_tree(), immer::detail::hamts::champ< value_t, hash_key, equal_key, MemoryPolicy, B >::for_each_chunk_traversal(), immer::detail::hamts::champ< value_t, hash_key, equal_key, MemoryPolicy, B >::get(), immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_down(), and immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_right().

◆ popcount() [2/2]

count_t immer::detail::hamts::popcount ( std::uint64_t  x)
inline

Definition at line 86 of file bits.hpp.

◆ popcount_fallback() [1/2]

auto immer::detail::hamts::popcount_fallback ( std::uint32_t  x)
inline

Definition at line 55 of file bits.hpp.

◆ popcount_fallback() [2/2]

auto immer::detail::hamts::popcount_fallback ( std::uint64_t  x)
inline

Definition at line 66 of file bits.hpp.

Variable Documentation

◆ branches

template<bits_t B, typename T = count_t>
constexpr T immer::detail::hamts::branches = T{1u} << B

Definition at line 42 of file bits.hpp.

◆ mask

template<bits_t B, typename T = size_t>
constexpr T immer::detail::hamts::mask = branches<B, T> - 1u

◆ max_depth

template<bits_t B, typename T = count_t>
constexpr T immer::detail::hamts::max_depth = (sizeof(hash_t) * 8u + B - 1u) / B

Definition at line 48 of file bits.hpp.

◆ max_shift

template<bits_t B, typename T = count_t>
constexpr T immer::detail::hamts::max_shift = max_depth<B, count_t> * B

Definition at line 51 of file bits.hpp.

Released under the MIT license