BaumWelch  baumwelch-0.3.8
OpenGrm-BaumWelch library
randomizescript.h
Go to the documentation of this file.
1 // Licensed under the Apache License, Version 2.0 (the "License");
2 // you may not use this file except in compliance with the License.
3 // You may obtain a copy of the License at
4 //
5 // http://www.apache.org/licenses/LICENSE-2.0
6 //
7 // Unless required by applicable law or agreed to in writing, software
8 // distributed under the License is distributed on an "AS IS" BASIS,
9 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 // See the License for the specific language governing permissions and
11 // limitations under the License.
12 //
13 // Copyright 2017 and onwards Google, Inc.
14 
15 #ifndef NLP_GRM2_BAUMWELCH_RANDOMIZESCRIPT_H_
16 #define NLP_GRM2_BAUMWELCH_RANDOMIZESCRIPT_H_
17 
18 #include <cstdint>
19 #include <random>
20 #include <tuple>
21 
22 #include <fst/mutable-fst.h>
23 #include <fst/script/fst-class.h>
24 #include <baumwelch/randomize.h>
25 
26 namespace fst {
27 namespace script {
28 
29 using BaumWelchRandomizeArgs = std::tuple<MutableFstClass *, uint64_t>;
30 
31 template <class Arc>
33  MutableFst<Arc> *model = std::get<0>(*args)->GetMutableFst<Arc>();
34  Randomize(model, std::get<1>(*args));
35 }
36 
37 void Randomize(MutableFstClass *fst, uint64_t seed = std::random_device()());
38 
39 } // namespace script
40 } // namespace fst
41 
42 #endif // NLP_GRM2_BAUMWELCH_RANDOMIZESCRIPT_H_
43 
Definition: a-star.h:30
std::tuple< MutableFstClass *, uint64_t > BaumWelchRandomizeArgs
void Randomize(BaumWelchRandomizeArgs *args)