11#include <string/LinearString.h>
71 unsigned m =
q.elements[0].depth;
73 for (
size_t i = 1;
i <
q.elements.size ( ); ++
i ) {
74 if (
q.elements[
i].depth -
q.elements[
i - 1].depth < m )
75 r +=
q.elements[
i].depth -
q.elements[
i - 1].depth;
102 enhCovers.insert ( state.
lfactor );
114 template <
class SymbolType >
118 firstState.
depth = 1;
123 firstState.
elements.emplace_back (
i + 1, 0 );
125 firstState.
elements.emplace_back (
i + 1, 1 );
141 template <
class SymbolType >
148 for (
const auto & element : previousState.
elements )
149 if ( element.depth < x.
getContent ( ).size ( ) ) {
150 if ( symbol == x.
getContent ( )[element.depth] ) {
151 nextState.
elements.emplace_back ( element.depth + 1, element.level );
153 }
else if ( element.level < k ) {
154 nextState.
elements.emplace_back ( element.depth + 1, element.level + 1 );
170 template <
class SymbolType >
188 template <
class SymbolType >
192 for (
const auto & p : enhCovers )
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
Linear string.
Definition: LinearString.h:57
const ext::vector< SymbolType > & getContent() const &
Definition: LinearString.h:238
Definition: ApproximateEnhancedCoversCommon.h:20
virtual ~ApproximateEnhancedCoversCommon()=0
static bool isBorder(const State &state, const string::LinearString< SymbolType > &x, unsigned k)
Definition: ApproximateEnhancedCoversCommon.h:171
static State constrNextState(const string::LinearString< SymbolType > &x, const State &previousState, unsigned k, const SymbolType &symbol)
Definition: ApproximateEnhancedCoversCommon.h:142
static unsigned distEnhCov(const State &q)
Definition: ApproximateEnhancedCoversCommon.h:69
static ext::set< string::LinearString< SymbolType > > getFactors(const string::LinearString< SymbolType > &x, ext::set< ext::pair< unsigned int, unsigned int > > &enhCovers)
Definition: ApproximateEnhancedCoversCommon.h:189
static State constrFirstState(const string::LinearString< SymbolType > &x, unsigned k, const SymbolType &symbol)
Definition: ApproximateEnhancedCoversCommon.h:115
static void updateEnhCov(const State &state, ext::set< ext::pair< unsigned, unsigned > > &enhCovers, unsigned &h)
Definition: ApproximateEnhancedCoversCommon.h:92
int i
Definition: AllEpsilonClosure.h:118
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
q
Definition: SingleInitialStateEpsilonTransition.h:85
for(const StateType &state :fsm.getStates()) renamingData.insert(std Rename::RenamedAutomaton< T > result(renamingData.at(fsm.getInitialState()))
Definition: Rename.h:253
Definition: ApproximateCoversComputation.cpp:9
Definition: ApproximateEnhancedCoversCommon.h:32
Element(unsigned d, unsigned l)
Definition: ApproximateEnhancedCoversCommon.h:35
unsigned level
Definition: ApproximateEnhancedCoversCommon.h:33
unsigned depth
Definition: ApproximateEnhancedCoversCommon.h:33
Definition: ApproximateEnhancedCoversCommon.h:41
unsigned depth
Definition: ApproximateEnhancedCoversCommon.h:44
ext::vector< Element > elements
Definition: ApproximateEnhancedCoversCommon.h:51
State(State &&other)=default
ext::pair< unsigned, unsigned > lfactor
Definition: ApproximateEnhancedCoversCommon.h:48
State & operator=(State &&other)=default