RmEpsilon
Description
This operation removes epsilon-transitions (both input and output labels are epsilons) in a transducer. The result will be an
equivalent FST that has no epsilon
transition.
Usage
template <class Arc>
void RmEpsilon(MutableFst<Arc> *fst, bool connect = true);
|
[bad link?] |
template <class Arc> RmEpsilonFst<Arc>::
RmEpsilonFst(const Fst<Arc>& fst);
|
|
fstrmepsilon a.fst out.fst |
|
Examples
A
:
/twiki/pub/FST/RmEpsilonDoc/rmepsilon1.jpg
RmEpsilon of A
:
/twiki/pub/FST/RmEpsilonDoc/rmepsilon2.jpg
RmEpsilon(&A);
RmEpsilonFst<Arc>(A);
fstrmepsilon a.fst out.fst
Complexity
RmEpsilon
:
- Unweighted: O(nstates^2 + nstates * narcs)
- Acyclic: O(nstates^2 + nstates * narcs)
- Tropical semiring: O(nstates^2 * log(nstates) + nstates * narcs)
- General: exponential
RmEpsilonFst
:
- Constructor: O(1)
- Traversal:
- Unweighted: O(nstates^2 + nstates * narcs)
- General: exponential
Space complexity:
O(nstates * narcs)
References
--
CyrilAllauzen - 25 Jun 2007