Tolerance vs precision in Minimizer?


I am using the ROOT::Math::Minimizer class and I’m not sure what the difference is between SetTolerance() and SetPrecision(). I can’t quite find this in the documentation. Can someone please clarify this?

Thank you.


The tolerance is used to control the criteria to stop the minimisation iterations. When the EDM (expected distance from the minimum) reaches a low enough tolerance the minimisation will stop. The values passed is something like a factor of 1000 larger than the actual tolerance used.The default value of 0.01 (an actual tolerance ~ 1.E-5) is normally fine for typical fitting problems.

The precision instead controlled the numerical precision used in the minimisation. Since double precision is used, one should not modify that value and use the default one (double numerical precision).


1 Like

This is exactly the explanation that I needed, thank you very much!