Home | History | Annotate | Download | only in lib

Lines Matching refs:Arc

32 template <class Arc, class Queue, class ArcFilter>
34 : public ShortestDistanceOptions<Arc, Queue, ArcFilter> {
35 typedef typename Arc::StateId StateId;
44 : ShortestDistanceOptions<Arc, Queue, ArcFilter>(q, filt, kNoStateId, d),
53 // such as the queue discipline, the arc filter and delta.
60 template<class Arc, class Queue, class ArcFilter>
61 void SingleShortestPath(const Fst<Arc> &ifst,
62 MutableFst<Arc> *ofst,
63 vector<typename Arc::Weight> *distance,
64 ShortestPathOptions<Arc, Queue, ArcFilter> &opts) {
65 typedef typename Arc::StateId StateId;
66 typedef typename Arc::Weight Weight;
78 vector<Arc> arc_parent;
99 arc_parent.push_back(Arc(kNoLabel, kNoLabel, Weight::Zero(), kNoStateId));
103 arc_parent.push_back(Arc(kNoLabel, kNoLabel, Weight::Zero(), kNoStateId));
112 for (ArcIterator< Fst<Arc> > aiter(ifst, s);
115 const Arc &arc = aiter.Value();
116 while (distance->size() <= arc.nextstate) {
120 arc_parent.push_back(Arc(kNoLabel, kNoLabel, Weight::Zero(),
123 Weight &nd = (*distance)[arc.nextstate];
124 Weight w = Times(sd, arc.weight);
127 parent[arc.nextstate] = s;
128 arc_parent[arc.nextstate] = arc;
129 if (!enqueued[arc.nextstate]) {
130 state_queue->Enqueue(arc.nextstate);
131 enqueued[arc.nextstate] = true;
133 state_queue->Update(arc.nextstate);
211 // strings, the queue discipline, the arc filter and the convergence
227 template<class Arc, class Queue, class ArcFilter>
228 void ShortestPath(const Fst<Arc> &ifst, MutableFst<Arc> *ofst,
229 vector<typename Arc::Weight> *distance,
230 ShortestPathOptions<Arc, Queue, ArcFilter> &opts) {
231 typedef typename Arc::StateId StateId;
232 typedef typename Arc::Weight Weight;
234 typedef ReverseArc<Arc> ReverseArc;
301 ofst->AddArc(ofst->Start(), Arc(0, 0, Weight::One(), state));
311 Arc arc(rarc.ilabel, rarc.olabel, rarc.weight.Reverse(), rarc.nextstate);
312 Weight w = Times(p.second, arc.weight);
314 pairs.push_back(Pair(arc.nextstate, w));
315 arc.nextstate = state;
316 ofst->AddArc(next, arc);
326 ofst->AddArc(next, Arc(0, 0, finalw, state));
350 template<class Arc>
351 void ShortestPath(const Fst<Arc> &ifst, MutableFst<Arc> *ofst,
353 vector<typename Arc::Weight> distance;
354 AnyArcFilter<Arc> arc_filter;
355 AutoQueue<typename Arc::StateId> state_queue(ifst, &distance, arc_filter);
356 ShortestPathOptions< Arc, AutoQueue<typename Arc::StateId>,
357 AnyArcFilter<Arc> > opts(&state_queue, arc_filter, n, unique);