Public Types | Public Member Functions

fst::AutoQueue< S > Class Template Reference

#include <fst/queue.h>

Inherits fst::QueueBase< S >.

Collaboration diagram for fst::AutoQueue< S >:
Collaboration graph
[legend]

List of all members.

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)

Detailed Description

template<class S>
class fst::AutoQueue< S >

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.


Member Typedef Documentation

template<class S>
typedef S fst::AutoQueue< S >::StateId

Reimplemented from fst::QueueBase< S >.

Definition at line 535 of file queue.h.


Constructor & Destructor Documentation

template<class S>
template<class Arc , class ArcFilter >
fst::AutoQueue< S >::AutoQueue ( const Fst< Arc > &  fst,
const vector< typename Arc::Weight > *  distance,
ArcFilter  filter 
) [inline]

This constructor takes a state distance vector that, if non-null and if the Weight type has the path property, will entertain the shortest-first queue using the natural order w.r.t to the distance.

Definition at line 541 of file queue.h.

template<class S>
fst::AutoQueue< S >::~AutoQueue (  )  [inline]

Definition at line 627 of file queue.h.


Member Function Documentation

template<class S>
void fst::AutoQueue< S >::Clear (  )  [inline]

Reimplemented from fst::QueueBase< S >.

Definition at line 643 of file queue.h.

template<class S>
void fst::AutoQueue< S >::Dequeue (  )  [inline]

Reimplemented from fst::QueueBase< S >.

Definition at line 637 of file queue.h.

template<class S>
bool fst::AutoQueue< S >::Empty (  )  const [inline]

Reimplemented from fst::QueueBase< S >.

Definition at line 641 of file queue.h.

template<class S>
void fst::AutoQueue< S >::Enqueue ( StateId  s  )  [inline]

Reimplemented from fst::QueueBase< S >.

Definition at line 635 of file queue.h.

template<class S>
StateId fst::AutoQueue< S >::Head (  )  const [inline]

Reimplemented from fst::QueueBase< S >.

Definition at line 633 of file queue.h.

template<class S>
template<class A , class ArcFilter , class Less >
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().

Definition at line 687 of file queue.h.

template<class S>
void fst::AutoQueue< S >::Update ( StateId  s  )  [inline]

Reimplemented from fst::QueueBase< S >.

Definition at line 639 of file queue.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines