26#include <ext/iostream>
48template <
class SymbolType = DefaultSymbolType >
83 return m_automaton.getInputAlphabet ( );
92 return std::move ( m_automaton ).getInputAlphabet ( );
101 return m_automaton.removeInputSymbol ( symbol );
109 return m_automaton.getStates ( ).size ( ) - 1;
143 return out <<
"(FactorOracleAutomaton " << instance.m_automaton <<
")";
162template <
class SymbolType >
166template <
class SymbolType >
171template <
class SymbolType >
173 return std::move ( m_automaton );
176template <
class SymbolType >
178 return getAutomaton ( );
192template <
class SymbolType >
197 unsigned initialState = std::move ( std::move ( value ).getAutomaton ( ) ).getInitialState ( );
198 ext::set < unsigned > finalStates = std::move ( std::move ( value ).getAutomaton ( ) ).getFinalStates ( );
203 unsigned from = transition.first.first;
205 unsigned to = transition.second;
207 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
Factor oracle automaton string index. Stores a deterministic finite automaton. The automaton is of ex...
Definition: FactorOracleAutomaton.h:49
FactorOracleAutomaton(automaton::DFA< SymbolType, unsigned > automaton)
Definition: FactorOracleAutomaton.h:163
const ext::set< SymbolType > & getAlphabet() const &
Definition: FactorOracleAutomaton.h:82
friend ext::ostream & operator<<(ext::ostream &out, const FactorOracleAutomaton &instance)
Definition: FactorOracleAutomaton.h:142
unsigned getBackboneLength() const
Definition: FactorOracleAutomaton.h:108
ext::set< SymbolType > && getAlphabet() &&
Definition: FactorOracleAutomaton.h:91
const automaton::DFA< SymbolType, unsigned > & getAutomaton() const &
Definition: FactorOracleAutomaton.h:167
bool operator==(const FactorOracleAutomaton &other) const
Definition: FactorOracleAutomaton.h:130
bool removeSymbolFromAlphabet(const SymbolType &symbol)
Definition: FactorOracleAutomaton.h:100
auto operator<=>(const FactorOracleAutomaton &other) const
Definition: FactorOracleAutomaton.h:119
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::FactorOracleAutomaton< > eval(indexes::stringology::FactorOracleAutomaton< SymbolType > &&value)
Definition: FactorOracleAutomaton.h:194
Definition: normalize.hpp:13