diff options
author | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2011-02-12 17:23:12 +0000 |
---|---|---|
committer | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2011-02-12 17:23:12 +0000 |
commit | edc1fd182e0aca1c8e33788063f36be4e7e142fe (patch) | |
tree | ec77891919d04546b928b91345bcfe88e26dcf00 | |
parent | 42dafd9fa725a232be82f15a53e5ae0520d7bfc1 (diff) | |
download | opt-utilities-edc1fd182e0aca1c8e33788063f36be4e7e142fe.tar.bz2 |
git-svn-id: file:///home/svn/opt_utilities@173 ed2142bd-67ad-457f-ba7c-d818d4011675
-rw-r--r-- | pre_estimater/lin1d_estimater.hpp | 38 | ||||
-rw-r--r-- | pre_estimater/pre_estimater.hpp | 29 |
2 files changed, 67 insertions, 0 deletions
diff --git a/pre_estimater/lin1d_estimater.hpp b/pre_estimater/lin1d_estimater.hpp new file mode 100644 index 0000000..1ec62cb --- /dev/null +++ b/pre_estimater/lin1d_estimater.hpp @@ -0,0 +1,38 @@ +#ifndef LIN1D_ESTIMATER +#define LIN1D_ESTIMATER +#include "pre_estimater.hpp" +#include <misc/optvec.hpp> +#include <vmodels/lin1d.hpp> + + +namespace opt_utilities +{ + template <typename T> + class lin1d_estimater + :public pre_estimater<optvec<T>,optvec<T>,optvec<T>,T,std::string> + { + private: + const std::string model_id; + private: + lin1d_estimater() + :model_id(lin1d<T>().get_type_name()) + {} + + lin1d_estimater<T> do_clone()const + { + return new lin1d_estimater<T>(*this); + } + + void do_estimate(fitter<optvec<T>,optvec<T>,optvec<T>,T,std::string>& fit)const + { + if(model_id!=fit.get_model().get_type_name()) + { + return; + } + } + }; +} + + + +#endif diff --git a/pre_estimater/pre_estimater.hpp b/pre_estimater/pre_estimater.hpp new file mode 100644 index 0000000..db21e94 --- /dev/null +++ b/pre_estimater/pre_estimater.hpp @@ -0,0 +1,29 @@ +#ifndef PRE_ESTIMATER_HPP +#define PRE_ESTIMATER_HPP + +#include <core/fitter.hpp> + + +namespace opt_utilities +{ + template <typename Ty,typename Tx,typename Tp,typename Ts=Ty,typename Tstr=std::string> + class pre_estimater + { + private: + virtual void do_estimate(fitter<Ty,Tx,Tp,Ts,Tstr>& fit)const=0; + virtual pre_estimater* do_clone()const=0; + public: + void estimate(fitter<Ty,Tx,Tp,Ts,Tstr>& fit)const + { + do_estimate(fit); + } + + pre_estimater* clone()const + { + return this->do_clone(); + } + }; +} + + +#endif |