Thrill  0.1
sample_sort_tools.hpp File Reference
#include <tlx/sort/strings/string_set.hpp>
#include <tlx/define/attribute_fallthrough.hpp>
#include <tlx/die/core.hpp>
#include <tlx/logger/core.hpp>
#include <tlx/math/clz.hpp>
#include <tlx/math/ctz.hpp>
#include <tlx/string/hexdump.hpp>
#include <algorithm>
#include <cassert>
#include <cstddef>
+ Include dependency graph for sample_sort_tools.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PerfectTreeCalculations< TreeBits >
 Class to transform in-order to level-order indexes in a perfect binary tree. More...
 
class  SSClassifyEqualUnroll< key_type, TreeBits >
 Sample Sort Classification Tree Unrolled with Equal Comparisons. More...
 
class  SSClassifyTreeCalcUnrollInterleave< key_type, TreeBits, Rollout >
 
class  SSClassifyTreeUnrollInterleave< key_type, TreeBits, Rollout >
 Sample Sort Classification Tree Unrolled and Interleaved. More...
 
class  SSTreeBuilderLevelOrder< key_type, num_splitters >
 
class  SSTreeBuilderPreAndLevelOrder< key_type, num_splitters >
 

Namespaces

 tlx
 
 tlx::sort_strings_detail
 

Macros

#define TLX_CLASSIFY_TREE_STEP
 
#define TLX_CLASSIFY_TREE_STEP
 
#define TLX_CLASSIFY_TREE_STEP
 

Functions

static void perfect_tree_calculations_self_verify ()
 
template<typename Type >
static std::string to_binary (Type v, const size_t width=(8 *sizeof(Type)))
 represent binary digits of large integer datatypes More...
 

Macro Definition Documentation

◆ TLX_CLASSIFY_TREE_STEP [1/3]

#define TLX_CLASSIFY_TREE_STEP
Value:
for (size_t u = 0; u < Rollout; ++u) { \
i[u] = 2 * i[u] + (key[u] <= splitter_tree_[i[u]] ? 0 : 1); \
} \
TLX_ATTRIBUTE_FALLTHROUGH;

Definition at line 613 of file sample_sort_tools.hpp.

Referenced by SSClassifyEqualUnroll< key_type, TreeBits >::find_bkt(), SSClassifyTreeUnrollInterleave< key_type, TreeBits, Rollout >::find_bkt_unroll(), and SSClassifyTreeCalcUnrollInterleave< key_type, TreeBits, Rollout >::find_bkt_unroll().

◆ TLX_CLASSIFY_TREE_STEP [2/3]

#define TLX_CLASSIFY_TREE_STEP
Value:
if (TLX_UNLIKELY(key == splitter_tree_[i])) { \
return \
2 * PerfectTreeCalculations<treebits>::level_to_preorder(i) - 1; \
} \
i = 2 * i + (key < splitter_tree_[i] ? 0 : 1); \
TLX_ATTRIBUTE_FALLTHROUGH;
#define TLX_UNLIKELY(c)
Definition: likely.hpp:24

Definition at line 613 of file sample_sort_tools.hpp.

◆ TLX_CLASSIFY_TREE_STEP [3/3]

#define TLX_CLASSIFY_TREE_STEP
Value:
for (size_t u = 0; u < Rollout; ++u) { \
i[u] = 2 * i[u] + (key[u] <= splitter_tree_[i[u]] ? 0 : 1); \
} \
TLX_ATTRIBUTE_FALLTHROUGH;

Definition at line 613 of file sample_sort_tools.hpp.