-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
power uses Float64 exponents for integers #53967
Conversation
@oscardssmith I would be interested in your opinion! |
this looks really good to me. I need to spend a little time benchmarking to make sure all the details look good, but I'm theory, this looks great! |
Results of benchmark tests: The result of the merged version with parameters |
This comment was marked as off-topic.
This comment was marked as off-topic.
note that the subnormal performance issue is only present on Intel cpus, AMD deals with subnormal much better. |
Statistics of accuracy evaluations. Note the very rare cases of 2 ULPs for low exponents (4 or 8), which can be explained by subnormal effects!
|
The failed tests seem unrelated. |
I have no idea, why |
Other than the final 2 comments, I think is ready to merge. Also, thank you so much for fixing this! It's great to have a second person who understands this code. |
Improve performance of
^(::Float64, n::Integer)
in the case ofabs(n) > 2^13
.While
pow_body
is unreliable forabs(n) > 2^25
this implementation provides errors of a few ULPs, while runtime is capped to that of theFloat64
implementation.Fixes #53881
See also #53886.