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

#include <RollingTrie.hpp>

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

Public Member Functions

 RollingTrie (Env &&env, const size_t n, const size_t &remaining_characters, factorid_t reserve=0)
 
 IF_STATS (MoveGuard m_guard;inline ~RollingTrie() { if(m_guard) { m_table.collect_stats(env());} }) RollingTrie(RollingTrie &&other)=default
 
RollingTrie & operator= (RollingTrie &&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 &, 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<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
class tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >

Definition at line 17 of file RollingTrie.hpp.

Constructor & Destructor Documentation

◆ RollingTrie()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::RollingTrie ( Env &&  env,
const size_t  n,
const size_t &  remaining_characters,
factorid_t  reserve = 0 
)
inline

Definition at line 37 of file RollingTrie.hpp.

Member Function Documentation

◆ add_rootnode()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
node_t tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::add_rootnode ( uliteral_t  c)
inline

Definition at line 59 of file RollingTrie.hpp.

◆ clear()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
void tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::clear ( )
inline

Definition at line 70 of file RollingTrie.hpp.

◆ find_or_insert()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
node_t tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::find_or_insert ( const node_t &  ,
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 74 of file RollingTrie.hpp.

◆ get_rootnode()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
node_t tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::get_rootnode ( uliteral_t  c) const
inline

Definition at line 65 of file RollingTrie.hpp.

◆ IF_STATS()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::IF_STATS ( MoveGuard m_guard;inline ~RollingTrie< HashRoller, HashProber, HashManager, HashFunction >() { if(m_guard) { m_table.collect_stats(env());} }  ) &&
default

◆ meta()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
static Meta tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::meta ( )
inlinestatic

Definition at line 28 of file RollingTrie.hpp.

◆ operator=()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
RollingTrie& tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::operator= ( RollingTrie< HashRoller, HashProber, HashManager, HashFunction > &&  other)
default

◆ size()

template<typename HashRoller = ZBackupRollingHash, typename HashProber = LinearProber, typename HashManager = SizeManagerPrime, typename HashFunction = NoopHasher>
size_t tdc::lz78::RollingTrie< HashRoller, HashProber, HashManager, HashFunction >::size ( ) const
inline

Definition at line 85 of file RollingTrie.hpp.


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