diff options
-rw-r--r-- | data_sets/default_data_set.hpp | 14 | ||||
-rw-r--r-- | statistics/logchisq.hpp | 38 |
2 files changed, 25 insertions, 27 deletions
diff --git a/data_sets/default_data_set.hpp b/data_sets/default_data_set.hpp index 51e6b70..696403e 100644 --- a/data_sets/default_data_set.hpp +++ b/data_sets/default_data_set.hpp @@ -26,7 +26,7 @@ namespace opt_utilities // private: public: std::vector<data<Ty,Tx> > data_vec; - + data_set<Ty,Tx>* do_clone()const { return new default_data_set<Ty,Tx>(*this); @@ -37,17 +37,17 @@ namespace opt_utilities { return data_vec.at(i); } - + size_t do_size()const { return data_vec.size(); } - + void do_add_data(const data<Ty,Tx>& d) { data_vec.push_back(d); } - + void do_clear() { data_vec.clear(); @@ -56,7 +56,7 @@ namespace opt_utilities public: default_data_set() {} - + default_data_set(const default_data_set<Ty,Tx>& rhs) :data_vec(rhs.data_vec) {} @@ -64,7 +64,7 @@ namespace opt_utilities default_data_set(const data_set<Ty,Tx>& rhs) { data_vec.resize(rhs.size()); - for(int i=0;i<data_vec.size();++i) + for(size_t i=0;i<data_vec.size();++i) { data_vec[i]=(rhs.get_data(i)); } @@ -86,7 +86,7 @@ namespace opt_utilities return *this; } - + }; } diff --git a/statistics/logchisq.hpp b/statistics/logchisq.hpp index 57cf7aa..c9601c1 100644 --- a/statistics/logchisq.hpp +++ b/statistics/logchisq.hpp @@ -24,8 +24,8 @@ namespace opt_utilities :opt_exception("log chisq statistics cannot be used when has negative data!")
{}
};
-
-
+
+
/**
\brief chi-square statistic
@@ -42,8 +42,8 @@ namespace opt_utilities private:
bool verb;
int n;
-
-
+
+
statistic<Ty,Tx,Tp,Ts,Tstr>* do_clone()const
{
// return const_cast<statistic<Ty,Tx,Tp>*>(this);
@@ -54,7 +54,7 @@ namespace opt_utilities {
return "chi^2 statistic";
}
-
+
public:
void verbose(bool v)
{
@@ -64,8 +64,8 @@ namespace opt_utilities logchisq()
:verb(false)
{}
-
-
+
+
Ts do_eval(const Tp& p)
{
@@ -93,7 +93,7 @@ namespace opt_utilities }
}
-
+
return result;
}
};
@@ -113,7 +113,7 @@ namespace opt_utilities private:
bool verb;
int n;
-
+
statistic<Ty,Tx,Tp,Ts,Tstr>* do_clone()const
{
// return const_cast<statistic<Ty,Tx,Tp>*>(this);
@@ -133,19 +133,19 @@ namespace opt_utilities logchisq()
:verb(false)
{}
-
-
+
+
Ty do_eval(const Tp& p)
{
Ty result(0);
- for(int i=0;i!=(this->get_data_set()).size();++i)
+ for(size_t i=0;i!=(this->get_data_set()).size();++i)
{
Ty y_model=this->eval_model(this->get_data_set().get_data(i).get_x(),p);
Ty y_obs=this->get_data_set().get_data(i).get_y();
Ty y_err;
-
+
if(y_model>y_obs)
{
y_err=std::abs(this->get_data_set().get_data(i).get_y_upper_err());
@@ -161,10 +161,10 @@ namespace opt_utilities Ty logy=std::log(y_obs);
Ty logym=std::log(y_model);
Ty logerr=std::log(y_obs+y_err)-log(y_obs);
-
-
+
+
Ty chi=(logy-logym)/logerr;
-
+
// Ty chi=(this->get_data_set().get_data(i).get_y()-this->eval_model(this->get_data_set().get_data(i).get_x(),p));
// cerr<<chi<<"\n";
result+=chi*chi;
@@ -187,15 +187,13 @@ namespace opt_utilities }
}
-
+
return result;
}
};
#endif
-
+
}
#endif
//EOF
-
-
|