26#include <ext/iostream>
49template <
class SymbolType = DefaultSymbolType >
59 unsigned m_backboneLength;
90 return m_automaton.getInputAlphabet ( );
99 return std::move ( m_automaton ).getInputAlphabet ( );
108 return m_automaton.removeInputSymbol ( symbol );
117 return m_backboneLength;
151 return out <<
"(SuffixAutomaton " << instance.m_automaton <<
")";
170template <
class SymbolType >
174template <
class SymbolType >
179template <
class SymbolType >
181 return std::move ( m_automaton );
184template <
class SymbolType >
186 return getAutomaton ( );
200template <
class SymbolType >
205 unsigned initialState = std::move ( std::move ( value ).getAutomaton ( ) ).getInitialState ( );
206 ext::set < unsigned > finalStates = std::move ( std::move ( value ).getAutomaton ( ) ).getFinalStates ( );
211 unsigned from = transition.first.first;
213 unsigned to = transition.second;
215 res.addTransition ( from, std::move ( input ), to );
static ext::set< DefaultSymbolType > normalizeAlphabet(ext::set< SymbolType > &&symbols)
Definition: SymbolNormalize.h:50
static DefaultSymbolType normalizeSymbol(SymbolType &&symbol)
Definition: SymbolNormalize.h:68
Deterministic finite automaton. Accepts regular languages.
Definition: DFA.h:71
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
Suffix automaton string index. Automaton representation of all suffixes. The automaton is general det...
Definition: SuffixAutomaton.h:50
bool removeSymbolFromAlphabet(const SymbolType &symbol)
Definition: SuffixAutomaton.h:107
ext::set< SymbolType > && getAlphabet() &&
Definition: SuffixAutomaton.h:98
unsigned getBackboneLength() const
Definition: SuffixAutomaton.h:116
SuffixAutomaton(automaton::DFA< SymbolType, unsigned > automaton, unsigned backboneLength)
Definition: SuffixAutomaton.h:171
const ext::set< SymbolType > & getAlphabet() const &
Definition: SuffixAutomaton.h:89
friend ext::ostream & operator<<(ext::ostream &out, const SuffixAutomaton &instance)
Definition: SuffixAutomaton.h:150
bool operator==(const SuffixAutomaton &other) const
Definition: SuffixAutomaton.h:138
const automaton::DFA< SymbolType, unsigned > & getAutomaton() const &
Definition: SuffixAutomaton.h:175
auto operator<=>(const SuffixAutomaton &other) const
Definition: SuffixAutomaton.h:127
Definition: BarSymbol.cpp:12
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
return res
Definition: MinimizeByPartitioning.h:145
Definition: ToGrammar.h:31
Definition: normalize.hpp:10
constexpr tuple< Elements &... > tie(Elements &... args) noexcept
Helper of extended tuple of references construction. The tuple is constructed to reffer to values in ...
Definition: tuple.hpp:218
reference_mover< T > make_mover(T ¶m)
Move adaptor construction function specialized to lvalue reference parameter.
Definition: iterator.hpp:468
Definition: CompressedBitParallelTreeIndex.h:40
Definition: ArithmeticCompression.h:18
static indexes::stringology::SuffixAutomaton< > eval(indexes::stringology::SuffixAutomaton< SymbolType > &&value)
Definition: SuffixAutomaton.h:202
Definition: normalize.hpp:13