1// fstlib.h
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15//
16// \page OpenFst - Weighted Finite State Transducers
17// This is a library for constructing, combining, optimizing, and
18// searching "weighted finite-state transducers" (FSTs). Weighted
19// finite-state transducers are automata where each transition has an
20// input label, an output label, and a weight. The more familiar
21// finite-state acceptor is represented as a transducer with each
22// transition's input and output the same.  Finite-state acceptors
23// are used to represent sets of strings (specifically, "regular" or
24// "rational sets"); finite-state transducers are used to represent
25// binary relations between pairs of strings (specifically, "rational
26// transductions"). The weights can be used to represent the cost of
27// taking a particular transition.
28//
29// In this library, the transducers are templated on the Arc
30// (transition) definition, which allows changing the label, weight,
31// and state ID sets. Labels and state IDs are restricted to signed
32// integral types but the weight can be an arbitrary type whose
33// members satisfy certain algebraic ("semiring") properties.
34//
35// For more information, see the OpenFst web site:
36// http://www.openfst.org.
37
38// \file
39// This convenience file includes all other OpenFst header files.
40
41#ifndef FST_LIB_FSTLIB_H__
42#define FST_LIB_FSTLIB_H__
43
44// Abstract FST classes
45#include "fst/lib/fst.h"
46#include "fst/lib/expanded-fst.h"
47#include "fst/lib/mutable-fst.h"
48
49// Concrete FST classes
50#include "fst/lib/vector-fst.h"
51#include "fst/lib/const-fst.h"
52
53// FST algorithms and delayed FST classes
54#include "fst/lib/arcsort.h"
55#include "fst/lib/closure.h"
56#include "fst/lib/compose.h"
57#include "fst/lib/concat.h"
58#include "fst/lib/connect.h"
59#include "fst/lib/determinize.h"
60#include "fst/lib/difference.h"
61#include "fst/lib/encode.h"
62#include "fst/lib/epsnormalize.h"
63#include "fst/lib/equal.h"
64#include "fst/lib/equivalent.h"
65#include "fst/lib/factor-weight.h"
66#include "fst/lib/intersect.h"
67#include "fst/lib/invert.h"
68#include "fst/lib/map.h"
69#include "fst/lib/minimize.h"
70#include "fst/lib/project.h"
71#include "fst/lib/prune.h"
72#include "fst/lib/push.h"
73#include "fst/lib/randgen.h"
74#include "fst/lib/relabel.h"
75#include "fst/lib/replace.h"
76#include "fst/lib/reverse.h"
77#include "fst/lib/reweight.h"
78#include "fst/lib/rmepsilon.h"
79#include "fst/lib/rmfinalepsilon.h"
80#include "fst/lib/shortest-distance.h"
81#include "fst/lib/shortest-path.h"
82#include "fst/lib/synchronize.h"
83#include "fst/lib/topsort.h"
84#include "fst/lib/union.h"
85#include "fst/lib/verify.h"
86
87#endif  // FST_LIB_FSTLIB_H__
88