/* * mod.hpp * * Created on: May 31, 2013 * Author: azoghbi */ #ifndef MOD_HPP_ #define MOD_HPP_ #include "def.hpp" #include #include class mod { void _CSfq( vec , vector& , vector& ); public: int n,nfq,npar; double dt,f1,f2; vec lc,lce,t,FqL; vector Cfq,Sfq,Cv,Cfq2,Sfq2; vec2 C,Ci,I,yyT,yyTmC,dC,C2,C3; vec Cilc; ae_int_t info; densesolverreport rep; mod(); virtual ~mod(); virtual void _C( vec ); virtual void _dC( vec , int ); virtual void step_pars( int , vec& , vec& ); virtual void print_pars( vec& , vec& ); virtual void print_pars( vec& , vec& , vec& ); virtual void what_pars( int&, int& ); void setlc(){ lc.setlength(n); lce.setlength(n); t.setlength(n);} void init( vec , int ); double loglikelihood( vec ); void dlikelihood( vec , double& , vec& , vec2& ); void optimize( vec& , vec& ); }; // ----------------------------------------- // // ---------- mod container ---------------- // // ----------------------------------------- // template class Mod { int nmod,nfq; vector mods; public: int npar; Mod( vector inlc , vec fqL ){ int i; nmod = inlc.size(); for( i=0 ; i lc1, vector lc2 , vec fqL , vec pars ){ int i; nmod = lc1.size(); for( i=0 ; i lc1, vector lc2 , vec fqL ){ int i; nmod = lc1.size(); for( i=0 ; i ic,iv; sing = 0; for( i=0; i 10 ){for(i=0;i ic,iv; np = npar - 1; vec g; vec2 h,hi,iii; g.setlength(np); h.setlength(np,np); hi.setlength(np,np);iii.setlength(np,np); ic.push_back(k); for( i=0 ; i10 ){for(i=0;itol ){ phalf = (pu+pd)/2.0; tmpp[ip] = phalf; tmplike = opti( tmpp , errs , ip ); dl = 2*(bestlike - tmplike); cout << "+++ " << bestlike << " " << tmplike << " " << pars[ip] << " "<< phalf << " " << dl << endl; if( dl