summaryrefslogtreecommitdiff
path: root/kaldi_io/src/tools/openfst/include/fst/script/prune.h
diff options
context:
space:
mode:
Diffstat (limited to 'kaldi_io/src/tools/openfst/include/fst/script/prune.h')
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/prune.h153
1 files changed, 0 insertions, 153 deletions
diff --git a/kaldi_io/src/tools/openfst/include/fst/script/prune.h b/kaldi_io/src/tools/openfst/include/fst/script/prune.h
deleted file mode 100644
index 7118ff1..0000000
--- a/kaldi_io/src/tools/openfst/include/fst/script/prune.h
+++ /dev/null
@@ -1,153 +0,0 @@
-
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// Copyright 2005-2010 Google, Inc.
-// Author: jpr@google.com (Jake Ratkiewicz)
-
-#ifndef FST_SCRIPT_PRUNE_H_
-#define FST_SCRIPT_PRUNE_H_
-
-#include <vector>
-using std::vector;
-
-#include <fst/script/arg-packs.h>
-#include <fst/script/fst-class.h>
-#include <fst/script/weight-class.h>
-#include <fst/prune.h>
-#include <fst/arcfilter.h>
-
-namespace fst {
-namespace script {
-
-struct PruneOptions {
- WeightClass weight_threshold;
- int64 state_threshold;
- const vector<WeightClass> *distance;
- float delta;
-
- explicit PruneOptions(const WeightClass& w, int64 s,
- vector<WeightClass> *d = 0, float e = kDelta)
- : weight_threshold(w),
- state_threshold(s),
- distance(d),
- delta(e) {}
- private:
- PruneOptions(); // disallow
-};
-
-// converts a script::PruneOptions into a fst::PruneOptions.
-// Notes:
-// If the original opts.distance is not NULL, a new distance will be
-// created with new; it's the client's responsibility to delete this.
-
-template<class A>
-fst::PruneOptions<A, AnyArcFilter<A> > ConvertPruneOptions(
- const PruneOptions &opts) {
- typedef typename A::Weight Weight;
- typedef typename A::StateId StateId;
-
- Weight weight_threshold = *(opts.weight_threshold.GetWeight<Weight>());
- StateId state_threshold = opts.state_threshold;
- vector<Weight> *distance = 0;
-
- if (opts.distance) {
- distance = new vector<Weight>(opts.distance->size());
- for (unsigned i = 0; i < opts.distance->size(); ++i) {
- (*distance)[i] = *((*opts.distance)[i].GetWeight<Weight>());
- }
- }
-
- return fst::PruneOptions<A, AnyArcFilter<A> >(
- weight_threshold, state_threshold, AnyArcFilter<A>(), distance,
- opts.delta);
-}
-
-// 1
-typedef args::Package<MutableFstClass *, const PruneOptions &> PruneArgs1;
-
-template<class Arc>
-void Prune(PruneArgs1 *args) {
- MutableFst<Arc> *ofst = args->arg1->GetMutableFst<Arc>();
-
- typedef typename Arc::Weight Weight;
- typedef typename Arc::StateId StateId;
-
- fst::PruneOptions<Arc, AnyArcFilter<Arc> > opts =
- ConvertPruneOptions<Arc>(args->arg2);
- Prune(ofst, opts);
- delete opts.distance;
-}
-
-// 2
-typedef args::Package<const FstClass &, MutableFstClass *,
- const PruneOptions &> PruneArgs2;
-
-template<class Arc>
-void Prune(PruneArgs2 *args) {
- const Fst<Arc>& ifst = *(args->arg1.GetFst<Arc>());
- MutableFst<Arc> *ofst = args->arg2->GetMutableFst<Arc>();
-
- fst::PruneOptions<Arc, AnyArcFilter<Arc> > opts =
- ConvertPruneOptions<Arc>(args->arg3);
- Prune(ifst, ofst, opts);
- delete opts.distance;
-}
-
-// 3
-typedef args::Package<const FstClass &,
- MutableFstClass *,
- const WeightClass &, int64, float> PruneArgs3;
-
-template<class Arc>
-void Prune(PruneArgs3 *args) {
- const Fst<Arc>& ifst = *(args->arg1.GetFst<Arc>());
- MutableFst<Arc> *ofst = args->arg2->GetMutableFst<Arc>();
- typename Arc::Weight w = *(args->arg3.GetWeight<typename Arc::Weight>());
-
- Prune(ifst, ofst, w, args->arg4, args->arg5);
-}
-
-// 4
-typedef args::Package<MutableFstClass *, const WeightClass&,
- int64, float> PruneArgs4;
-template<class Arc>
-void Prune(PruneArgs4 *args) {
- MutableFst<Arc> *fst = args->arg1->GetMutableFst<Arc>();
- typename Arc::Weight w = *(args->arg2.GetWeight<typename Arc::Weight>());
- Prune(fst, w, args->arg3, args->arg4);
-}
-
-
-// 1
-void Prune(MutableFstClass *fst, const PruneOptions &opts);
-
-// 2
-void Prune(const FstClass &ifst, MutableFstClass *fst,
- const PruneOptions &opts);
-
-// 3
-void Prune(const FstClass &ifst, MutableFstClass *ofst,
- const WeightClass &weight_threshold,
- int64 state_threshold = kNoStateId,
- float delta = kDelta);
-
-// 4
-void Prune(MutableFstClass *fst, const WeightClass& weight_threshold,
- int64 state_threshold, float delta);
-
-} // namespace script
-} // namespace fst
-
-
-
-#endif // FST_SCRIPT_PRUNE_H_