diff options
author | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2010-10-17 17:34:47 +0000 |
---|---|---|
committer | astrojhgu <astrojhgu@ed2142bd-67ad-457f-ba7c-d818d4011675> | 2010-10-17 17:34:47 +0000 |
commit | 9fb6a64e135115b0af416a9b95afe7c7ff79380f (patch) | |
tree | 5db85ecfb756bae598ffc9b17b6065dd97b61dd9 /vmodels | |
parent | 28fcd862c8831dd4e29f744d162f9181a6e14ac8 (diff) | |
download | opt-utilities-9fb6a64e135115b0af416a9b95afe7c7ff79380f.tar.bz2 |
git-svn-id: file:///home/svn/opt_utilities@138 ed2142bd-67ad-457f-ba7c-d818d4011675
Diffstat (limited to 'vmodels')
-rw-r--r-- | vmodels/normed_dgauss1d.hpp | 75 | ||||
-rw-r--r-- | vmodels/normed_gauss1d.hpp | 58 |
2 files changed, 0 insertions, 133 deletions
diff --git a/vmodels/normed_dgauss1d.hpp b/vmodels/normed_dgauss1d.hpp deleted file mode 100644 index 4060fa6..0000000 --- a/vmodels/normed_dgauss1d.hpp +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef NDGAUSS_MODEL_H_ -#define NDGAUSS_MODEL_H_ -#define OPT_HEADER -#include <core/fitter.hpp> -#include <cmath> -#include <misc/optvec.hpp> - -namespace opt_utilities -{ - template <typename T> - class normed_dgauss1d - :public model<optvec<T>,optvec<T>,optvec<T>,std::string> - { - private: - normed_dgauss1d* do_clone()const - { - return new normed_dgauss1d<T>(*this); - } - - const char* do_get_type_name()const - { - return "1d double normed gaussian"; - } - public: - normed_dgauss1d() - { - this->push_param_info(param_info<optvec<T> >("x01",0)); - this->push_param_info(param_info<optvec<T> >("sigma1",1)); - this->push_param_info(param_info<optvec<T> >("x02",0.1)); - this->push_param_info(param_info<optvec<T> >("sigma2",1)); - this->push_param_info(param_info<optvec<T> >("theta",1)); - } - - - public: - optvec<T> do_eval(const optvec<T>& x,const optvec<T>& param) - { - const double pi=3.14159265358979323846; - T x01=get_element(param,0); - T sigma1=get_element(param,1); - T x02=get_element(param,2); - T sigma2=get_element(param,3); - T theta=get_element(param,4); - if(sigma1*sigma1<std::numeric_limits<double>::epsilon()) - { - sigma1=std::numeric_limits<double>::epsilon(); - } - if(sigma2*sigma2<std::numeric_limits<double>::epsilon()) - { - sigma2=std::numeric_limits<double>::epsilon(); - } - T N1=1/sqrt(sigma1*sigma1*pi*2); - T N2=1/sqrt(sigma2*sigma2*pi*2); - - optvec<T> y1=(x-x01)/sigma1; - optvec<T> y2=(x-x02)/sigma2; - - T r1=sin(theta); - T r2=cos(theta); - - return r1*r1*N1*exp(-y1*y1/2.)+r2*r2*N2*exp(-y2*y2/2.);; - } - - private: - std::string do_get_information()const - { - return ""; - } - }; -} - - - -#endif -//EOF diff --git a/vmodels/normed_gauss1d.hpp b/vmodels/normed_gauss1d.hpp deleted file mode 100644 index c95b324..0000000 --- a/vmodels/normed_gauss1d.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef NGAUSS_MODEL_H_ -#define NGAUSS_MODEL_H_ -#define OPT_HEADER -#include <core/fitter.hpp> -#include <cmath> -#include <misc/optvec.hpp> - -namespace opt_utilities -{ - template <typename T> - class normed_gauss1d - :public model<optvec<T>,optvec<T>,optvec<T>,std::string> - { - private: - normed_gauss1d* do_clone()const - { - return new normed_gauss1d<T>(*this); - } - - const char* do_get_type_name()const - { - return "1d normed gaussian"; - } - public: - normed_gauss1d() - { - this->push_param_info(param_info<optvec<T> >("x0",0)); - this->push_param_info(param_info<optvec<T> >("sigma",1)); - } - - - public: - optvec<T> do_eval(const optvec<T>& x,const optvec<T>& param) - { - const double pi=3.14159265358979323846; - T x0=get_element(param,0); - T sigma=get_element(param,1); - if(sigma*sigma<std::numeric_limits<double>::epsilon()) - { - sigma=std::numeric_limits<double>::epsilon(); - } - T N=1/sqrt(sigma*sigma*pi*2); - optvec<T> y=(x-x0)/sigma; - return N*exp(-y*y/2.); - } - - private: - std::string do_get_information()const - { - return ""; - } - }; -} - - - -#endif -//EOF |