tudocomp
– The TU Dortmund Compression Framework
tdc::lz78::HashTrie< HashFunction, HashProber, HashManager > Class Template Reference

#include <HashTrie.hpp>

Inheritance diagram for tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >:
tdc::Algorithm tdc::lz78::LZ78Trie<>

Public Member Functions

 HashTrie (Env &&env, const size_t n, const size_t &remaining_characters, factorid_t reserve=0)
 
 IF_STATS (MoveGuard m_guard;inline ~HashTrie() { if(m_guard) { m_table.collect_stats(env());} }) HashTrie(HashTrie &&other)=default
 
HashTrie & operator= (HashTrie &&other)=default
 
node_t add_rootnode (uliteral_t c)
 
node_t get_rootnode (uliteral_t c) const
 
void clear ()
 
node_t find_or_insert (const node_t &parent_w, uliteral_t c)
 
size_t size () const
 
- Public Member Functions inherited from tdc::Algorithm
virtual ~Algorithm ()=default
 
 Algorithm (Algorithm const &)=default
 
 Algorithm (Algorithm &&)=default
 
Algorithm & operator= (Algorithm const &)=default
 
Algorithm & operator= (Algorithm &&)=default
 
 Algorithm (Env &&env)
 Instantiates an algorithm in the specified environment. More...
 
Env & env ()
 Provides access to the environment that the algorithm works in. More...
 
const Env & env () const
 

Static Public Member Functions

static Meta meta ()
 

Additional Inherited Members

- Public Types inherited from tdc::lz78::LZ78Trie<>
using node_t = LZ78TrieNode
 
- Protected Member Functions inherited from tdc::lz78::LZ78Trie<>
 LZ78Trie (const size_t n, const size_t &remaining_characters)
 
size_t expected_number_of_remaining_elements (const size_t z) const
 
node_t add_rootnode (uliteral_t c)
 The dictionary can store multiple root nodes For LZ78, we use a root node with the id = c = 0. More...
 
node_t get_rootnode (uliteral_t c) const
 Returns the root node corresponding to literal c. More...
 
void clear ()
 Erases the contents of the dictionary. More...
 
node_t find_or_insert (const node_t &parent, uliteral_t c)
 Searches a pair (parent, c). More...
 
size_t size () const
 Returns the number of entries, plus the number of rootnodes. More...
 

Detailed Description

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
class tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >

Definition at line 14 of file HashTrie.hpp.

Constructor & Destructor Documentation

◆ HashTrie()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::HashTrie ( Env &&  env,
const size_t  n,
const size_t &  remaining_characters,
factorid_t  reserve = 0 
)
inline

Definition at line 27 of file HashTrie.hpp.

Member Function Documentation

◆ add_rootnode()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
node_t tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::add_rootnode ( uliteral_t  c)
inline

Definition at line 49 of file HashTrie.hpp.

◆ clear()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
void tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::clear ( )
inline

Definition at line 63 of file HashTrie.hpp.

◆ find_or_insert()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
node_t tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::find_or_insert ( const node_t &  parent_w,
uliteral_t  c 
)
inline

if we add a new node, its index will be equal to the current size of the dictionary

Definition at line 68 of file HashTrie.hpp.

◆ get_rootnode()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
node_t tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::get_rootnode ( uliteral_t  c) const
inline

Definition at line 59 of file HashTrie.hpp.

◆ IF_STATS()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::IF_STATS ( MoveGuard m_guard;inline ~HashTrie< HashFunction, HashProber, HashManager >() { if(m_guard) { m_table.collect_stats(env());} }  ) &&
default

◆ meta()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
static Meta tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::meta ( )
inlinestatic

Definition at line 18 of file HashTrie.hpp.

◆ operator=()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
HashTrie& tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::operator= ( HashTrie< HashFunction, HashProber, HashManager > &&  other)
default

◆ size()

template<class HashFunction = MixHasher, class HashProber = LinearProber, class HashManager = SizeManagerPow2>
size_t tdc::lz78::HashTrie< HashFunction, HashProber, HashManager >::size ( ) const
inline

Definition at line 82 of file HashTrie.hpp.


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