rustfst/algorithms/
mod.rs

1pub use self::{
2    add_super_final_state::add_super_final_state,
3    all_pairs_shortest_distance::all_pairs_shortest_distance,
4    condense::condense,
5    connect::connect,
6    fst_convert::{fst_convert, fst_convert_from_ref},
7    inversion::invert,
8    isomorphic::{isomorphic, isomorphic_with_config, IsomorphicConfig},
9    minimize::{acceptor_minimize, minimize, minimize_with_config, MinimizeConfig},
10    optimize::optimize,
11    projection::{project, ProjectType},
12    push::{
13        push, push_weights, push_weights_with_config, push_with_config, PushConfig, PushType,
14        PushWeightsConfig,
15    },
16    queue::{Queue, QueueType},
17    relabel_pairs::relabel_pairs,
18    reverse::reverse,
19    reweight::{reweight, ReweightType},
20    rm_final_epsilon::rm_final_epsilon,
21    shortest_distance::{shortest_distance, shortest_distance_with_config, ShortestDistanceConfig},
22    shortest_path::{shortest_path, shortest_path_with_config, ShortestPathConfig},
23    state_sort::state_sort,
24    top_sort::top_sort,
25    tr_map::{tr_map, FinalTr, MapFinalAction, TrMapper},
26    tr_sort::tr_sort,
27    tr_sum::tr_sum,
28    tr_unique::tr_unique,
29    weight_convert::{weight_convert, WeightConverter},
30};
31
32mod add_super_final_state;
33mod all_pairs_shortest_distance;
34/// Functions to compute Kleene closure (star or plus) of an FST.
35pub mod closure;
36#[allow(clippy::type_complexity)]
37/// Functions to compose FSTs.
38pub mod compose;
39/// Functions to concatenate FSTs.
40pub mod concat;
41mod condense;
42mod connect;
43/// Functions to determinize FSTs.
44pub mod determinize;
45pub(crate) mod dfs_visit;
46/// Functions to encode FSTs as FSAs and vice versa.
47pub mod encode;
48/// Functions to factor various weight types.
49pub mod factor_weight;
50mod fst_convert;
51mod inversion;
52mod isomorphic;
53mod minimize;
54mod optimize;
55mod partition;
56mod projection;
57mod push;
58mod queue;
59
60/// Functions to randomly generate paths through an Fst. A static and a delayed version are available.
61pub mod randgen;
62mod relabel_pairs;
63/// Functions for lazy replacing transitions in an FST.
64pub mod replace;
65mod reverse;
66mod reweight;
67
68/// Functions to remove epsilon transitions from an Fst. A static and a delayed version are available.
69pub mod rm_epsilon;
70mod rm_final_epsilon;
71mod shortest_distance;
72mod shortest_path;
73mod state_sort;
74mod top_sort;
75mod tr_map;
76mod tr_sort;
77mod tr_sum;
78pub(crate) mod tr_unique;
79/// Functions to compute the union of FSTs.
80pub mod union;
81mod weight_convert;
82
83/// Module providing different structures implementing the `Queue` trait.
84pub mod queues;
85
86/// Function objects to restrict which trs are traversed in an FST.
87pub mod tr_filters;
88
89/// Module that provides structures implementing the `TrMapper` trait.
90pub mod tr_mappers;
91
92pub(crate) mod visitors;
93
94/// Module providing structures implementing the `WeightConverter` trait.
95pub mod weight_converters;
96
97/// Functions to compare / sort the Trs of an FST.
98pub mod tr_compares {
99    pub use super::isomorphic::tr_compare;
100    pub use super::tr_sort::{ILabelCompare, OLabelCompare, TrCompare};
101}
102
103/// Module providing the necessary functions to implement a new Delayed Fst.
104pub mod lazy;