20 #ifndef FST_DIFFERENCE_H_ 21 #define FST_DIFFERENCE_H_ 33 template <
class Arc,
class M = Matcher<Fst<Arc>>,
34 class Filter = SequenceComposeFilter<M>,
36 GenericComposeStateTable<Arc,
typename Filter::FilterState>>
70 :
ComposeFst<
Arc>(CreateDifferenceImplWithCacheOpts(fst1, fst2, opts)) {
72 FSTERROR() <<
"DifferenceFst: 1st argument not an acceptor";
77 template <
class Matcher,
class Filter,
class StateTable>
82 CreateDifferenceImplWithDifferenceOpts(fst1, fst2, opts)) {
84 FSTERROR() <<
"DifferenceFst: 1st argument not an acceptor";
102 static std::shared_ptr<Impl> CreateDifferenceImplWithCacheOpts(
109 return CreateBase1(fst1, cfst, copts);
112 template <
class Matcher,
class Filter,
class StateTable>
113 static std::shared_ptr<Impl> CreateDifferenceImplWithDifferenceOpts(
123 return CreateBase1(fst1, cfst, copts);
170 switch (opts.filter_type) {
214 if (opts.connect)
Connect(ofst);
219 #endif // FST_DIFFERENCE_H_
typename Arc::Weight Weight
DifferenceFst(const DifferenceFst &fst, bool safe=false)
StateIterator(const DifferenceFst< Arc > &fst)
typename ComposeFst< Arc >::Arc Arc
CacheOptions(bool gc=FST_FLAGS_fst_default_cache_gc, size_t gc_limit=FST_FLAGS_fst_default_cache_gc_limit)
virtual uint64_t Properties(uint64_t mask, bool test) const =0
DifferenceFst(const Fst< Arc > &fst1, const Fst< Arc > &fst2, const DifferenceFstOptions< Arc, Matcher, Filter, StateTable > &opts)
constexpr uint64_t kError
void Connect(MutableFst< Arc > *fst)
typename ComposeFst< Arc >::Arc Arc
typename Arc::StateId StateId
void Difference(const Fst< Arc > &ifst1, const Fst< Arc > &ifst2, MutableFst< Arc > *ofst, const DifferenceOptions &opts=DifferenceOptions())
typename Arc::StateId StateId
ComposeOptions DifferenceOptions
DifferenceFstOptions(const CacheOptions &opts=CacheOptions(), M *matcher1=nullptr, M *matcher2=nullptr, Filter *filter=nullptr, StateTable *state_table=nullptr)
DifferenceFst * Copy(bool safe=false) const override
DifferenceFst(const Fst< Arc > &fst1, const Fst< Arc > &fst2, const CacheOptions &opts=CacheOptions())
ArcIterator(const DifferenceFst< Arc > &fst, StateId s)
constexpr uint64_t kAcceptor