tlx
radix_heap.hpp File Reference
#include <array>
#include <cassert>
#include <cstddef>
#include <limits>
#include <type_traits>
#include <utility>
#include <vector>
#include <tlx/define/likely.hpp>
#include <tlx/math/clz.hpp>
#include <tlx/math/div_ceil.hpp>
#include <tlx/math/ffs.hpp>
#include <tlx/meta/log2.hpp>

Go to the source code of this file.

Classes

class  IntegerRank< Int >
 Compute the rank of an integer x (i.e. More...
 
class  BitArrayRecursive< Size, SizeIsAtmost64 >
 Internal implementation of BitArray; do not invoke directly. More...
 
class  BitArrayRecursive< Size, false >
 
class  BitArrayRecursive< Size, true >
 
class  BitArray< Size >
 A BitArray of fixed size supporting reading, setting, and clearing of individual bits. More...
 
class  BucketComputation< Radix, Int >
 
struct  PairKeyExtract< KeyType, DataType >
 Used as an adapter to implement RadixHeapPair on top of RadixHeap. More...
 
class  RadixHeap< ValueType, KeyExtract, KeyType, Radix >
 This class implements a monotonic integer min priority queue, more specific a multi-level radix heap. More...
 

Namespaces

 tlx
 
 tlx::radix_heap_detail
 

Typedefs

template<typename KeyType , typename DataType , unsigned Radix = 8>
using RadixHeapPair = RadixHeap< std::pair< KeyType, DataType >, radix_heap_detail::PairKeyExtract< KeyType, DataType >, KeyType, Radix >
 This class is a variant of tlx::RadixHeap for data types which do not include the key directly. More...
 

Functions

template<typename DataType , unsigned Radix = 8, typename KeyExtract = void>
auto make_radix_heap (KeyExtract &&key_extract) -> RadixHeap< DataType, KeyExtract, decltype(key_extract(std::declval< DataType >())), Radix >
 Helper to easily derive type of RadixHeap for a pre-C++17 compiler. More...