This operation computes the intersection (Hadamard product) of two FSAs. Only strings that are in both automata are retained in the result.
The two arguments must be acceptors. One of the
arguments must be label-sorted (or otherwise support an
appropriate matcher).The weights need to form a
commutative semiring (valid for TropicalWeight and
LogWeight for instance).
Versions of this operation (not all shown here) accept options that allow choosing the matcher, composition filter, state table and, when delayed, the caching behaviour used by intersection.
template <class Arc>
void Intersect(const Fst<Arc> &ifsa1, const Fst<Arc> &ifsa2, MutableFst<Arc> *ofsa);template <class Arc> IntersectFst<Arc>::
IntersectFst(const Fst<Arc> &fsa1, const Fst<Arc> &fsa2);fstintersect [--opts] a.fsa b.fsa out.fsa
--connect: Trim output (def: true)Intersect(A, B, &C);
IntersectFst<Arc>(A, B);
fstintersect a.fsa b.fsa out.fsaSame as Compose.
Same as Compose.


