Lines Matching refs:fst
23 #include "fst/lib/mutable-fst.h"
25 namespace fst {
39 void Reweight(MutableFst<Arc> *fst, vector<typename Arc::Weight> potential,
43 if (!fst->NumStates())
45 while ( (int64)potential.size() < (int64)fst->NumStates())
58 for (StateIterator< MutableFst<Arc> > sit(*fst);
62 for (MutableArcIterator< MutableFst<Arc> > ait(fst, state);
81 fst->SetFinal(state,
82 Divide(fst->Final(state), potential[state], DIVIDE_LEFT));
84 fst->SetFinal(state, Times(potential[state], fst->Final(state)));
87 if ((potential[fst->Start()] != Weight::One()) &&
88 (potential[fst->Start()] != Weight::Zero())) {
89 if (fst->Properties(kInitialAcyclic, true) & kInitialAcyclic) {
90 typename Arc::StateId state = fst->Start();
91 for (MutableArcIterator< MutableFst<Arc> > ait(fst, state);
104 fst->SetFinal(state, Times(potential[state], fst->Final(state)));
106 fst->SetFinal(state, Times(Divide(Weight::One(), potential[state],
108 fst->Final(state)));
111 typename Arc::StateId state = fst->AddState();
113 potential[fst->Start()] :
114 Divide(Weight::One(), potential[fst->Start()], DIVIDE_RIGHT);
115 Arc arc (0, 0, w, fst->Start());
116 fst->AddArc(state, arc);
117 fst->SetStart(state);
121 fst->SetProperties(ReweightProperties(
122 fst->Properties(kFstProperties, false)),
126 } // namespace fst