#include <fst/queue.h>
Inherits fst::QueueBase< S >.

Public Types | |
| typedef S | StateId |
Public Member Functions | |
| template<class Arc , class ArcFilter > | |
| AutoQueue (const Fst< Arc > &fst, const vector< typename Arc::Weight > *distance, ArcFilter filter) | |
| ~AutoQueue () | |
| StateId | Head () const |
| void | Enqueue (StateId s) |
| void | Dequeue () |
| void | Update (StateId s) |
| bool | Empty () const |
| void | Clear () |
| template<class A , class ArcFilter , class Less > | |
| void | SccQueueType (const Fst< A > &fst, const vector< StateId > &scc, vector< QueueType > *queue_type, ArcFilter filter, Less *less, bool *all_trivial, bool *unweighted) |
Automatic queue discipline, templated on the StateId. It selects a queue discipline for a given FST based on its properties.
Definition at line 533 of file queue.h.
| typedef S fst::AutoQueue< S >::StateId |
Reimplemented from fst::QueueBase< S >.
| fst::AutoQueue< S >::AutoQueue | ( | const Fst< Arc > & | fst, | |
| const vector< typename Arc::Weight > * | distance, | |||
| ArcFilter | filter | |||
| ) | [inline] |
| fst::AutoQueue< S >::~AutoQueue | ( | ) | [inline] |
| void fst::AutoQueue< S >::Clear | ( | ) | [inline] |
Reimplemented from fst::QueueBase< S >.
| void fst::AutoQueue< S >::Dequeue | ( | ) | [inline] |
Reimplemented from fst::QueueBase< S >.
| bool fst::AutoQueue< S >::Empty | ( | ) | const [inline] |
Reimplemented from fst::QueueBase< S >.
| void fst::AutoQueue< S >::Enqueue | ( | StateId | s | ) | [inline] |
Reimplemented from fst::QueueBase< S >.
| StateId fst::AutoQueue< S >::Head | ( | ) | const [inline] |
Reimplemented from fst::QueueBase< S >.
| void fst::AutoQueue< S >::SccQueueType | ( | const Fst< A > & | fst, | |
| const vector< StateId > & | scc, | |||
| vector< QueueType > * | queue_type, | |||
| ArcFilter | filter, | |||
| Less * | less, | |||
| bool * | all_trivial, | |||
| bool * | unweighted | |||
| ) |
Examines the states in an Fst's strongly connected components and determines which type of queue to use per SCC. Stores result in vector QUEUE_TYPES, which is assumed to have length equal to the number of SCCs. An arc filter is used to limit the transitions considered (e.g., only the epsilon graph). ALL_TRIVIAL is set to true if every queue is the trivial queue. UNWEIGHTED is set to true if the semiring is idempotent and all the arc weights are equal to Zero() or One().
| void fst::AutoQueue< S >::Update | ( | StateId | s | ) | [inline] |
Reimplemented from fst::QueueBase< S >.
1.7.1