Skip to content

Commit fb72432

Browse files
committed
Add coefficient_ring for series rings
1 parent 614b51c commit fb72432

File tree

6 files changed

+38
-0
lines changed

6 files changed

+38
-0
lines changed

src/RelSeries.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ base_ring_type(::Type{<:SeriesRing{T}}) where T <: RingElement = parent_type(T)
2929

3030
base_ring(R::SeriesRing{T}) where T <: RingElement = R.base_ring::parent_type(T)
3131

32+
coefficient_ring_type(T::Type{<:SeriesRing}) = base_ring_type(T)
33+
34+
coefficient_ring(R::SeriesRing) = base_ring(R)
35+
3236
function is_domain_type(::Type{T}) where {S <: RingElement, T <: SeriesElem{S}}
3337
return is_domain_type(S)
3438
end

src/generic/LaurentSeries.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ base_ring(R::LaurentSeriesRing{T}) where T <: RingElement = R.base_ring::parent_
4141

4242
base_ring(R::LaurentSeriesField{T}) where T <: FieldElement = R.base_ring::parent_type(T)
4343

44+
coefficient_ring_type(T::Type{<:LaurentSeriesRing}) = base_ring_type(T)
45+
46+
coefficient_ring_type(T::Type{<:LaurentSeriesField}) = base_ring_type(T)
47+
48+
coefficient_ring(R::LaurentSeriesRing) = coefficient_ring(R)
49+
50+
coefficient_ring(R::LaurentSeriesField) = coefficient_ring(R)
51+
4452
function is_domain_type(::Type{T}) where {S <: RingElement, T <: LaurentSeriesElem{S}}
4553
return is_domain_type(S)
4654
end

src/generic/PuiseuxSeries.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ base_ring(R::PuiseuxSeriesRing{T}) where T <: RingElement = base_ring(laurent_ri
5757

5858
base_ring(R::PuiseuxSeriesField{T}) where T <: FieldElement = base_ring(laurent_ring(R))
5959

60+
coefficient_ring_type(T::Type{<:PuiseuxSeriesRing}) = base_ring_type(T)
61+
62+
coefficient_ring_type(T::Type{<:PuiseuxSeriesField}) = base_ring_type(T)
63+
64+
coefficient_ring(R::PuiseuxSeriesRing) = coefficient_ring(R)
65+
66+
coefficient_ring(R::PuiseuxSeriesField) = coefficient_ring(R)
67+
6068
@doc raw"""
6169
max_precision(R::PuiseuxSeriesRing{T}) where T <: RingElement
6270

test/generic/LaurentSeries-test.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,16 @@ end
4040
@test elem_type(Generic.LaurentSeriesRing{elem_type(S)}) == Generic.LaurentSeriesRingElem{elem_type(S)}
4141
@test parent_type(Generic.LaurentSeriesRingElem{elem_type(S)}) == Generic.LaurentSeriesRing{elem_type(S)}
4242

43+
@test coefficient_ring(T) == S
44+
@test coefficient_ring_type(T) == typeof(coefficient_ring(T))
45+
4346
@test elem_type(U) == Generic.LaurentSeriesFieldElem{Rational{BigInt}}
4447
@test elem_type(Generic.LaurentSeriesField{Rational{BigInt}}) == Generic.LaurentSeriesFieldElem{Rational{BigInt}}
4548
@test parent_type(Generic.LaurentSeriesFieldElem{Rational{BigInt}}) == Generic.LaurentSeriesField{Rational{BigInt}}
4649

50+
@test coefficient_ring(U) === QQ
51+
@test coefficient_ring_type(U) == typeof(coefficient_ring(U))
52+
4753
@test isa(R, Generic.LaurentSeriesRing)
4854
@test isa(T, Generic.LaurentSeriesRing)
4955
@test isa(U, Generic.LaurentSeriesField)

test/generic/PuiseuxSeries-test.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,16 @@ end
4242
@test elem_type(Generic.PuiseuxSeriesRing{elem_type(S)}) == Generic.PuiseuxSeriesRingElem{elem_type(S)}
4343
@test parent_type(Generic.PuiseuxSeriesRingElem{elem_type(S)}) == Generic.PuiseuxSeriesRing{elem_type(S)}
4444

45+
@test coefficient_ring(T) == S
46+
@test coefficient_ring_type(T) == typeof(coefficient_ring(T))
47+
4548
@test elem_type(U) == Generic.PuiseuxSeriesFieldElem{Rational{BigInt}}
4649
@test elem_type(Generic.PuiseuxSeriesField{Rational{BigInt}}) == Generic.PuiseuxSeriesFieldElem{Rational{BigInt}}
4750
@test parent_type(Generic.PuiseuxSeriesFieldElem{Rational{BigInt}}) == Generic.PuiseuxSeriesField{Rational{BigInt}}
4851

52+
@test coefficient_ring(U) === QQ
53+
@test coefficient_ring_type(U) == typeof(coefficient_ring(U))
54+
4955
@test isa(R, Generic.PuiseuxSeriesRing)
5056
@test isa(T, Generic.PuiseuxSeriesRing)
5157
@test isa(U, Generic.PuiseuxSeriesField)

test/generic/RelSeries-test.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,16 @@ end
4545
@test elem_type(Generic.RelPowerSeriesRing{BigInt}) == Generic.RelSeries{BigInt}
4646
@test parent_type(Generic.RelSeries{BigInt}) == Generic.RelPowerSeriesRing{BigInt}
4747

48+
@test coefficient_ring(R) === ZZ
49+
@test coefficient_ring_type(R) == typeof(coefficient_ring(R))
50+
4851
@test elem_type(T) == Generic.RelSeries{elem_type(S)}
4952
@test elem_type(Generic.RelPowerSeriesRing{elem_type(S)}) == Generic.RelSeries{elem_type(S)}
5053
@test parent_type(Generic.RelSeries{elem_type(S)}) == Generic.RelPowerSeriesRing{elem_type(S)}
5154

55+
@test coefficient_ring(T) == S
56+
@test coefficient_ring_type(T) == typeof(coefficient_ring(T))
57+
5258
@test isa(R, Generic.RelPowerSeriesRing)
5359

5460
@test isa(T, Generic.RelPowerSeriesRing)

0 commit comments

Comments
 (0)