Public Types | Public Member Functions | Static Public Attributes | Friends

fst::ComplementFst< A > Class Template Reference

#include <fst/complement.h>

Inherits ImplToFst< ComplementFstImpl< A > >.

Collaboration diagram for fst::ComplementFst< A >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef A Arc
typedef A::StateId StateId
typedef A::Label Label
typedef ComplementFstImpl< A > Impl

Public Member Functions

 ComplementFst (const Fst< A > &fst)
 ComplementFst (const ComplementFst< A > &fst, bool safe=false)
 See Fst<>::Copy() for doc.
virtual ComplementFst< A > * Copy (bool safe=false) const
 Get a copy of this ComplementFst. See Fst<>::Copy() for further doc.
virtual void InitStateIterator (StateIteratorData< A > *data) const
virtual void InitArcIterator (StateId s, ArcIteratorData< A > *data) const

Static Public Attributes

static const Label kRhoLabel = -2

Friends

class StateIterator< ComplementFst< A > >
class ArcIterator< ComplementFst< A > >

Detailed Description

template<class A>
class fst::ComplementFst< A >

Complements an automaton. This is a library-internal operation that introduces a (negative) 'rho' label; use Difference/DifferenceFst in user code, which will not see this label. This version is a delayed Fst.

This class attaches interface to implementation and handles reference counting, delegating most methods to ImplToFst.

Definition at line 125 of file complement.h.


Member Typedef Documentation

template<class A>
typedef A fst::ComplementFst< A >::Arc

Reimplemented from fst::ImplToFst< ComplementFstImpl< A > >.

Definition at line 130 of file complement.h.

template<class A>
typedef ComplementFstImpl<A> fst::ComplementFst< A >::Impl

Definition at line 133 of file complement.h.

template<class A>
typedef A::Label fst::ComplementFst< A >::Label

Definition at line 132 of file complement.h.

template<class A>
typedef A::StateId fst::ComplementFst< A >::StateId

Reimplemented from fst::ImplToFst< ComplementFstImpl< A > >.

Definition at line 131 of file complement.h.


Constructor & Destructor Documentation

template<class A>
fst::ComplementFst< A >::ComplementFst ( const Fst< A > &  fst  )  [inline, explicit]

Definition at line 135 of file complement.h.

template<class A>
fst::ComplementFst< A >::ComplementFst ( const ComplementFst< A > &  fst,
bool  safe = false 
) [inline]

See Fst<>::Copy() for doc.

Definition at line 144 of file complement.h.


Member Function Documentation

template<class A>
virtual ComplementFst<A>* fst::ComplementFst< A >::Copy ( bool  safe = false  )  const [inline, virtual]

Get a copy of this ComplementFst. See Fst<>::Copy() for further doc.

Implements fst::Fst< typename ComplementFstImpl< A >::Arc >.

Definition at line 148 of file complement.h.

template<class A >
void fst::ComplementFst< A >::InitArcIterator ( StateId  s,
ArcIteratorData< A > *  data 
) const [inline, virtual]

Definition at line 309 of file complement.h.

template<class A >
void fst::ComplementFst< A >::InitStateIterator ( StateIteratorData< A > *  data  )  const [inline, virtual]

Definition at line 304 of file complement.h.


Friends And Related Function Documentation

template<class A>
friend class ArcIterator< ComplementFst< A > > [friend]

Definition at line 128 of file complement.h.

template<class A>
friend class StateIterator< ComplementFst< A > > [friend]

Definition at line 127 of file complement.h.


Member Data Documentation

template<class A>
const A::Label fst::ComplementFst< A >::kRhoLabel = -2 [static]

Label that represents the rho transition. We use a negative value, which is thus private to the library and which will preserve FST label sort order.

Definition at line 160 of file complement.h.


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