diff options
Diffstat (limited to 'contrib/moses2/FF/LexicalReordering/LRState.h')
-rw-r--r-- | contrib/moses2/FF/LexicalReordering/LRState.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/contrib/moses2/FF/LexicalReordering/LRState.h b/contrib/moses2/FF/LexicalReordering/LRState.h new file mode 100644 index 000000000..0e906d09a --- /dev/null +++ b/contrib/moses2/FF/LexicalReordering/LRState.h @@ -0,0 +1,48 @@ +#pragma once +#include "../FFState.h" +#include "LRModel.h" + +namespace Moses2 +{ +template<typename WORD> +class TargetPhrase; + +class LexicalReordering; +class Hypothesis; +class System; +class Scores; +class Bitmap; +class ManagerBase; +class InputType; +class InputPathBase; +class Word; + +class LRState: public FFState +{ +public: + typedef LRModel::ReorderingType ReorderingType; + const TargetPhrase<Moses2::Word> *prevTP; + + LRState(const LRModel &config, LRModel::Direction dir, size_t offset); + + virtual void Init(const LRState *prev, const TargetPhrase<Moses2::Word> &topt, + const InputPathBase &path, bool first, const Bitmap *coverage) = 0; + + virtual void Expand(const ManagerBase &mgr, const LexicalReordering &ff, + const Hypothesis &hypo, size_t phraseTableInd, Scores &scores, + FFState &state) const = 0; + + void CopyScores(const System &system, Scores &accum, const TargetPhrase<Moses2::Word> &topt, + ReorderingType reoType) const; + +protected: + const LRModel& m_configuration; + LRModel::Direction m_direction; + size_t m_offset; + + int + ComparePrevScores(const TargetPhrase<Moses2::Word> *other) const; + +}; + +} |