-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
power uses Float64 exponents for integers #53967
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
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.
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 of `abs(n) > 2^13`. While `pow_body` is unreliable for `abs(n) > 2^25` this implementation provides errors of a few ULPs, while runtime is capped to that of the `Float64` implementation. Fixes #53881 See also #53886. (cherry picked from commit fe49d56)
Improve performance of `^(::Float64, n::Integer)` in the case of `abs(n) > 2^13`. While `pow_body` is unreliable for `abs(n) > 2^25` this implementation provides errors of a few ULPs, while runtime is capped to that of the `Float64` implementation. Fixes #53881 See also #53886. (cherry picked from commit fe49d56)
Causes a test error on 1.11, won't backport. |
This reverts commit 237ad1a.
@KristofferC is there a chance to look at the failed test output? I could not verify that locally. |
It is only on 32-bit. #58062 might fix it. But it is too late for 1.11.5, it can go into 1.11.6 if it is fixed with the earlier-mentioned PR. The error was https://buildkite.com/julialang/julia-release-1-dot-11/builds/451#019619be-f75a-400d-b019-9d047c239bd3
|
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.