Skip to content

Commit 39aadab

Browse files
authored
Fix bug in zero relative series to power zero. (#938)
* Fix bug in zero relative series to power zero.
1 parent 9f54b08 commit 39aadab

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/RelSeries.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -668,15 +668,15 @@ Return $a^b$. We require $b \geq 0$.
668668
function ^(a::RelSeriesElem{T}, b::Int) where T <: RingElement
669669
b < 0 && throw(DomainError(b, "exponent must be >= 0"))
670670
# special case powers of x for constructing power series efficiently
671-
if pol_length(a) == 0
671+
if b == 0
672+
# in fact, the result would be exact 1 if we had exact series
673+
z = one(parent(a))
674+
return z
675+
elseif pol_length(a) == 0
672676
z = parent(a)()
673677
z = set_precision!(z, b*valuation(a))
674678
z = set_valuation!(z, b*valuation(a))
675679
return z
676-
elseif b == 0
677-
# in fact, the result would be exact 1 if we had exact series
678-
z = one(parent(a))
679-
return z
680680
elseif isgen(a)
681681
z = parent(a)()
682682
fit!(z, 1)

test/generic/RelSeries-test.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,12 @@ end
616616
end
617617
end
618618

619+
# regression test (see #931)
620+
Zn = ResidueRing(ZZ, 2)
621+
R, x = PowerSeriesRing(Zn, 10, "x")
622+
f = O(x^2)
623+
@test isequal(f^0, 1 + O(x^10))
624+
619625
f = rand(R, 0:12, 0:rand(1:25))
620626
@test_throws DomainError f^-1
621627
@test_throws DomainError f^-rand(2:100)

0 commit comments

Comments
 (0)