Hi Matt,
I agree with your proposed patch. Now in CVS.
Thanks for the suggestion.
Rene Brun
Matt Palmer wrote:
>
> 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