Skip to content

Commit a9e2bd4

Browse files
11happyN5N3
andauthored
Add general fallback for rem2pi (#52955)
**Overview:** - This PR fixes #44715 by adding a general fallback. **Testing:** - Tested the updated code. - Verified that other functionalities remain unaffected. **Dependencies:** - No dependencies on other pull requests. **CC:** - @N5N3 --------- Signed-off-by: 11happy <[email protected]> Co-authored-by: N5N3 <[email protected]>
1 parent 1f111e1 commit a9e2bd4

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

base/math.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1469,9 +1469,11 @@ end
14691469
rem2pi(x::Float32, r::RoundingMode) = Float32(rem2pi(Float64(x), r))
14701470
rem2pi(x::Float16, r::RoundingMode) = Float16(rem2pi(Float64(x), r))
14711471
rem2pi(x::Int32, r::RoundingMode) = rem2pi(Float64(x), r)
1472-
function rem2pi(x::Int64, r::RoundingMode)
1473-
fx = Float64(x)
1474-
fx == x || throw(ArgumentError("Int64 argument to rem2pi is too large: $x"))
1472+
1473+
# general fallback
1474+
function rem2pi(x::Integer, r::RoundingMode)
1475+
fx = float(x)
1476+
fx == x || throw(ArgumentError(LazyString(typeof(x), " argument to rem2pi is too large: ", x)))
14751477
rem2pi(fx, r)
14761478
end
14771479

test/numbers.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2686,7 +2686,7 @@ end
26862686
@test divrem(a,-(a-20), RoundDown) == (div(a,-(a-20), RoundDown), rem(a,-(a-20), RoundDown))
26872687
end
26882688

2689-
@testset "rem2pi $T" for T in (Float16, Float32, Float64, BigFloat)
2689+
@testset "rem2pi $T" for T in (Float16, Float32, Float64, BigFloat, Int8, Int16, Int32, Int64, Int128)
26902690
@test rem2pi(T(1), RoundToZero) == 1
26912691
@test rem2pi(T(1), RoundNearest) == 1
26922692
@test rem2pi(T(1), RoundDown) == 1

0 commit comments

Comments
 (0)