Hi, I'm trying to optimize some of my fitting code and I noticed the following issue with the function GraphFitChiSquare in graf/src/TGraph.cxx: The code is: if (ex < 0) ex = 0; if (ey < 0) ey = 0; if (ex >= 0) { xm = x[0] - ex; if (xm < fxmin) xm = fxmin; xp = x[0] + ex; if (xp > fxmax) xp = fxmax; xx[0] = xm; fm = grF1->EvalPar(xx,u); xx[0] = xp; fp = grF1->EvalPar(xx,u); eux = 0.5*(fp-fm); } else eux = 0.; ex, ey hold the error on the current point. The test on the third line above is unnecessary given the previous 2 lines, however, I think that test should be changed to: if (ex > 0) { This would mean only 1 evaluation of TF1::EvalPar rather than 3 when fitting TGraphs (rather than TGraphErrors) or when the errors are 0. (And would thus give a factor of 3 performance increase in this case). Thanks Matt
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET