[RF] Remove functions to customize epsilons for range checks#21344
[RF] Remove functions to customize epsilons for range checks#21344guitargeek wants to merge 1 commit intoroot-project:masterfrom
Conversation
Test Results 22 files 22 suites 3d 3h 49m 46s ⏱️ For more details on these failures, see this check. Results for commit 6eb148f. ♻️ This comment has been updated with latest results. |
The `RooNumber::setRangeEpsRel()` and `RooNumber::setRangeEpsAbs()` have been introduced 2 years ago in 4863727 to customize range check behavior to be like before ROOT 6.28, but this has not been proven necessary. Instead, looking up the static variables with the epsilon values incurred significant overhead in `RooAbsRealLValue::inRange()`, which is visible in many-parameter fits.
d3ece5c to
6eb148f
Compare
RooRealVar::setValFast() in minimizer interface|
Thinking more about it, I changed strategy here. Skipping the range check would be fine for Minuit, but given that we also want to support other minimizers that might not support parameter bounds, it's probably safer to stick with I have instead figured out where the overhead comes from and suggest to eliminate it in this PR. It requires removing some public functions without a deprecation period, but given that these functions were only introduced in 2023 as an escape hatch to get old behavior, it should be fine to remove them as long as announced in the release notes. |
The
RooNumber::setRangeEpsRel()andRooNumber::setRangeEpsAbs()have been introduced 2 years ago in 4863727 to customize range check behavior to be like before ROOT 6.28, but this has not been proven necessary. Instead, looking up the static variables with the epsilon values incurred significant overhead inRooAbsRealLValue::inRange(), which is visible in many-parameter fits.