From f77885e968e30b28669b4d24af75ec4e7bb0a41e Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Fri, 17 Feb 2017 23:33:55 +0800 Subject: Remove unused 'fit_{lt,mt}_{bpl,pl}.cpp' tools --- mass_profile/fit_mt_bpl.cpp | 350 -------------------------------------------- 1 file changed, 350 deletions(-) delete mode 100644 mass_profile/fit_mt_bpl.cpp (limited to 'mass_profile/fit_mt_bpl.cpp') diff --git a/mass_profile/fit_mt_bpl.cpp b/mass_profile/fit_mt_bpl.cpp deleted file mode 100644 index e956f4f..0000000 --- a/mass_profile/fit_mt_bpl.cpp +++ /dev/null @@ -1,350 +0,0 @@ -/* - Perform a double-beta density model fitting to the surface brightness data - Author: Junhua Gu - Last modified: 2011.01.01 - This code is distributed with no warrant -*/ - -//#define HAVE_X_ERROR -#include -#include -#include -#include -#include -#include -#include "statistics/chisq.hpp" -#include "statistics/logchisq.hpp" -#include "statistics/leastsq.hpp" -#include -#include -#include -#include - -using namespace std; -using namespace opt_utilities; -//double s=5.63136645E20; -const double kpc=3.086E21;//kpc in cm -const double Mpc=kpc*1000; -const double pi=4*atan(1); -double std_norm_rand() -{ - double u=0; - double v=0; - while(u<=0||v<=0) - { - u=rand()/(double)RAND_MAX; - rand(); - v=rand()/(double)RAND_MAX; - } - double x=std::sqrt(-log(u))*cos(2*pi*v); - return x; -} - -double shuffle_data(double xc,double xl,double xu) -{ - double lxc=log(xc); - double lxl=log(xc-xl)-log(xc); - double lxu=log(xc+xu)-log(xc); - - if(std_norm_rand()>0) - { - double result=std::exp(lxc-std::abs(std_norm_rand()*lxl)); - return result; - } - else - { - double result=std::exp(lxc+std::abs(std_norm_rand()*lxu)); - return result; - } -} - -int main(int argc,char* argv[]) -{ - srand(time(0)); - if(argc!=4) - { - cerr<<"Usage:"< "<0); - ifstream ifs_data(argv[1]); - default_data_set ds; - ofstream ofs_result("m-t_bpl_result.qdp"); - ofs_result<<"read terr 1 2"<>T>>Tl>>Tu>>M>>Ml>>Mu; - if(!ifs_data.good()) - { - break; - } - line+=" "; - istringstream iss(line); - - if(line[0]=='#') - { - if(!is_first_nonono) - { - ofs_result<<"no no no"<>T>>Tl>>Tu>>M>>Ml>>Mu; - //std::cerr<std::abs(M)) - { - continue; - } - Tl=std::abs(Tl); - Tu=std::abs(Tu); - Ml=std::abs(Ml); - Mu=std::abs(Mu); - ofs_result<Tb) - { - sxxl+=log(x)*log(x); - sxl+=log(x); - syl+=log(y); - sxyl+=log(y)*log(x); - s1l+=1; - } - else - { - sxxu+=log(x)*log(x); - sxu+=log(x); - syu+=log(y); - sxyu+=log(y)*log(x); - s1u+=1; - } - data d(x,y,std::abs(yl),std::abs(yu), - std::abs(xl),std::abs(xu)); - ds.add_data(d); - } - - double Ml=sxxl*s1l-sxl*sxl; - double Mal=sxyl*s1l-syl*sxl; - double Mbl=sxxl*syl-sxl*sxyl; - double k0l=Mal/Ml; - double b0l=Mbl/Ml; - - double Mu=sxxu*s1u-sxu*sxu; - double Mau=sxyu*s1u-syu*sxu; - double Mbu=sxxu*syu-sxu*sxyu; - double k0u=Mau/Mu; - double b0u=Mbu/Mu; - - double gamma0l=k0l; - double gamma0u=k0u; - - double ampl0l=exp(b0l)*pow(Tb,gamma0l); - double ampl0u=exp(b0u)*pow(Tb,gamma0u);; - - - - ofs_result<<"no no no"<,double,std::string> fit; - fit.set_opt_method(powell_method >()); - - fit.set_statistic(logchisq,double,std::string>()); - //fit.set_statistic(leastsq,double,std::string>()); - fit.set_model(bpl1d()); - fit.load_data(ds); - - cerr<<"k0l="< >()); - fit.fit(); - std::vector p=fit.fit(); - Tb=fit.get_param_value("bpx"); - //std::cout<<"chi="< mean_p(p.size()); - std::vector mean_p2(p.size()); - int cnt=0; - for(int n=0;n<100;++n) - { - ++cnt; - cerr<<"."; - double sxxl=0; - double s1l=0; - double sxl=0; - double syl=0; - double sxyl=0; - - double sxxu=0; - double s1u=0; - double sxu=0; - double syu=0; - double sxyu=0; - - opt_utilities::default_data_set ds1; - for(size_t i=0;i(new_x,new_y, - yl/y*new_y, - yu/y*new_y, - xl/x*new_x, - xu/x*new_x)); - - x=new_x; - y=new_y; - if(x>Tb) - { - sxxl+=log(x)*log(x); - sxl+=log(x); - syl+=log(y); - sxyl+=log(y)*log(x); - s1l+=1; - } - else - { - sxxu+=log(x)*log(x); - sxu+=log(x); - syu+=log(y); - sxyu+=log(y)*log(x); - s1u+=1; - } - } - double Ml=sxxl*s1l-sxl*sxl; - double Mal=sxyl*s1l-syl*sxl; - double Mbl=sxxl*syl-sxl*sxyl; - double k0l=Mal/Ml; - double b0l=Mbl/Ml; - - double Mu=sxxu*s1u-sxu*sxu; - double Mau=sxyu*s1u-syu*sxu; - double Mbu=sxxu*syu-sxu*sxyu; - double k0u=Mau/Mu; - double b0u=Mbu/Mu; - - double gamma0l=k0l; - double gamma0u=k0u; - - double ampl0l=exp(b0l)*pow(Tb,gamma0l); - double ampl0u=exp(b0u)*pow(Tb,gamma0u);; - - fit.set_param_value("bpx",Tb); - fit.set_param_value("bpy",(ampl0l+ampl0u)/2); - fit.set_param_value("gamma1",gamma0l); - fit.set_param_value("gamma2",gamma0u); - - - fit.load_data(ds1); - - fit.fit(); - vector p=fit.fit(); - for(size_t i=0;i std_p(p.size()); - cerr<