Lines Matching defs:fst2

47 void Concat(MutableFst<Arc> *fst1, const Fst<Arc> &fst2) {
54 if (!CompatSymbols(fst1->InputSymbols(), fst2.InputSymbols()) ||
55 !CompatSymbols(fst1->OutputSymbols(), fst2.OutputSymbols())) {
63 uint64 props2 = fst2.Properties(kFstProperties, false);
72 if (fst2.Properties(kExpanded, false))
73 fst1->ReserveStates(numstates1 + CountStates(fst2));
75 for (StateIterator< Fst<Arc> > siter2(fst2);
80 fst1->SetFinal(s1, fst2.Final(s2));
81 fst1->ReserveArcs(s1, fst2.NumArcs(s2));
82 for (ArcIterator< Fst<Arc> > aiter(fst2, s2);
91 StateId start2 = fst2.Start();
113 void Concat(const Fst<Arc> &fst1, MutableFst<Arc> *fst2) {
119 if (!CompatSymbols(fst1.InputSymbols(), fst2->InputSymbols()) ||
120 !CompatSymbols(fst1.OutputSymbols(), fst2->OutputSymbols())) {
123 // fst2->SetProperties(kError, kError);
128 uint64 props2 = fst2->Properties(kFstProperties, false);
130 StateId start2 = fst2->Start();
132 if (props1 & kError) fst2->SetProperties(kError, kError);
136 StateId numstates2 = fst2->NumStates();
138 fst2->ReserveStates(numstates2 + CountStates(fst1));
144 StateId s2 = fst2->AddState();
146 fst2->ReserveArcs(s2, fst1.NumArcs(s1) + (final != Weight::Zero() ? 1 : 0));
148 fst2->AddArc(s2, Arc(0, 0, final, start2));
154 fst2->AddArc(s2, arc);
158 fst2->SetStart(start1 == kNoStateId ? fst2->AddState() : start1 + numstates2);
160 fst2->SetProperties(ConcatProperties(props1, props2), kFstProperties);
167 void Concat(RationalFst<Arc> *fst1, const Fst<Arc> &fst2) {
168 fst1->GetImpl()->AddConcat(fst2, true);
174 void Concat(const Fst<Arc> &fst1, RationalFst<Arc> *fst2) {
175 fst2->GetImpl()->AddConcat(fst1, false);
201 ConcatFst(const Fst<A> &fst1, const Fst<A> &fst2) {
202 GetImpl()->InitConcat(fst1, fst2);
205 ConcatFst(const Fst<A> &fst1, const Fst<A> &fst2,
207 GetImpl()->InitConcat(fst1, fst2);