diff options
author | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2011-02-19 01:46:03 +0000 |
---|---|---|
committer | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2011-02-19 01:46:03 +0000 |
commit | 784f745b792b45d1cce283fac3d5b0fcc6946adf (patch) | |
tree | bdaacca801c3b367b23be515dadaa2e0a0815616 /pre_estimater/pre_estimater.hpp | |
parent | 33e278850572786452388070cf7a3d745be25892 (diff) | |
download | opt-utilities-784f745b792b45d1cce283fac3d5b0fcc6946adf.tar.bz2 |
git-svn-id: file:///home/svn/opt_utilities@177 ed2142bd-67ad-457f-ba7c-d818d4011675
Diffstat (limited to 'pre_estimater/pre_estimater.hpp')
-rw-r--r-- | pre_estimater/pre_estimater.hpp | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/pre_estimater/pre_estimater.hpp b/pre_estimater/pre_estimater.hpp deleted file mode 100644 index 859c5ca..0000000 --- a/pre_estimater/pre_estimater.hpp +++ /dev/null @@ -1,120 +0,0 @@ -#ifndef PRE_ESTIMATER_HPP -#define PRE_ESTIMATER_HPP - -#include <core/fitter.hpp> - - -namespace opt_utilities -{ - - - template <typename Ty,typename Tx,typename Tp,typename Tstr=std::string> - class pre_estimater - { - private: - std::string model_id; - private: - virtual void do_estimate(const data_set<Ty,Tx>& d,model<Ty,Tx,Tp,Tstr>& m)const=0; - virtual pre_estimater* do_clone()const=0; - virtual void do_destroy() - { - delete this; - } - public: - void estimate(const data_set<Ty,Tx>& d,model<Ty,Tx,Tp,Tstr>& m)const - { - do_estimate(d,m); - } - - pre_estimater* clone()const - { - return this->do_clone(); - } - - void destroy() - { - do_destroy(); - } - public: - std::string get_model_id()const - { - return model_id; - } - - void set_model_id(const std::string& s) - { - model_id=s; - } - }; - - template <typename Ty,typename Tx,typename Tp,typename Tstr=std::string> - class pre_estimatable - { - private: - pre_estimater<Ty,Tx,Tp,Tstr>* ppe; - public: - pre_estimatable() - :ppe(0) - {} - - pre_estimatable(const pre_estimatable<Ty,Tx,Tp,Tstr>& rhs) - { - if(rhs.ppe) - { - ppe=rhs.ppe->clone(); - } - } - - pre_estimatable& operator=(const pre_estimatable<Ty,Tx,Tp,Tstr>& rhs) - { - if(this==&rhs) - { - return *this; - } - if(ppe) - { - ppe->destroy(); - } - ppe=rhs.ppe->clone(); - } - - void set_pre_estimater(const pre_estimater<Ty,Tx,Tp,Tstr>& pe) - { - if(dynamic_cast<model<Ty,Tx,Tp,Tstr>&>(*this).get_type_name()!=pe.get_model_id()) - { - return; - } - if(ppe) - { - ppe->destroy(); - } - ppe=pe.clone(); - } - - virtual ~pre_estimatable() - { - if(ppe) - { - ppe->destroy(); - } - } - - public: - void estimate(const data_set<Ty,Tx>& d) - { - if(ppe) - { - ppe->estimate(d,dynamic_cast<model<Ty,Tx,Tp,Tstr>&>(*this)); - } - } - }; - - template <typename Ty,typename Tx,typename Tp,typename Ts,typename Tstr> - void pre_estimate(fitter<Ty,Tx,Tp,Ts,Tstr>& fit) - { - dynamic_cast<pre_estimatable<Ty,Tx,Tp,Tstr>&>(fit.get_model()).estimate(fit.get_data_set()); - } -} - - -#endif |