summaryrefslogtreecommitdiff
path: root/vest/scorer.cc
diff options
context:
space:
mode:
authorgraehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-07-20 00:11:45 +0000
committergraehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-07-20 00:11:45 +0000
commitf28e6d45671035d39dcfc25070c72f6e120032e1 (patch)
treed3627fd7c440bae67b81f1578fea9576d4836603 /vest/scorer.cc
parentb6cf365f217bc7b528243071af733d4a251ff77c (diff)
Score::TimesEquals for vlad-mira, intrusive refcount for Score, shared_ptr compile fixes for decoder progs
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@331 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'vest/scorer.cc')
-rw-r--r--vest/scorer.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/vest/scorer.cc b/vest/scorer.cc
index 86894c32..05269a3b 100644
--- a/vest/scorer.cc
+++ b/vest/scorer.cc
@@ -28,6 +28,10 @@ using namespace std;
const bool minimize_segments = true; // if adjacent segments have equal scores, merge them
+void Score::TimesEquals(float scale) {
+ cerr<<"UNIMPLEMENTED except for BLEU (for MIRA): Score::TimesEquals"<<endl;abort();
+}
+
ScoreType ScoreTypeFromString(const string& st) {
const string sl = LowercaseString(st);
if (sl == "ser")
@@ -159,6 +163,7 @@ class BLEUScore : public Score {
float ComputeScore() const;
float ComputePartialScore() const;
void ScoreDetails(string* details) const;
+ void TimesEquals(float scale);
void PlusEquals(const Score& delta);
void PlusEquals(const Score& delta, const float scale);
void PlusPartialEquals(const Score& delta, int oracle_e_cover, int oracle_f_cover, int src_len);
@@ -566,6 +571,13 @@ void BLEUScore::PlusEquals(const Score& delta) {
hyp_len += d.hyp_len;
}
+void BLEUScore::TimesEquals(float scale) {
+ correct_ngram_hit_counts *= scale;
+ hyp_ngram_counts *= scale;
+ ref_len *= scale;
+ hyp_len *= scale;
+}
+
void BLEUScore::PlusEquals(const Score& delta, const float scale) {
const BLEUScore& d = static_cast<const BLEUScore&>(delta);
correct_ngram_hit_counts = correct_ngram_hit_counts + (d.correct_ngram_hit_counts * scale);