epsnormalize.h revision f4c12fce1ee58e670f9c3fce46c40296ba9ee8a2
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Licensed under the Apache License, Version 2.0 (the "License");
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// you may not use this file except in compliance with the License.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// You may obtain a copy of the License at
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//     http://www.apache.org/licenses/LICENSE-2.0
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)//
8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Unless required by applicable law or agreed to in writing, software
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// distributed under the License is distributed on an "AS IS" BASIS,
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See the License for the specific language governing permissions and
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// limitations under the License.
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2005-2010 Google, Inc.
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Author: jpr@google.com (Jake Ratkiewicz)
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef FST_SCRIPT_EPSNORMALIZE_H_
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define FST_SCRIPT_EPSNORMALIZE_H_
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <fst/script/arg-packs.h>
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <fst/script/fst-class.h>
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <fst/epsnormalize.h>
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace fst {
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace script {
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)typedef args::Package<const FstClass&, MutableFstClass*,
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                      EpsNormalizeType> EpsNormalizeArgs;
2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)template<class Arc>
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void EpsNormalize(EpsNormalizeArgs  *args) {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const Fst<Arc> &ifst = *(args->arg1.GetFst<Arc>());
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  MutableFst<Arc> *ofst = args->arg2->GetMutableFst<Arc>();
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  EpsNormalize(ifst, ofst, args->arg3);
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void EpsNormalize(const FstClass &ifst, MutableFstClass *ofst,
3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                  EpsNormalizeType norm_type = EPS_NORM_INPUT);
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}  // namespace script
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace fst
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // FST_SCRIPT_EPSNORMALIZE_H_
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)