[ROOT-5473] TMath::Abs slower than std::abs Created: 06/Sep/13 Updated: 15/May/19 Resolved: 13/Sep/13
|Reporter:||Sandro Christian Wenzel||Assignee:||Lorenzo Moneta|
|Remaining Estimate:||Not Specified|
|Time Spent:||Not Specified|
|Original Estimate:||Not Specified|
|Bug / Feature:||Suggestion|
|Severity:||3 - Normal|
I noticed that the inline definition of TMath::Abs (in terms of an if statement) is a factor of 2 slower than std::abs.
Of course, this seems to be rather a compiler optimization issue but at the standard -O2 release flag, the gcc compiler 4.7 does currently not translate this to any optimized implementation (which just extracts the sign bit).
A direct beneficiary would be the ROOT geometry library (and hence ALICE simulation) which makes heavy use of TMath::Abs.
Possible path of improvement: Replace critical ROOT math functions by calls to already optimized math functions instead of reimplementing them.
|Comment by Lorenzo Moneta [ 13/Sep/13 ]|
TMath::Abs has been now implemented in term of std::abs in the ROOT master