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/disambiguate.h>
69 #include <fst/encode.h>
70 #include <fst/epsnormalize.h>
71 #include <fst/equal.h>
72 #include <fst/equivalent.h>
73 #include <fst/factor-weight.h>
74 #include <fst/intersect.h>
75 #include <fst/invert.h>
76 #include <fst/map.h>
77 #include <fst/minimize.h>
78 #include <fst/project.h>
79 #include <fst/prune.h>
80 #include <fst/push.h>
81 #include <fst/randequivalent.h>
82 #include <fst/randgen.h>
83 #include <fst/rational.h>
84 #include <fst/relabel.h>
85 #include <fst/replace.h>
86 #include <fst/replace-util.h>
87 #include <fst/reverse.h>
88 #include <fst/reweight.h>
89 #include <fst/rmepsilon.h>
90 #include <fst/rmfinalepsilon.h>
91 #include <fst/shortest-distance.h>
92 #include <fst/shortest-path.h>
93 #include <fst/statesort.h>
94 #include <fst/state-map.h>
95 #include <fst/synchronize.h>
96 #include <fst/topsort.h>
97 #include <fst/union.h>
98 #include <fst/verify.h>
99 #include <fst/visit.h>
100 
101 // Weights
102 #include <fst/weight.h>
103 #include <fst/expectation-weight.h>
104 #include <fst/float-weight.h>
105 #include <fst/lexicographic-weight.h>
106 #include <fst/pair-weight.h>
107 #include <fst/power-weight.h>
108 #include <fst/product-weight.h>
109 #include <fst/random-weight.h>
110 #include <fst/signed-log-weight.h>
111 #include <fst/sparse-power-weight.h>
112 #include <fst/sparse-tuple-weight.h>
113 #include <fst/string-weight.h>
114 #include <fst/tuple-weight.h>
115 
116 // Auxiliary classes for composition
117 #include <fst/compose-filter.h>
118 #include <fst/lookahead-filter.h>
119 #include <fst/lookahead-matcher.h>
120 #include <fst/matcher-fst.h>
121 #include <fst/matcher.h>
122 #include <fst/state-table.h>
123 
124 // Data structures
125 #include <fst/heap.h>
126 #include <fst/interval-set.h>
127 #include <fst/queue.h>
128 #include <fst/union-find.h>
129 
130 // Miscellaneous
131 #include <fst/accumulator.h>
132 #include <fst/add-on.h>
133 #include <fst/arc.h>
134 #include <fst/arcfilter.h>
135 #include <fst/cache.h>
136 #include <fst/complement.h>
137 #include <fst/dfs-visit.h>
138 #include <fst/generic-register.h>
139 #include <fst/label-reachable.h>
140 #include <fst/partition.h>
141 #include <fst/properties.h>
142 #include <fst/register.h>
143 #include <fst/state-reachable.h>
144 #include <iostream>
145 #include <fstream>
146 #include <sstream>
147 #include <fst/string.h>
148 #include <fst/symbol-table.h>
149 #include <fst/symbol-table-ops.h>
150 #include <fst/test-properties.h>
151 #include <fst/util.h>
152 
153 
154 #endif  // FST_LIB_FSTLIB_H__
155