Lines Matching refs:fst1

47 void Concat(MutableFst<Arc> *fst1, const Fst<Arc> &fst2) {
54 if (!CompatSymbols(fst1->InputSymbols(), fst2.InputSymbols()) ||
55 !CompatSymbols(fst1->OutputSymbols(), fst2.OutputSymbols())) {
58 // fst1->SetProperties(kError, kError);
62 uint64 props1 = fst1->Properties(kFstProperties, false);
65 StateId start1 = fst1->Start();
67 if (props2 & kError) fst1->SetProperties(kError, kError);
71 StateId numstates1 = fst1->NumStates();
73 fst1->ReserveStates(numstates1 + CountStates(fst2));
78 StateId s1 = fst1->AddState();
80 fst1->SetFinal(s1, fst2.Final(s2));
81 fst1->ReserveArcs(s1, fst2.NumArcs(s2));
87 fst1->AddArc(s1, arc);
93 Weight final = fst1->Final(s1);
95 fst1->SetFinal(s1, Weight::Zero());
97 fst1->AddArc(s1, Arc(0, 0, final, start2 + numstates1));
101 fst1->SetProperties(ConcatProperties(props1, props2), kFstProperties);
113 void Concat(const Fst<Arc> &fst1, MutableFst<Arc> *fst2) {
119 if (!CompatSymbols(fst1.InputSymbols(), fst2->InputSymbols()) ||
120 !CompatSymbols(fst1.OutputSymbols(), fst2->OutputSymbols())) {
127 uint64 props1 = fst1.Properties(kFstProperties, false);
137 if (fst1.Properties(kExpanded, false))
138 fst2->ReserveStates(numstates2 + CountStates(fst1));
140 for (StateIterator< Fst<Arc> > siter(fst1);
145 Weight final = fst1.Final(s1);
146 fst2->ReserveArcs(s2, fst1.NumArcs(s1) + (final != Weight::Zero() ? 1 : 0));
149 for (ArcIterator< Fst<Arc> > aiter(fst1, s1);
157 StateId start1 = fst1.Start();
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);