Home | History | Annotate | Download | only in fst

Lines Matching defs:arc

38 template <class Arc, class Queue, class ArcFilter>
40 typedef typename Arc::StateId StateId;
43 ArcFilter arc_filter; // Arc filter (e.g., limit to only epsilon graph)
71 template<class Arc, class Queue, class ArcFilter>
74 typedef typename Arc::StateId StateId;
75 typedef typename Arc::Weight Weight;
78 const Fst<Arc> &fst,
80 const ShortestDistanceOptions<Arc, Queue, ArcFilter> &opts,
96 const Fst<Arc> &fst_;
115 template <class Arc, class Queue, class ArcFilter>
116 void ShortestDistanceState<Arc, Queue, ArcFilter>::ShortestDistance(
178 for (ArcIterator< Fst<Arc> > aiter(fst_, s);
181 const Arc &arc = aiter.Value();
182 if (!arc_filter_(arc))
184 while (distance_->size() <= arc.nextstate) {
190 while (sources_.size() <= arc.nextstate)
192 if (sources_[arc.nextstate] != source_id_) {
193 (*distance_)[arc.nextstate] = Weight::Zero();
194 rdistance_[arc.nextstate] = Weight::Zero();
195 enqueued_[arc.nextstate] = false;
196 sources_[arc.nextstate] = source_id_;
199 Weight &nd = (*distance_)[arc.nextstate];
200 Weight &nr = rdistance_[arc.nextstate];
201 Weight w = Times(r, arc.weight);
209 if (!enqueued_[arc.nextstate]) {
210 state_queue_->Enqueue(arc.nextstate);
211 enqueued_[arc.nextstate] = true;
213 state_queue_->Update(arc.nextstate);
230 // The state queue discipline, arc filter, and convergence delta are
243 template<class Arc, class Queue, class ArcFilter>
245 const Fst<Arc> &fst,
246 vector<typename Arc::Weight> *distance,
247 const ShortestDistanceOptions<Arc, Queue, ArcFilter> &opts) {
249 ShortestDistanceState<Arc, Queue, ArcFilter>
254 distance->resize(1, Arc::Weight::NoWeight());
280 template<class Arc>
281 void ShortestDistance(const Fst<Arc> &fst,
282 vector<typename Arc::Weight> *distance,
285 typedef typename Arc::StateId StateId;
286 typedef typename Arc::Weight Weight;
289 AnyArcFilter<Arc> arc_filter;
291 ShortestDistanceOptions< Arc, AutoQueue<StateId>, AnyArcFilter<Arc> >
296 typedef ReverseArc<Arc> ReverseArc;
310 distance->resize(1, Arc::Weight::NoWeight());
322 template <class Arc>
323 typename Arc::Weight ShortestDistance(const Fst<Arc> &fst, float delta = kDelta) {
324 typedef typename Arc::Weight Weight;
325 typedef typename Arc::StateId StateId;
330 return Arc::Weight::NoWeight();
339 return Arc::Weight::NoWeight();