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
diff options
context:
space:
mode:
Diffstat (limited to 'mert/Point.cpp')
-rw-r--r--mert/Point.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/mert/Point.cpp b/mert/Point.cpp
index 2fc365baf..18bc8e521 100644
--- a/mert/Point.cpp
+++ b/mert/Point.cpp
@@ -13,7 +13,9 @@ map<unsigned,statscore_t> Point::fixedweights;
unsigned Point::pdim=0;
unsigned Point::ncall=0;
-void Point::Randomize(const parameters_t& min,const parameters_t& max){
+void Point::Randomize(const vector<parameter_t>& min,const vector<parameter_t>& max){
+ assert(min.size()==Point::dim);
+ assert(max.size()==Point::dim);
for (int i=0; i<size(); i++)
operator[](i)= min[i] + (float)random()/(float)RAND_MAX * (float)(max[i]-min[i]);
}
@@ -29,6 +31,19 @@ void Point::Normalize(){
}
}
+//Can initialize from a vector of dim or pdim
+Point::Point(const vector<parameter_t>& init):vector<parameter_t>(Point::dim){
+ if(init.size()==dim){
+ for (int i=0; i<Point::dim; i++)
+ operator[](i)=init[i];
+ }else{
+ assert(init.size()==pdim);
+ for (int i=0; i<Point::dim; i++)
+ operator[](i)=init[optindices[i]];
+ }
+};
+
+
double Point::operator*(const FeatureStats& F)const{
ncall++;//to track performance
double prod=0.0;
@@ -61,15 +76,15 @@ Point Point::operator*(float l)const{
};
ostream& operator<<(ostream& o,const Point& P){
- parameters_t w=P.GetAllWeights();
+ vector<parameter_t> w=P.GetAllWeights();
for(int i=0;i<Point::pdim;i++)
o<<w[i]<<' ';
o<<endl;
return o;
};
-parameters_t Point::GetAllWeights()const{
- parameters_t w;
+vector<parameter_t> Point::GetAllWeights()const{
+ vector<parameter_t> w;
if(OptimizeAll()){
w=*this;
}else{