[root] / trunk / math / minuit2 / inc / Minuit2 / FumiliFCNAdapter.h Repository:
ViewVC logotype

Diff of /trunk/math/minuit2/inc/Minuit2/FumiliFCNAdapter.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 25485, Mon Sep 22 07:52:52 2008 UTC revision 25486, Mon Sep 22 12:43:03 2008 UTC
# Line 22  Line 22 
22  #include "Minuit2/MnPrint.h"  #include "Minuit2/MnPrint.h"
23  #endif  #endif
24    
25    #ifndef ROOT_Math_Util
26    #include "Math/Util.h"
27    #endif
28    
29  #include <cmath>  #include <cmath>
30    
31  namespace ROOT {  namespace ROOT {
# Line 138  Line 142 
142        for (unsigned int i = 0; i < ndata; ++i) {        for (unsigned int i = 0; i < ndata; ++i) {
143    
144           // calculate data element and gradient           // calculate data element and gradient
145             // return value is log of pdf and derivative of the log(Pdf)
146           double fval = fFunc.DataElement(&v.front(), i, &gf[0]);           double fval = fFunc.DataElement(&v.front(), i, &gf[0]);
147    
148           // t.b.d should protect for small values of fval           sum -= fval;
          sum -= std::log(fval);  
149    
150           for (unsigned int j = 0; j < npar; ++j) {           for (unsigned int j = 0; j < npar; ++j) {
151              double gfj = gf[j] / fval;              double gfj = gf[j] ;
152              grad[j] -= gfj;              grad[j] -= gfj;
153              for (unsigned int k = j; k < npar; ++ k) {              for (unsigned int k = j; k < npar; ++ k) {
154                 int idx =  j + k*(k+1)/2;                 int idx =  j + k*(k+1)/2;
155                 hess[idx] +=  gfj * gf[k] / (fval );                 hess[idx] +=  gfj * gf[k] ;
156              }              }
157           }           }
158        }        }

Legend:
Removed from v.25485  
changed lines
  Added in v.25486

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9