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// Copyright 2005-2010 Google, Inc.
16// Author: riley@google.com (Michael Riley)
17//
18// \page FstLib FST - Weighted Finite State Transducers
19// This is a library for constructing, combining, optimizing, and
20// searching "weighted finite-state transducers" (FSTs). Weighted
21// finite-state transducers are automata where each transition has an
22// input label, an output label, and a weight. The more familiar
23// finite-state acceptor is represented as a transducer with each
24// transition's input and output the same.  Finite-state acceptors
25// are used to represent sets of strings (specifically, "regular" or
26// "rational sets"); finite-state transducers are used to represent
27// binary relations between pairs of strings (specifically, "rational
28// transductions"). The weights can be used to represent the cost of
29// taking a particular transition.
30//
31// In this library, the transducers are templated on the Arc
32// (transition) definition, which allows changing the label, weight,
33// and state ID sets. Labels and state IDs are restricted to signed
34// integral types but the weight can be an arbitrary type whose
35// members satisfy certain algebraic ("semiring") properties.
36//
37// For more information, see the FST Library Wiki page:
38// http://wiki.corp.google.com/twiki/bin/view/Main/FstLibrary
39
40// \file
41// This convenience file includes all other FST inl.h files.
42//
43
44#ifndef FST_LIB_FSTLIB_H__
45#define FST_LIB_FSTLIB_H__
46
47
48// Abstract FST classes
49#include <fst/fst.h>
50#include <fst/expanded-fst.h>
51#include <fst/mutable-fst.h>
52
53// Concrete FST classes
54#include <fst/compact-fst.h>
55#include <fst/const-fst.h>
56#include <fst/edit-fst.h>
57#include <fst/vector-fst.h>
58
59// FST algorithms and delayed FST classes
60#include <fst/arcsort.h>
61#include <fst/arc-map.h>
62#include <fst/closure.h>
63#include <fst/compose.h>
64#include <fst/concat.h>
65#include <fst/connect.h>
66#include <fst/determinize.h>
67#include <fst/difference.h>
68#include <fst/encode.h>
69#include <fst/epsnormalize.h>
70#include <fst/equal.h>
71#include <fst/equivalent.h>
72#include <fst/factor-weight.h>
73#include <fst/intersect.h>
74#include <fst/invert.h>
75#include <fst/map.h>
76#include <fst/minimize.h>
77#include <fst/project.h>
78#include <fst/prune.h>
79#include <fst/push.h>
80#include <fst/randequivalent.h>
81#include <fst/randgen.h>
82#include <fst/rational.h>
83#include <fst/relabel.h>
84#include <fst/replace.h>
85#include <fst/replace-util.h>
86#include <fst/reverse.h>
87#include <fst/reweight.h>
88#include <fst/rmepsilon.h>
89#include <fst/rmfinalepsilon.h>
90#include <fst/shortest-distance.h>
91#include <fst/shortest-path.h>
92#include <fst/statesort.h>
93#include <fst/state-map.h>
94#include <fst/synchronize.h>
95#include <fst/topsort.h>
96#include <fst/union.h>
97#include <fst/verify.h>
98#include <fst/visit.h>
99
100// Weights
101#include <fst/weight.h>
102#include <fst/expectation-weight.h>
103#include <fst/float-weight.h>
104#include <fst/lexicographic-weight.h>
105#include <fst/pair-weight.h>
106#include <fst/power-weight.h>
107#include <fst/product-weight.h>
108#include <fst/random-weight.h>
109#include <fst/signed-log-weight.h>
110#include <fst/sparse-power-weight.h>
111#include <fst/sparse-tuple-weight.h>
112#include <fst/string-weight.h>
113#include <fst/tuple-weight.h>
114
115// Auxiliary classes for composition
116#include <fst/compose-filter.h>
117#include <fst/lookahead-filter.h>
118#include <fst/lookahead-matcher.h>
119#include <fst/matcher-fst.h>
120#include <fst/matcher.h>
121#include <fst/state-table.h>
122
123// Data structures
124#include <fst/heap.h>
125#include <fst/interval-set.h>
126#include <fst/queue.h>
127#include <fst/union-find.h>
128
129// Miscellaneous
130#include <fst/accumulator.h>
131#include <fst/add-on.h>
132#include <fst/arc.h>
133#include <fst/arcfilter.h>
134#include <fst/cache.h>
135#include <fst/complement.h>
136#include <fst/dfs-visit.h>
137#include <fst/generic-register.h>
138#include <fst/label-reachable.h>
139#include <fst/partition.h>
140#include <fst/properties.h>
141#include <fst/register.h>
142#include <fst/state-reachable.h>
143#include <iostream>
144#include <fstream>
145#include <sstream>
146#include <fst/string.h>
147#include <fst/symbol-table.h>
148#include <fst/symbol-table-ops.h>
149#include <fst/test-properties.h>
150#include <fst/util.h>
151
152
153#endif  // FST_LIB_FSTLIB_H__
154