Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mert
diff options
context:
space:
mode:
authorTetsuo Kiso <tetsuo-s@is.naist.jp>2011-11-12 17:04:22 +0400
committerTetsuo Kiso <tetsuo-s@is.naist.jp>2011-11-12 17:04:22 +0400
commit3d70b2e1a5d66a6387b3b4fd023fc3bed2bb28a8 (patch)
tree190e42b3561f56207082a42d2fc28dd964e61154 /mert
parenteecfb171da01a090aed40317ebd8dcebdee9e57c (diff)
Small change: modify initialization of the Data class.
Diffstat (limited to 'mert')
-rw-r--r--mert/Data.cpp14
-rw-r--r--mert/Data.h11
-rw-r--r--mert/FeatureStats.cpp8
-rw-r--r--mert/FeatureStats.h14
-rw-r--r--mert/ScoreStats.cpp4
-rw-r--r--mert/ScoreStats.h14
-rw-r--r--mert/evaluator.cpp2
7 files changed, 39 insertions, 28 deletions
diff --git a/mert/Data.cpp b/mert/Data.cpp
index 3aeacf30e..4c8bd1904 100644
--- a/mert/Data.cpp
+++ b/mert/Data.cpp
@@ -15,16 +15,16 @@
#include "ScorerFactory.h"
#include "Util.h"
-Data::Data(Scorer& ptr):
- theScorer(&ptr),
- _sparse_flag(false)
+Data::Data(Scorer& ptr)
+ : theScorer(&ptr),
+ score_type(theScorer->getName()),
+ number_of_scores(0),
+ _sparse_flag(false),
+ scoredata(new ScoreData(*theScorer)),
+ featdata(new FeatureData)
{
- score_type = (*theScorer).getName();
TRACE_ERR("Data::score_type " << score_type << std::endl);
-
TRACE_ERR("Data::Scorer type from Scorer: " << theScorer->getName() << endl);
- featdata = new FeatureData;
- scoredata = new ScoreData(*theScorer);
}
Data::~Data() {
diff --git a/mert/Data.h b/mert/Data.h
index c0945a6b6..ea2ddd33d 100644
--- a/mert/Data.h
+++ b/mert/Data.h
@@ -23,16 +23,17 @@ class Scorer;
class Data
{
-protected:
- ScoreData* scoredata;
- FeatureData* featdata;
-
private:
Scorer* theScorer;
std::string score_type;
- size_t number_of_scores; // number of scores
+ size_t number_of_scores;
bool _sparse_flag;
+protected:
+ // TODO: Use smart pointers for exceptional-safety.
+ ScoreData* scoredata;
+ FeatureData* featdata;
+
public:
explicit Data(Scorer& sc);
~Data();
diff --git a/mert/FeatureStats.cpp b/mert/FeatureStats.cpp
index 65c25abb1..7f6f66d14 100644
--- a/mert/FeatureStats.cpp
+++ b/mert/FeatureStats.cpp
@@ -100,8 +100,10 @@ FeatureStats::FeatureStats(std::string &theString)
FeatureStats::~FeatureStats()
{
- if (array_)
+ if (array_) {
delete [] array_;
+ array_ = NULL;
+ }
}
void FeatureStats::Copy(const FeatureStats &stats)
@@ -127,11 +129,11 @@ FeatureStats& FeatureStats::operator=(const FeatureStats &stats)
void FeatureStats::expand()
{
- available_*=2;
+ available_ *= 2;
featstats_t t_ = new FeatureStatsType[available_];
memcpy(t_, array_, GetArraySizeWithBytes());
delete [] array_;
- array_=t_;
+ array_ = t_;
}
void FeatureStats::add(FeatureStatsType v)
diff --git a/mert/FeatureStats.h b/mert/FeatureStats.h
index 753578bee..6b1f475b5 100644
--- a/mert/FeatureStats.h
+++ b/mert/FeatureStats.h
@@ -47,6 +47,8 @@ class FeatureStats
private:
size_t available_;
size_t entries_;
+
+ // TODO: Use smart pointer for exceptional-safety.
featstats_t array_;
SparseVector map_;
@@ -70,11 +72,16 @@ public:
void add(FeatureStatsType v);
void addSparse(string name, FeatureStatsType v);
- inline void clear() {
+ void clear() {
memset((void*)array_, 0, GetArraySizeWithBytes());
map_.clear();
}
+ void reset() {
+ entries_ = 0;
+ clear();
+ }
+
inline FeatureStatsType get(size_t i) {
return array_[i];
}
@@ -117,11 +124,6 @@ public:
void loadtxt(ifstream& inFile);
void loadbin(ifstream& inFile);
- inline void reset() {
- entries_ = 0;
- clear();
- }
-
/**
* Write the whole object to a stream.
*/
diff --git a/mert/ScoreStats.cpp b/mert/ScoreStats.cpp
index c410f857c..3d7ac42a1 100644
--- a/mert/ScoreStats.cpp
+++ b/mert/ScoreStats.cpp
@@ -32,8 +32,10 @@ ScoreStats::ScoreStats(std::string &theString)
ScoreStats::~ScoreStats()
{
- if (array_)
+ if (array_) {
delete [] array_;
+ array_ = NULL;
+ }
}
void ScoreStats::Copy(const ScoreStats &stats)
diff --git a/mert/ScoreStats.h b/mert/ScoreStats.h
index b2e64e79e..3a609120d 100644
--- a/mert/ScoreStats.h
+++ b/mert/ScoreStats.h
@@ -23,6 +23,8 @@ class ScoreStats
private:
size_t available_;
size_t entries_;
+
+ // TODO: Use smart pointer for exceptional-safety.
scorestats_t array_;
public:
@@ -44,10 +46,15 @@ public:
void expand();
void add(ScoreStatsType v);
- inline void clear() {
+ void clear() {
memset((void*)array_, 0, GetArraySizeWithBytes());
}
+ void reset() {
+ entries_ = 0;
+ clear();
+ }
+
inline ScoreStatsType get(size_t i) {
return array_[i];
}
@@ -86,11 +93,6 @@ public:
void loadtxt(ifstream& inFile);
void loadbin(ifstream& inFile);
- inline void reset() {
- entries_ = 0;
- clear();
- }
-
/**
* Write the whole object to a stream.
*/
diff --git a/mert/evaluator.cpp b/mert/evaluator.cpp
index c0c10f444..8545f086a 100644
--- a/mert/evaluator.cpp
+++ b/mert/evaluator.cpp
@@ -156,6 +156,7 @@ void evaluate(const string& candFile)
vector<float> scores;
for (int i = 0; i < bootstrap; ++i)
{
+ // TODO: Use smart pointer for exceptional-safety.
ScoreData* scoredata = new ScoreData(*scorer);
for (int j = 0; j < n; ++j)
{
@@ -179,6 +180,7 @@ void evaluate(const string& candFile)
}
else
{
+ // TODO: Use smart pointer for exceptional-safety.
ScoreData* scoredata = new ScoreData(*scorer);
for (int sid = 0; sid < n; ++sid)
{