20 #ifndef FST_DIFFERENCE_H_ 21 #define FST_DIFFERENCE_H_ 43 template <
class Arc,
class M = Matcher<Fst<Arc>>,
44 class Filter = SequenceComposeFilter<M>,
46 GenericComposeStateTable<Arc,
typename Filter::FilterState>>
80 :
ComposeFst<
Arc>(CreateDifferenceImplWithCacheOpts(fst1, fst2, opts)) {
82 FSTERROR() <<
"DifferenceFst: 1st argument not an acceptor";
87 template <
class Matcher,
class Filter,
class StateTable>
92 CreateDifferenceImplWithDifferenceOpts(fst1, fst2, opts)) {
94 FSTERROR() <<
"DifferenceFst: 1st argument not an acceptor";
112 static std::shared_ptr<Impl> CreateDifferenceImplWithCacheOpts(
119 return CreateBase1(fst1, cfst, copts);
122 template <
class Matcher,
class Filter,
class StateTable>
123 static std::shared_ptr<Impl> CreateDifferenceImplWithDifferenceOpts(
133 return CreateBase1(fst1, cfst, copts);
180 switch (opts.filter_type) {
224 if (opts.connect)
Connect(ofst);
229 #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