Skip to content
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

Throw OverflowError on copysign(typemin(Int)//1, 1) #53395

Merged
merged 1 commit into from
Feb 21, 2024

Conversation

nhz2
Copy link
Contributor

@nhz2 nhz2 commented Feb 20, 2024

The default copysign(x::Real, y::Real) in number.jl works, so the incorrect method in rational.jl isn't needed.

Here is a benchmark of the new version.

using BenchmarkTools
function foo!(c,a,b) 
    c .= copysign.(a, b)
    nothing
end
N = 1000
@btime foo!(c,a,b) setup=(c=zeros(Rational{Int},N); a=rand(Int,N).//rand(Int,N); b=fill(-1,N))

On master: 406.215 ns (0 allocations: 0 bytes)
On this PR: 869.327 ns (0 allocations: 0 bytes)

@vtjnash vtjnash added the merge me PR is reviewed. Merge when all tests are passing label Feb 20, 2024
@nhz2 nhz2 added the rationals The Rational type and values thereof label Feb 20, 2024
vtjnash added a commit that referenced this pull request Feb 21, 2024
Follow up to #53373, it seems this assert was broken for empty packages,
causing CI issues. It is not necessary.

Observed in CI here: #53395

https://buildkite.com/julialang/julia-master/builds/33860#018dc4dc-a603-4ad1-90cf-574540a41720
@vtjnash vtjnash merged commit 9d896dc into JuliaLang:master Feb 21, 2024
7 of 9 checks passed
@inkydragon inkydragon removed the merge me PR is reviewed. Merge when all tests are passing label Feb 23, 2024
KristofferC pushed a commit that referenced this pull request Feb 26, 2024
Follow up to #53373, it seems this assert was broken for empty packages,
causing CI issues. It is not necessary.

Observed in CI here: #53395

https://buildkite.com/julialang/julia-master/builds/33860#018dc4dc-a603-4ad1-90cf-574540a41720
(cherry picked from commit 3742d33)
tecosaur pushed a commit to tecosaur/julia that referenced this pull request Mar 4, 2024
Follow up to JuliaLang#53373, it seems this assert was broken for empty packages,
causing CI issues. It is not necessary.

Observed in CI here: JuliaLang#53395

https://buildkite.com/julialang/julia-master/builds/33860#018dc4dc-a603-4ad1-90cf-574540a41720
tecosaur pushed a commit to tecosaur/julia that referenced this pull request Mar 4, 2024
The default `copysign(x::Real, y::Real)` in `number.jl` works, so the
incorrect method in `rational.jl` isn't needed.

Here is a benchmark of the new version.
```julia
using BenchmarkTools
function foo!(c,a,b) 
    c .= copysign.(a, b)
    nothing
end
N = 1000
@Btime foo!(c,a,b) setup=(c=zeros(Rational{Int},N); a=rand(Int,N).//rand(Int,N); b=fill(-1,N))
```
On master: 406.215 ns (0 allocations: 0 bytes)
On this PR: 869.327 ns (0 allocations: 0 bytes)
mkitti pushed a commit to mkitti/julia that referenced this pull request Mar 7, 2024
Follow up to JuliaLang#53373, it seems this assert was broken for empty packages,
causing CI issues. It is not necessary.

Observed in CI here: JuliaLang#53395

https://buildkite.com/julialang/julia-master/builds/33860#018dc4dc-a603-4ad1-90cf-574540a41720
mkitti pushed a commit to mkitti/julia that referenced this pull request Mar 7, 2024
The default `copysign(x::Real, y::Real)` in `number.jl` works, so the
incorrect method in `rational.jl` isn't needed.

Here is a benchmark of the new version.
```julia
using BenchmarkTools
function foo!(c,a,b) 
    c .= copysign.(a, b)
    nothing
end
N = 1000
@Btime foo!(c,a,b) setup=(c=zeros(Rational{Int},N); a=rand(Int,N).//rand(Int,N); b=fill(-1,N))
```
On master: 406.215 ns (0 allocations: 0 bytes)
On this PR: 869.327 ns (0 allocations: 0 bytes)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rationals The Rational type and values thereof
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants