power uses Float64 exponents for integers#53967
power uses Float64 exponents for integers#53967oscardssmith merged 25 commits intoJuliaLang:masterfrom
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.
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 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)
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)
This reverts commit fe073c4.
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)
This reverts commit fe073c4.
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)
This reverts commit fe073c4.
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)
This reverts commit fe073c4.
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. Note: This was originally backported to 1.10 as ee8dd0f, but then reverted in 7f6ffc7 (cherry picked from commit fe49d56)


Improve performance of
^(::Float64, n::Integer)in the case ofabs(n) > 2^13.While
pow_bodyis unreliable forabs(n) > 2^25this implementation provides errors of a few ULPs, while runtime is capped to that of theFloat64implementation.Fixes #53881
See also #53886.