tlx
Loading...
Searching...
No Matches
SSClassifyTreeUnrollInterleave< key_type, TreeBits, Rollout > Class Template Reference

Sample Sort Classification Tree Unrolled and Interleaved. More...

#include <sample_sort_tools.hpp>

Public Member Functions

void build (key_type *samples, size_t samplesize, unsigned char *splitter_lcp)
 build tree and splitter array from sample
 
unsigned int find_bkt (const key_type &key) const
 binary search on splitter array for bucket number
 
void find_bkt_unroll (const key_type key[Rollout], std::uint16_t obkt[Rollout]) const
 search in splitter tree for bucket number, unrolled for Rollout keys at once.
 
template<typename StringSet >
void classify (const StringSet &strset, typename StringSet::Iterator begin, typename StringSet::Iterator end, std::uint16_t *bktout, size_t depth) const
 classify all strings in area by walking tree and saving bucket id
 
key_type get_splitter (unsigned int i) const
 return a splitter
 

Static Public Attributes

static const size_t treebits
 
static const size_t num_splitters
 

Private Attributes

key_type splitter_ [num_splitters]
 
key_type splitter_tree_ [num_splitters+1]
 

Detailed Description

template<typename key_type, size_t TreeBits, size_t Rollout = 4>
class tlx::sort_strings_detail::SSClassifyTreeUnrollInterleave< key_type, TreeBits, Rollout >

Sample Sort Classification Tree Unrolled and Interleaved.

Definition at line 337 of file sample_sort_tools.hpp.

Member Function Documentation

◆ build()

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
void build ( key_type * samples,
size_t samplesize,
unsigned char * splitter_lcp )
inline

build tree and splitter array from sample

Definition at line 344 of file sample_sort_tools.hpp.

◆ classify()

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
template<typename StringSet >
void classify ( const StringSet & strset,
typename StringSet::Iterator begin,
typename StringSet::Iterator end,
std::uint16_t * bktout,
size_t depth ) const
inline

classify all strings in area by walking tree and saving bucket id

Definition at line 442 of file sample_sort_tools.hpp.

◆ find_bkt()

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
unsigned int find_bkt ( const key_type & key) const
inline

binary search on splitter array for bucket number

Definition at line 352 of file sample_sort_tools.hpp.

◆ find_bkt_unroll()

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
void find_bkt_unroll ( const key_type key[Rollout],
std::uint16_t obkt[Rollout] ) const
inline

search in splitter tree for bucket number, unrolled for Rollout keys at once.

Definition at line 377 of file sample_sort_tools.hpp.

◆ get_splitter()

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
key_type get_splitter ( unsigned int i) const
inline

return a splitter

Definition at line 467 of file sample_sort_tools.hpp.

Member Data Documentation

◆ num_splitters

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
const size_t num_splitters
static

Definition at line 341 of file sample_sort_tools.hpp.

◆ splitter_

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
key_type splitter_[num_splitters]
private

Definition at line 471 of file sample_sort_tools.hpp.

◆ splitter_tree_

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
key_type splitter_tree_[num_splitters+1]
private

Definition at line 472 of file sample_sort_tools.hpp.

◆ treebits

template<typename key_type , size_t TreeBits, size_t Rollout = 4>
const size_t treebits
static

Definition at line 340 of file sample_sort_tools.hpp.


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