Skip to content

Commit 0c92375

Browse files
authored
Fix: rem2pi for negative values greater than 2pi (#36233)
* Fix rem2pi for RoundToZero * add extra tests for rem2pi
1 parent 69ce9d2 commit 0c92375

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

base/math.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1001,7 +1001,7 @@ function rem2pi(x::Float64, ::RoundingMode{:ToZero})
10011001
ax = abs(x)
10021002
ax <= 2*Float64(pi,RoundDown) && return x
10031003

1004-
n,y = rem_pio2_kernel(x)
1004+
n,y = rem_pio2_kernel(ax)
10051005

10061006
if iseven(n)
10071007
if n & 2 == 2 # n % 4 == 2: add pi

test/numbers.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2507,6 +2507,14 @@ end
25072507
@test rem2pi(T(-4), RoundNearest) 2pi-4
25082508
@test rem2pi(T(-4), RoundDown) 2pi-4
25092509
@test rem2pi(T(-4), RoundUp) == -4
2510+
@test rem2pi(T(8), RoundToZero) 8-2pi
2511+
@test rem2pi(T(8), RoundNearest) 8-2pi
2512+
@test rem2pi(T(8), RoundDown) 8-2pi
2513+
@test rem2pi(T(8), RoundUp) 8-4pi
2514+
@test rem2pi(T(-8), RoundToZero) -8+2pi
2515+
@test rem2pi(T(-8), RoundNearest) -8+2pi
2516+
@test rem2pi(T(-8), RoundDown) -8+4pi
2517+
@test rem2pi(T(-8), RoundUp) -8+2pi
25102518
end
25112519

25122520
import Base.^

0 commit comments

Comments
 (0)