Thrill  0.1
BitArrayRecursive< Size, false > Class Template Reference

Detailed Description

template<size_t Size>
class tlx::radix_heap_detail::BitArrayRecursive< Size, false >

Definition at line 93 of file radix_heap.hpp.

#include <radix_heap.hpp>

Public Member Functions

 BitArrayRecursive () noexcept=default
 
 BitArrayRecursive (const BitArrayRecursive &) noexcept=default
 
 BitArrayRecursive (BitArrayRecursive &&) noexcept=default
 
void clear_all ()
 
void clear_bit (const size_t i)
 
bool empty () const
 
size_t find_lsb () const
 
bool is_set (const size_t i) const
 
BitArrayRecursiveoperator= (const BitArrayRecursive &) noexcept=default
 
BitArrayRecursiveoperator= (BitArrayRecursive &&) noexcept=default
 
void set_bit (const size_t i)
 

Static Public Attributes

static constexpr size_t size = Size
 

Private Types

using child_array_type = std::array< child_type, root_size >
 
using child_type = BitArrayRecursive< 1llu<< child_width, child_width<=6 >
 
using root_type = BitArrayRecursive< root_size<=32 ? 32 :64, true >
 

Private Member Functions

std::pair< size_t, size_t > get_index_ (size_t i) const
 

Private Attributes

child_array_type children_
 
root_type root_
 

Static Private Attributes

static constexpr size_t child_width = width - root_width
 
static constexpr size_t leaf_width = 6
 
static constexpr size_t root_size = div_ceil(Size, child_type::size)
 
static constexpr size_t root_width
 
static constexpr size_t width = tlx::Log2<Size>::ceil
 

Member Typedef Documentation

◆ child_array_type

using child_array_type = std::array<child_type, root_size>
private

Definition at line 108 of file radix_heap.hpp.

◆ child_type

using child_type = BitArrayRecursive<1llu << child_width, child_width <= 6>
private

Definition at line 103 of file radix_heap.hpp.

◆ root_type

using root_type = BitArrayRecursive<root_size <= 32 ? 32 : 64, true>
private

Definition at line 106 of file radix_heap.hpp.

Constructor & Destructor Documentation

◆ BitArrayRecursive() [1/3]

BitArrayRecursive ( )
explicitdefaultnoexcept

◆ BitArrayRecursive() [2/3]

BitArrayRecursive ( const BitArrayRecursive< Size, false > &  )
defaultnoexcept

◆ BitArrayRecursive() [3/3]

BitArrayRecursive ( BitArrayRecursive< Size, false > &&  )
defaultnoexcept

Member Function Documentation

◆ clear_all()

void clear_all ( )
inline

Definition at line 137 of file radix_heap.hpp.

◆ clear_bit()

void clear_bit ( const size_t  i)
inline

Definition at line 125 of file radix_heap.hpp.

◆ empty()

bool empty ( ) const
inline

Definition at line 143 of file radix_heap.hpp.

◆ find_lsb()

size_t find_lsb ( ) const
inline

Definition at line 147 of file radix_heap.hpp.

◆ get_index_()

std::pair<size_t, size_t> get_index_ ( size_t  i) const
inlineprivate

Definition at line 160 of file radix_heap.hpp.

◆ is_set()

bool is_set ( const size_t  i) const
inline

Definition at line 132 of file radix_heap.hpp.

◆ operator=() [1/2]

BitArrayRecursive& operator= ( const BitArrayRecursive< Size, false > &  )
defaultnoexcept

◆ operator=() [2/2]

BitArrayRecursive& operator= ( BitArrayRecursive< Size, false > &&  )
defaultnoexcept

◆ set_bit()

void set_bit ( const size_t  i)
inline

Definition at line 119 of file radix_heap.hpp.

Member Data Documentation

◆ child_width

constexpr size_t child_width = width - root_width
staticprivate

Definition at line 102 of file radix_heap.hpp.

◆ children_

child_array_type children_
private

Definition at line 157 of file radix_heap.hpp.

◆ leaf_width

constexpr size_t leaf_width = 6
staticprivate

Definition at line 95 of file radix_heap.hpp.

◆ root_

root_type root_
private

Definition at line 158 of file radix_heap.hpp.

◆ root_size

constexpr size_t root_size = div_ceil(Size, child_type::size)
staticprivate

Definition at line 105 of file radix_heap.hpp.

◆ root_width

constexpr size_t root_width
staticprivate
Initial value:
: leaf_width

Definition at line 99 of file radix_heap.hpp.

◆ size

constexpr size_t size = Size
static

Definition at line 111 of file radix_heap.hpp.

◆ width

constexpr size_t width = tlx::Log2<Size>::ceil
staticprivate

Definition at line 96 of file radix_heap.hpp.


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