Line data Source code
1 : /** 2 : Bojan Nikolic <bojan@bnikolic.co.uk> 3 : Initial version 2003 4 : 5 : This file is part of BNMin1 and is licensed under GNU General 6 : Public License version 2 7 : 8 : \file minimmodel.cxx 9 : Renamed to minimodel.cc 2023 10 : 11 : */ 12 : 13 : #include "minimmodel.h" 14 : #include <cmath> 15 : 16 : namespace Minim { 17 : 18 0 : Model::Model(void) 19 : { 20 0 : } 21 : 22 0 : Model::~Model(void) 23 : { 24 0 : } 25 : 26 0 : void Model::AddParams ( std::vector< Minim::DParamCtr > & /*pars*/ ) 27 : { 28 : 29 0 : } 30 : 31 0 : void Model::AddParams ( std::vector< Minim::DParamCtr > &pars , 32 : std::string &prefix) 33 : { 34 : 35 0 : std::vector< Minim::DParamCtr > scratchpars; 36 0 : this->AddParams( scratchpars) ; 37 : 38 0 : for (unsigned j (0) ; j < scratchpars.size() ; ++j ) 39 : { 40 0 : ParamCtr<double> pp( scratchpars[j].p, 41 0 : prefix+scratchpars[j].name, 42 0 : scratchpars[j].dofit, 43 0 : scratchpars[j].comment); 44 : 45 0 : pars.push_back(pp); 46 0 : } 47 : 48 0 : } 49 : 50 0 : double Minimisable::lLikely(void) const 51 : { 52 0 : std::vector<double> res(nres()); 53 0 : residuals(res); 54 : 55 0 : double ss=0; 56 0 : for (size_t i=0; i < res.size() ; ++i) 57 0 : ss += std::pow(res[i],2); 58 : 59 : // Account for the (2 sigma^2) at the bottom of likelihood.... 60 0 : return 0.5*ss; 61 0 : } 62 : 63 0 : size_t nPars(Model &m) 64 : { 65 0 : std::vector<Minim::DParamCtr> pars; 66 0 : m.AddParams(pars); 67 0 : return pars.size(); 68 0 : } 69 : 70 : }