diff options
author | Aaron LI <aaronly.me@outlook.com> | 2017-02-20 12:26:17 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@outlook.com> | 2017-02-20 12:26:17 +0800 |
commit | 4ea7a05ea9a7352602f1f48a860fd81c36e8bc04 (patch) | |
tree | beab7ec18d48c3e2093cd35fd8c79bd66f604a03 /mass_profile/dbeta.hpp | |
parent | 9cec16d87f6dc2e0b34b605d88d0837a4a48d18c (diff) | |
download | chandra-acis-analysis-4ea7a05ea9a7352602f1f48a860fd81c36e8bc04.tar.bz2 |
Rename mass_profile to src; Add install & uninstall to Makefile
Diffstat (limited to 'mass_profile/dbeta.hpp')
-rw-r--r-- | mass_profile/dbeta.hpp | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/mass_profile/dbeta.hpp b/mass_profile/dbeta.hpp deleted file mode 100644 index 7246b44..0000000 --- a/mass_profile/dbeta.hpp +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef DBETA -#define DBETA -#include "projector.hpp" - -/** - dbeta: double beta model for density - dbeta2: double beta model for density with only one beta -*/ - - -namespace opt_utilities -{ - template <typename T> - class dbeta - :public model<std::vector<T>,std::vector<T>,std::vector<T> > - { - public: - dbeta() - { - this->push_param_info(param_info<std::vector<T>,std::string>("n01",1)); - this->push_param_info(param_info<std::vector<T>,std::string>("beta1",.66)); - this->push_param_info(param_info<std::vector<T>,std::string>("rc1",100)); - - this->push_param_info(param_info<std::vector<T>,std::string>("n02",1)); - this->push_param_info(param_info<std::vector<T>,std::string>("beta2",.67)); - this->push_param_info(param_info<std::vector<T>,std::string>("rc2",110)); - - } - - public: - dbeta<T>* do_clone()const - { - return new dbeta<T>(*this); - } - - std::vector<T> do_eval(const std::vector<T> & x, - const std::vector<T>& p) - { - T n01=std::abs(p[0]); - T beta1=p[1]; - T rc1=p[2]; - - T n02=std::abs(p[3]); - T beta2=p[4]; - T rc2=p[5]; - - - - std::vector<T> result(x.size()-1); - for(size_t i=1;i<x.size();++i) - { - T xi=(x[i]+x[i-1])/2; - T yi=0; - yi=n01*pow(1+xi*xi/rc1/rc1,-3./2.*beta1)+n02*pow(1+xi*xi/rc2/rc2,-3./2.*beta2); - result[i-1]=yi; - } - return result; - } - }; - - template <typename T> - class dbeta2 - :public model<std::vector<T>,std::vector<T>,std::vector<T> > - { - public: - dbeta2() - { - this->push_param_info(param_info<std::vector<T>,std::string>("n01",1)); - this->push_param_info(param_info<std::vector<T>,std::string>("rc1",100)); - this->push_param_info(param_info<std::vector<T>,std::string>("n02",1)); - this->push_param_info(param_info<std::vector<T>,std::string>("rc2",110)); - this->push_param_info(param_info<std::vector<T>,std::string>("beta",.67)); - - } - - public: - dbeta2<T>* do_clone()const - { - return new dbeta2<T>(*this); - } - - std::vector<T> do_eval(const std::vector<T> & x, - const std::vector<T>& p) - { - T n01=std::abs(p[0]); - T rc1=p[1]; - - T n02=std::abs(p[2]); - T rc2=p[3]; - T beta=p[4]; - T beta1=beta; - T beta2=beta; - - std::vector<T> result(x.size()-1); - for(size_t i=1;i<x.size();++i) - { - T xi=(x[i]+x[i-1])/2; - T yi=0; - yi=n01*pow(1+xi*xi/rc1/rc1,-3./2.*beta1)+n02*pow(1+xi*xi/rc2/rc2,-3./2.*beta2); - result[i-1]=yi; - } - return result; - } - }; - -} - -#endif |