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
 
RollingTrieoperator= (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
 
Algorithmoperator= (Algorithm const &)=default
 
Algorithmoperator= (Algorithm &&)=default
 
 Algorithm (Env &&env)
 Instantiates an algorithm in the specified environment. More...
 
Envenv ()
 Provides access to the environment that the algorithm works in. More...
 
const Envenv () 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: