summaryrefslogtreecommitdiff
path: root/decoder/apply_fsa_models.h
diff options
context:
space:
mode:
Diffstat (limited to 'decoder/apply_fsa_models.h')
-rwxr-xr-xdecoder/apply_fsa_models.h43
1 files changed, 3 insertions, 40 deletions
diff --git a/decoder/apply_fsa_models.h b/decoder/apply_fsa_models.h
index 0227664a..5120fb4e 100755
--- a/decoder/apply_fsa_models.h
+++ b/decoder/apply_fsa_models.h
@@ -4,11 +4,11 @@
#include <string>
#include <iostream>
#include "feature_vector.h"
-#include "cfg.h"
struct FsaFeatureFunction;
struct Hypergraph;
struct SentenceMetadata;
+struct HgCFG;
struct ApplyFsaBy {
enum {
@@ -36,40 +36,6 @@ struct ApplyFsaBy {
static std::string all_names(); // space separated
};
-// in case you might want the CFG whether or not you apply FSA models:
-struct HgCFG {
- HgCFG(Hypergraph const& ih) : ih(ih) { have_cfg=false; }
- Hypergraph const& ih;
- CFG cfg;
- bool have_cfg;
- void InitCFG(CFG &to) {
- to.Init(ih,true,false,true);
- }
-
- CFG &GetCFG()
- {
- if (!have_cfg) {
- have_cfg=true;
- InitCFG(cfg);
- }
- return cfg;
- }
- void GiveCFG(CFG &to) {
- if (!have_cfg)
- InitCFG(to);
- else {
- have_cfg=false;
- to.Clear();
- to.Swap(cfg);
- }
- }
- CFG const& GetCFG() const {
- assert(have_cfg);
- return cfg;
- }
-};
-
-
void ApplyFsaModels(HgCFG &hg_or_cfg_in,
const SentenceMetadata& smeta,
const FsaFeatureFunction& fsa,
@@ -77,15 +43,12 @@ void ApplyFsaModels(HgCFG &hg_or_cfg_in,
ApplyFsaBy const& cfg,
Hypergraph* out);
-inline void ApplyFsaModels(Hypergraph const& ih,
+void ApplyFsaModels(Hypergraph const& ih,
const SentenceMetadata& smeta,
const FsaFeatureFunction& fsa,
DenseWeightVector const& weights, // pre: in is weighted by these (except with fsa featval=0 before this)
ApplyFsaBy const& cfg,
- Hypergraph* out) {
- HgCFG i(ih);
- ApplyFsaModels(i,smeta,fsa,weights,cfg,out);
-}
+ Hypergraph* out);
#endif