julia
493e70bb - math: Fix `NaN^n` for large `n` and the sign of `(-0.0)^n`

Commit
21 days ago
math: Fix `NaN^n` for large `n` and the sign of `(-0.0)^n` For exponents too large for power by squaring, `^(::Float64, ::Integer)` called `pow_body(x, ::Float64)` without the non-finite handling that `^(::Float64, ::Float64)` does first, so `NaN^(2^15)` returned `Inf` (and `0.0` for negative exponents). Separately, compensated power by squaring added its error term to the product, which turns a zero product's sign positive, so `(-0.0)^5` was `0.0`; the product is now returned unchanged when the error term is zero. Assisted-by: Claude Code (Opus 5.5)
Author
Committer
Parents
Loading