From 5b6dc79427b8f7eeb6a7ff68034ab8548ce670ea Mon Sep 17 00:00:00 2001 From: Alexander Gutkin Date: Thu, 28 Feb 2013 00:24:20 +0000 Subject: Bumped OpenFST implementation to openfst-1.3.3-CL41851770. Updated OpenFST implementation to the most recent version used by Greco3 (corresponds to nlp::fst exported at Perforce CL 41851770). In particular this version has an improved PDT support. Change-Id: I5aadfc962297eef73922c67e7d57866f11ee7d81 --- src/include/fst/script/map.h | 54 +++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 23 deletions(-) (limited to 'src/include/fst/script/map.h') diff --git a/src/include/fst/script/map.h b/src/include/fst/script/map.h index 2332074..3caaa9f 100644 --- a/src/include/fst/script/map.h +++ b/src/include/fst/script/map.h @@ -59,46 +59,54 @@ void Map(MapArgs *args) { float delta = args->args.arg3; typename Arc::Weight w = *(args->args.arg4.GetWeight()); + Fst *fst = NULL; + Fst *lfst = NULL; + Fst *l64fst = NULL; + Fst *sfst = NULL; if (map_type == ARC_SUM_MAPPER) { - args->retval = new FstClass( - script::StateMap(ifst, ArcSumMapper(ifst))); + args->retval = new FstClass(*(fst = + script::StateMap(ifst, ArcSumMapper(ifst)))); } else if (map_type == IDENTITY_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, IdentityArcMapper())); + args->retval = new FstClass(*(fst = + script::ArcMap(ifst, IdentityArcMapper()))); } else if (map_type == INVERT_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, InvertWeightMapper())); + args->retval = new FstClass(*(fst = + script::ArcMap(ifst, InvertWeightMapper()))); } else if (map_type == PLUS_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, PlusMapper(w))); + args->retval = new FstClass(*(fst = + script::ArcMap(ifst, PlusMapper(w)))); } else if (map_type == QUANTIZE_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, QuantizeMapper(delta))); + args->retval = new FstClass(*(fst = + script::ArcMap(ifst, QuantizeMapper(delta)))); } else if (map_type == RMWEIGHT_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, RmWeightMapper())); + args->retval = new FstClass(*(fst = + script::ArcMap(ifst, RmWeightMapper()))); } else if (map_type == SUPERFINAL_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, SuperFinalMapper())); + args->retval = new FstClass(*(fst = + script::ArcMap(ifst, SuperFinalMapper()))); } else if (map_type == TIMES_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, TimesMapper(w))); + args->retval = new FstClass(*(fst = + script::ArcMap(ifst, TimesMapper(w)))); } else if (map_type == TO_LOG_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, WeightConvertMapper())); + args->retval = new FstClass(*(lfst = + script::ArcMap(ifst, WeightConvertMapper()))); } else if (map_type == TO_LOG64_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, WeightConvertMapper())); + args->retval = new FstClass(*(l64fst = + script::ArcMap(ifst, WeightConvertMapper()))); } else if (map_type == TO_STD_MAPPER) { - args->retval = new FstClass( - script::ArcMap(ifst, WeightConvertMapper())); + args->retval = new FstClass(*(sfst = + script::ArcMap(ifst, WeightConvertMapper()))); } else { FSTERROR() << "Error: unknown/unsupported mapper type: " << map_type; VectorFst *ofst = new VectorFst; ofst->SetProperties(kError, kError); - args->retval = new FstClass(ofst); + args->retval = new FstClass(*(fst =ofst)); } + delete sfst; + delete l64fst; + delete lfst; + delete fst; } -- cgit v1.2.3