diff --git a/docs/src/developer/img/types.svg b/docs/src/developer/img/types.svg index 5956bc141..2c498e168 100755 --- a/docs/src/developer/img/types.svg +++ b/docs/src/developer/img/types.svg @@ -1,3 +1,3 @@ -
RingElem
RingElem
NCRingElem
NCRingElem
MPolyRingElem{T}
MPolyRingElem{T}
ResElem{T}
ResElem{T}
FracElem{T}
FracElem{T}
SeriesElem{T}
SeriesElem{T}
FieldElem
FieldElem
MatAlgElem{T}
MatAlgElem{T}
RelSeriesElem{T}
RelSeriesElem{T}
AbsSeriesElem{T}
AbsSeriesElem{T}
MatElem{T}
MatElem{T}
MatrixElem{T}
MatrixElem{...
ResFieldElem{T}
ResFieldElem{T}
PolyRingElem{T}
PolyRingElem{T}
LaurentPolyRingElem{T}
LaurentPolyRingElem{T}
NCPolyRingElem{T}
NCPolyRingElem{T}
PolynomialElem{T}
Polynom...
NumFieldElem{T}
NumFieldElem{T}
FinFieldElem
FinFieldElem
SimpleNumFieldElem{T}
SimpleNumFieldEl...
GroupElem
GroupElem
AdditiveGroupElem
AdditiveGroupElem
ModuleElem{T}
ModuleElem{T}
FPModuleElem{T}
FPModuleElem{T}
AbstractPerm
AbstractPerm
IdealElem{T}
IdealElem{T}
SetMap
SetMap
IdentityMap
IdentityMap
FunctionalMap
FunctionalMap
FPModuleHomomorphism
FPModuleHomomorp...
Map{D, C, S, T}
Map{D, C, S, T}
Viewer does not support full SVG 1.1
\ No newline at end of file +
RingElem
RingElem
NCRingElem
NCRingElem
MPolyRingElem{T}
MPolyRingElem{T}
ResElem{T}
ResElem{T}
FracElem{T}
FracElem{T}
SeriesElem{T}
SeriesElem{T}
FieldElem
FieldElem
MatAlgElem{T}
MatAlgElem{T}
RelPowerSeriesRingElem{T}
RelPowerSeriesRingElem{T}
AbsPowerSeriesRingElem{T}
AbsPowerSeriesRingElem{T}
MatElem{T}
MatElem{T}
MatrixElem{T}
MatrixElem{...
ResFieldElem{T}
ResFieldElem{T}
PolyRingElem{T}
PolyRingElem{T}
LaurentPolyRingElem{T}
LaurentPolyRingElem{T}
NCPolyRingElem{T}
NCPolyRingElem{T}
PolynomialElem{T}
Polynom...
NumFieldElem{T}
NumFieldElem{T}
FinFieldElem
FinFieldElem
SimpleNumFieldElem{T}
SimpleNumFieldEl...
GroupElem
GroupElem
AdditiveGroupElem
AdditiveGroupElem
ModuleElem{T}
ModuleElem{T}
FPModuleElem{T}
FPModuleElem{T}
AbstractPerm
AbstractPerm
IdealElem{T}
IdealElem{T}
SetMap
SetMap
IdentityMap
IdentityMap
FunctionalMap
FunctionalMap
FPModuleHomomorphism
FPModuleHomomorp...
Map{D, C, S, T}
Map{D, C, S, T}
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/src/developer/interfaces.md b/docs/src/developer/interfaces.md index 0f2454982..70ee08378 100644 --- a/docs/src/developer/interfaces.md +++ b/docs/src/developer/interfaces.md @@ -40,8 +40,8 @@ for which one should usually prefer to write generic implementations. * `MPolyRingElem{T}` : all multivariate polynomial types (see note below) * `MatrixElem{T}` : union of all matrix types including matrix algebras * `MatElem{T}` : all matrix types not including matrix algebras -* `AbsSeriesElem{T}` : all abstract series types -* `RelSeriesElem{T}` : all relative series types +* `AbsPowerSeriesRingElem{T}` : all abstract series types +* `RelPowerSeriesRingElem{T}` : all relative series types * `LaurentSeriesElem{T}` : union of all Laurent series over rings and fields * `PuiseuxSeriesElem{T}` : union of all Puiseux series over rings and fields * `FPModule{T}` : all finitely presented modules over a Euclidean domain diff --git a/docs/src/developer/parents.md b/docs/src/developer/parents.md index 439c053fd..c974fbf24 100644 --- a/docs/src/developer/parents.md +++ b/docs/src/developer/parents.md @@ -202,8 +202,8 @@ it is convenient to be able to construct a parent just as a user would. For this purpose various light-weight and very safe parent constructors are provided for use in library code. -For example there are the constructors `PolyRing`, `AbsSeriesRing` and -`RelSeriesRing`. These functions return the parent ring $R$ only and no +For example there are the constructors `PolyRing`, `AbsPowerSeriesRing` and +`RelPowerSeriesRing`. These functions return the parent ring $R$ only and no generator (it can be obtained by calling `gen(R)`). They also set the variable for printing to a default (usually `x`). Moreover, these parents are not cached, so they are completely safe to use in library code. They diff --git a/docs/src/developer/topics.md b/docs/src/developer/topics.md index 1f4be0705..d15a7222e 100644 --- a/docs/src/developer/topics.md +++ b/docs/src/developer/topics.md @@ -456,8 +456,8 @@ to a parent constructor to avoid caching the parent object it creates. This parameter normally has a default value of `true` and under normal circumstances doesn't need to be supplied. -Note that special light-weight parent constructors, `PolyRing`, `AbsSeriesRing`, -`RelSeriesRing`, etc. are also provided which do not cache. +Note that special light-weight parent constructors, `PolyRing`, `AbsPowerSeriesRing`, +`RelPowerSeriesRing`, etc. are also provided which do not cache. ## Throw/nothrow for `check_parent` diff --git a/docs/src/series.md b/docs/src/series.md index d314eaf35..dc0503079 100644 --- a/docs/src/series.md +++ b/docs/src/series.md @@ -24,7 +24,7 @@ type information is mainly of concern to developers). Base ring | Library | Element type | Parent type --------------------------------------|--------------------|-----------------------|---------------------- -Generic ring $R$ | AbstractAlgebra.jl | `Generic.RelSeries{T} | `Generic.RelSeriesRing{T}` +Generic ring $R$ | AbstractAlgebra.jl | `Generic.RelSeries{T} | `Generic.RelPowerSeriesRing{T}` $\mathbb{Z}$ | Flint | `ZZRelPowerSeriesRingElem` | `ZZRelPowerSeriesRing` $\mathbb{Z}/n\mathbb{Z}$ (small $n$) | Flint | `zzModRelPowerSeriesRingElem` | zzModRelPowerSeriesRing $\mathbb{Z}/n\mathbb{Z}$ (large $n$) | Flint | `ZZModRelPowerSeriesRingElem` | `ZZModRelPowerSeriesRing` @@ -34,8 +34,8 @@ $\mathbb{F}_p$ (large $n$) | Flint | `FpRelPowerSeriesRi $\mathbb{F}_{p^n}$ (small $p$) | Flint | `fqPolyRepRelPowerSeriesRingElem` | `fqPolyRepRelPowerSeriesRing` $\mathbb{F}_{p^n}$ (large $p$) | Flint | `FqPolyRepRelPowerSeriesRingElem` | `FqPolyRepRelPowerSeriesRing` -All relative power series elements belong to the abstract type `RelSeriesElem` and all -of the relative power series ring types belong to the abstract type `RelSeriesRing`. +All relative power series elements belong to the abstract type `RelPowerSeriesRingElem` and all +of the relative power series ring types belong to the abstract type `RelPowerSeriesRing`. The maximum relative precision, the string representation of the variable and the base ring $R$ of a generic power series are stored in its parent object. @@ -44,7 +44,7 @@ Here is the corresponding table for the absolute power series types. Base ring | Library | Element type | Parent type --------------------------------------|--------------------|-----------------------|---------------------- -Generic ring $R$ | AbstractAlgebra.jl | `Generic.AbsSeries{T}`| `Generic.AbsSeriesRing{T}` +Generic ring $R$ | AbstractAlgebra.jl | `Generic.AbsSeries{T}`| `Generic.AbsPowerSeriesRing{T}` $\mathbb{Z}$ | Flint | `ZZAbsPowerSeriesRingElem` | `ZZAbsPowerSeriesRing` $\mathbb{Z}/n\mathbb{Z}$ (small $n$) | Flint | `zzModAbsPowerSeriesRingElem` | `zzModAbsPowerSeriesRing` $\mathbb{Z}/n\mathbb{Z}$ (large $n$) | Flint | `ZZModAbsPowerSeriesRingElem` | `ZZModAbsPowerSeriesRing` @@ -54,8 +54,8 @@ $\mathbb{F}_p$ (large $n$) | Flint | `FpAbsPowerSeriesRi $\mathbb{F}_{p^n}$ (small $n$) | Flint | `fqPolyRepAbsPowerSeriesRingElem` | `fqPolyRepAbsPowerSeriesRing` $\mathbb{F}_{p^n}$ (large $n$) | Flint | `FqPolyRepAbsPowerSeriesRingElem` | `FqPolyRepAbsPowerSeriesRing` -All absolute power series elements belong to the abstract type `AbsSeriesElem` and all -of the absolute power series ring types belong to the abstract type `AbsSeriesRing`. +All absolute power series elements belong to the abstract type `AbsPowerSeriesRingElem` and all +of the absolute power series ring types belong to the abstract type `AbsPowerSeriesRing`. The absolute precision, the string representation of the variable and the base ring $R$ of a generic power series are stored in its parent object. diff --git a/src/ambiguities.jl b/src/ambiguities.jl index f69ec21e3..5ebb80468 100644 --- a/src/ambiguities.jl +++ b/src/ambiguities.jl @@ -59,37 +59,37 @@ evaluate(::PolyRingElem{ZZRingElem}, ::ZZRingElem) = nothing ==(::SeriesElem{ZZRingElem}, ::ZZRingElem) = nothing -*(::ZZRingElem, ::RelSeriesElem{ZZRingElem}) = nothing +*(::ZZRingElem, ::RelPowerSeriesRingElem{ZZRingElem}) = nothing -*(::RelSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing +*(::RelPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing -+(::ZZRingElem, ::RelSeriesElem{ZZRingElem}) = nothing ++(::ZZRingElem, ::RelPowerSeriesRingElem{ZZRingElem}) = nothing -+(::RelSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing ++(::RelPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing --(::ZZRingElem, ::RelSeriesElem{ZZRingElem}) = nothing +-(::ZZRingElem, ::RelPowerSeriesRingElem{ZZRingElem}) = nothing --(::RelSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing +-(::RelPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing -==(::ZZRingElem, ::RelSeriesElem{ZZRingElem}) = nothing +==(::ZZRingElem, ::RelPowerSeriesRingElem{ZZRingElem}) = nothing -==(::RelSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing +==(::RelPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing -*(::ZZRingElem, ::AbsSeriesElem{ZZRingElem}) = nothing +*(::ZZRingElem, ::AbsPowerSeriesRingElem{ZZRingElem}) = nothing -*(::AbsSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing +*(::AbsPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing -+(::ZZRingElem, ::AbsSeriesElem{ZZRingElem}) = nothing ++(::ZZRingElem, ::AbsPowerSeriesRingElem{ZZRingElem}) = nothing -+(::AbsSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing ++(::AbsPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing --(::ZZRingElem, ::AbsSeriesElem{ZZRingElem}) = nothing +-(::ZZRingElem, ::AbsPowerSeriesRingElem{ZZRingElem}) = nothing --(::AbsSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing +-(::AbsPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing -==(::ZZRingElem, ::AbsSeriesElem{ZZRingElem}) = nothing +==(::ZZRingElem, ::AbsPowerSeriesRingElem{ZZRingElem}) = nothing -==(::AbsSeriesElem{ZZRingElem}, ::ZZRingElem) = nothing +==(::AbsPowerSeriesRingElem{ZZRingElem}, ::ZZRingElem) = nothing *(::ZZRingElem, ::MatElem{ZZRingElem}) = nothing diff --git a/src/flint/FlintTypes.jl b/src/flint/FlintTypes.jl index 3fb6cf64a..66a9187dc 100644 --- a/src/flint/FlintTypes.jl +++ b/src/flint/FlintTypes.jl @@ -2997,7 +2997,7 @@ end const FmpzRelSeriesID = Dict{Tuple{Int, Symbol}, ZZRelPowerSeriesRing}() -mutable struct ZZRelPowerSeriesRingElem <: RelSeriesElem{ZZRingElem} +mutable struct ZZRelPowerSeriesRingElem <: RelPowerSeriesRingElem{ZZRingElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3063,7 +3063,7 @@ end const FmpzAbsSeriesID = Dict{Tuple{Int, Symbol}, ZZAbsPowerSeriesRing}() -mutable struct ZZAbsPowerSeriesRingElem <: AbsSeriesElem{ZZRingElem} +mutable struct ZZAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{ZZRingElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3247,7 +3247,7 @@ end const FmpqRelSeriesID = Dict{Tuple{Int, Symbol}, QQRelPowerSeriesRing}() -mutable struct QQRelPowerSeriesRingElem <: RelSeriesElem{QQFieldElem} +mutable struct QQRelPowerSeriesRingElem <: RelPowerSeriesRingElem{QQFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3314,7 +3314,7 @@ end const FmpqAbsSeriesID = Dict{Tuple{Int, Symbol}, QQAbsPowerSeriesRing}() -mutable struct QQAbsPowerSeriesRingElem <: AbsSeriesElem{QQFieldElem} +mutable struct QQAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{QQFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3381,7 +3381,7 @@ end const GFPRelSeriesID = Dict{Tuple{fpField, Int, Symbol}, fpRelPowerSeriesRing}() -mutable struct fpRelPowerSeriesRingElem <: RelSeriesElem{fpFieldElem} +mutable struct fpRelPowerSeriesRingElem <: RelPowerSeriesRingElem{fpFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3482,7 +3482,7 @@ end const NmodRelSeriesID = Dict{Tuple{zzModRing, Int, Symbol}, zzModRelPowerSeriesRing}() -mutable struct zzModRelPowerSeriesRingElem <: RelSeriesElem{zzModRingElem} +mutable struct zzModRelPowerSeriesRingElem <: RelPowerSeriesRingElem{zzModRingElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3582,7 +3582,7 @@ end const GFPFmpzRelSeriesID = Dict{Tuple{FpField, Int, Symbol}, FpRelPowerSeriesRing}() -mutable struct FpRelPowerSeriesRingElem <: RelSeriesElem{FpFieldElem} +mutable struct FpRelPowerSeriesRingElem <: RelPowerSeriesRingElem{FpFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3694,7 +3694,7 @@ end const FmpzModRelSeriesID = Dict{Tuple{ZZModRing, Int, Symbol}, ZZModRelPowerSeriesRing}() -mutable struct ZZModRelPowerSeriesRingElem <: RelSeriesElem{ZZModRingElem} +mutable struct ZZModRelPowerSeriesRingElem <: RelPowerSeriesRingElem{ZZModRingElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3806,7 +3806,7 @@ end const GFPFmpzAbsSeriesID = Dict{Tuple{FpField, Int, Symbol}, FpAbsPowerSeriesRing}() -mutable struct FpAbsPowerSeriesRingElem <: AbsSeriesElem{FpFieldElem} +mutable struct FpAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{FpFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -3915,7 +3915,7 @@ end const NmodAbsSeriesID = Dict{Tuple{zzModRing, Int, Symbol}, zzModAbsPowerSeriesRing}() -mutable struct zzModAbsPowerSeriesRingElem <: AbsSeriesElem{zzModRingElem} +mutable struct zzModAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{zzModRingElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -4016,7 +4016,7 @@ end const GFPAbsSeriesID = Dict{Tuple{fpField, Int, Symbol}, fpAbsPowerSeriesRing}() -mutable struct fpAbsPowerSeriesRingElem <: AbsSeriesElem{fpFieldElem} +mutable struct fpAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{fpFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -4115,7 +4115,7 @@ end const FmpzModAbsSeriesID = Dict{Tuple{ZZModRing, Int, Symbol}, ZZModAbsPowerSeriesRing}() -mutable struct ZZModAbsPowerSeriesRingElem <: AbsSeriesElem{ZZModRingElem} +mutable struct ZZModAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{ZZModRingElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -4223,7 +4223,7 @@ end const FqDefaultRelSeriesID = Dict{Tuple{FqField, Int, Symbol}, FqRelPowerSeriesRing}() -mutable struct FqRelPowerSeriesRingElem <: RelSeriesElem{FqFieldElem} +mutable struct FqRelPowerSeriesRingElem <: RelPowerSeriesRingElem{FqFieldElem} # fq_default_poly_struct is 48 bytes on 64 bit machine opaque::NTuple{48, Int8} # end of flint struct @@ -4294,7 +4294,7 @@ end const FqRelSeriesID = Dict{Tuple{FqPolyRepField, Int, Symbol}, FqPolyRepRelPowerSeriesRing}() -mutable struct FqPolyRepRelPowerSeriesRingElem <: RelSeriesElem{FqPolyRepFieldElem} +mutable struct FqPolyRepRelPowerSeriesRingElem <: RelPowerSeriesRingElem{FqPolyRepFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -4363,7 +4363,7 @@ end const FqDefaultAbsSeriesID = Dict{Tuple{FqField, Int, Symbol}, FqAbsPowerSeriesRing}() -mutable struct FqAbsPowerSeriesRingElem <: AbsSeriesElem{FqFieldElem} +mutable struct FqAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{FqFieldElem} # fq_default_poly_struct is 48 bytes on 64 bit machine opaque::NTuple{48, Int8} # end of flint struct @@ -4431,7 +4431,7 @@ end const FqAbsSeriesID = Dict{Tuple{FqPolyRepField, Int, Symbol}, FqPolyRepAbsPowerSeriesRing}() -mutable struct FqPolyRepAbsPowerSeriesRingElem <: AbsSeriesElem{FqPolyRepFieldElem} +mutable struct FqPolyRepAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{FqPolyRepFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -4499,7 +4499,7 @@ end const FqNmodRelSeriesID = Dict{Tuple{fqPolyRepField, Int, Symbol}, fqPolyRepRelPowerSeriesRing}() -mutable struct fqPolyRepRelPowerSeriesRingElem <: RelSeriesElem{fqPolyRepFieldElem} +mutable struct fqPolyRepRelPowerSeriesRingElem <: RelPowerSeriesRingElem{fqPolyRepFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int @@ -4569,7 +4569,7 @@ end const FqNmodAbsSeriesID = Dict{Tuple{fqPolyRepField, Int, Symbol}, fqPolyRepAbsPowerSeriesRing}() -mutable struct fqPolyRepAbsPowerSeriesRingElem <: AbsSeriesElem{fqPolyRepFieldElem} +mutable struct fqPolyRepAbsPowerSeriesRingElem <: AbsPowerSeriesRingElem{fqPolyRepFieldElem} coeffs::Ptr{Nothing} alloc::Int length::Int diff --git a/src/flint/adhoc.jl b/src/flint/adhoc.jl index 058b7b0f8..89c8e3720 100644 --- a/src/flint/adhoc.jl +++ b/src/flint/adhoc.jl @@ -4,7 +4,7 @@ # ############################################################################### -function *(a::ZZRingElem, b::AbsSeriesElem) +function *(a::ZZRingElem, b::AbsPowerSeriesRingElem) len = length(b) z = parent(b)() fit!(z, len) @@ -16,14 +16,14 @@ function *(a::ZZRingElem, b::AbsSeriesElem) return z end -*(a::AbsSeriesElem, b::ZZRingElem) = b*a +*(a::AbsPowerSeriesRingElem, b::ZZRingElem) = b*a -==(x::AbsSeriesElem, y::ZZRingElem) = precision(x) == 0 || ((length(x) == 0 && iszero(y)) +==(x::AbsPowerSeriesRingElem, y::ZZRingElem) = precision(x) == 0 || ((length(x) == 0 && iszero(y)) || (length(x) == 1 && coeff(x, 0) == y)) -==(x::ZZRingElem, y::AbsSeriesElem) = y == x +==(x::ZZRingElem, y::AbsPowerSeriesRingElem) = y == x -function divexact(x::AbsSeriesElem, y::ZZRingElem; check::Bool=true) +function divexact(x::AbsPowerSeriesRingElem, y::ZZRingElem; check::Bool=true) iszero(y) && throw(DivideError()) lenx = length(x) z = parent(x)() @@ -35,7 +35,7 @@ function divexact(x::AbsSeriesElem, y::ZZRingElem; check::Bool=true) return z end -function (a::Generic.AbsSeriesRing{T})(b::ZZRingElem) where {T <: RingElement} +function (a::Generic.AbsPowerSeriesRing{T})(b::ZZRingElem) where {T <: RingElement} if iszero(b) z = Generic.AbsSeries{T}(Array{T}(undef, 0), 0, a.prec_max) else @@ -51,7 +51,7 @@ end # ############################################################################### -function *(a::ZZRingElem, b::RelSeriesElem) +function *(a::ZZRingElem, b::RelPowerSeriesRingElem) len = pol_length(b) z = parent(b)() fit!(z, len) @@ -65,15 +65,15 @@ function *(a::ZZRingElem, b::RelSeriesElem) return z end -*(a::RelSeriesElem, b::ZZRingElem) = b*a +*(a::RelPowerSeriesRingElem, b::ZZRingElem) = b*a -==(x::RelSeriesElem, y::ZZRingElem) = precision(x) == 0 || +==(x::RelPowerSeriesRingElem, y::ZZRingElem) = precision(x) == 0 || ((pol_length(x) == 0 && iszero(y)) || (pol_length(x) == 1 && valuation(x) == 0 && polcoeff(x, 0) == y)) -==(x::ZZRingElem, y::RelSeriesElem) = y == x +==(x::ZZRingElem, y::RelPowerSeriesRingElem) = y == x -function divexact(x::RelSeriesElem, y::ZZRingElem; check::Bool=true) +function divexact(x::RelPowerSeriesRingElem, y::ZZRingElem; check::Bool=true) iszero(y) && throw(DivideError()) lenx = pol_length(x) z = parent(x)() @@ -86,7 +86,7 @@ function divexact(x::RelSeriesElem, y::ZZRingElem; check::Bool=true) return z end -function (a::Generic.RelSeriesRing{T})(b::ZZRingElem) where {T <: RingElement} +function (a::Generic.RelPowerSeriesRing{T})(b::ZZRingElem) where {T <: RingElement} if iszero(b) z = Generic.RelSeries{T}(Array{T}(undef, 0), 0, a.prec_max, a.prec_max) else diff --git a/src/flint/fmpq_abs_series.jl b/src/flint/fmpq_abs_series.jl index 90cf202ec..360e538fa 100644 --- a/src/flint/fmpq_abs_series.jl +++ b/src/flint/fmpq_abs_series.jl @@ -125,7 +125,7 @@ characteristic(::QQAbsPowerSeriesRing) = 0 # ############################################################################### -function similar(f::AbsSeriesElem, R::QQField, max_prec::Int, +function similar(f::AbsPowerSeriesRingElem, R::QQField, max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) z = QQAbsPowerSeriesRingElem() if base_ring(f) === R && s == var(parent(f)) && @@ -907,10 +907,10 @@ function power_series_ring(R::QQField, prec::Int, s::AbstractString; model=:capp return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::QQField, prec::Int) +function AbsPowerSeriesRing(R::QQField, prec::Int) return QQAbsPowerSeriesRing(prec, :x, false) end -function RelSeriesRing(R::QQField, prec::Int) +function RelPowerSeriesRing(R::QQField, prec::Int) return QQRelPowerSeriesRing(prec, :x, false) end diff --git a/src/flint/fmpq_rel_series.jl b/src/flint/fmpq_rel_series.jl index 7159c11d6..e773cc677 100644 --- a/src/flint/fmpq_rel_series.jl +++ b/src/flint/fmpq_rel_series.jl @@ -115,7 +115,7 @@ characteristic(::QQRelPowerSeriesRing) = 0 # ############################################################################### -function similar(f::RelSeriesElem, R::QQField, max_prec::Int, +function similar(f::RelPowerSeriesRingElem, R::QQField, max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) z = QQRelPowerSeriesRingElem() if base_ring(f) === R && s == var(parent(f)) && diff --git a/src/flint/fmpz_abs_series.jl b/src/flint/fmpz_abs_series.jl index 7af4bc7de..c06c36081 100644 --- a/src/flint/fmpz_abs_series.jl +++ b/src/flint/fmpz_abs_series.jl @@ -123,7 +123,7 @@ characteristic(::ZZAbsPowerSeriesRing) = 0 # ############################################################################### -function similar(f::AbsSeriesElem, R::ZZRing, max_prec::Int, +function similar(f::AbsPowerSeriesRingElem, R::ZZRing, max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) z = ZZAbsPowerSeriesRingElem() if base_ring(f) === R && s == var(parent(f)) && @@ -682,10 +682,10 @@ function power_series_ring(R::ZZRing, prec::Int, s::AbstractString; model=:cappe return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::ZZRing, prec::Int) +function AbsPowerSeriesRing(R::ZZRing, prec::Int) return ZZAbsPowerSeriesRing(prec, :x, false) end -function RelSeriesRing(R::ZZRing, prec::Int) +function RelPowerSeriesRing(R::ZZRing, prec::Int) return ZZRelPowerSeriesRing(prec, :x, false) end diff --git a/src/flint/fmpz_mod_abs_series.jl b/src/flint/fmpz_mod_abs_series.jl index a53c78bab..61f394171 100644 --- a/src/flint/fmpz_mod_abs_series.jl +++ b/src/flint/fmpz_mod_abs_series.jl @@ -144,7 +144,7 @@ characteristic(R::($rtype)) = characteristic(base_ring(R)) # ############################################################################### -function similar(f::AbsSeriesElem, R::($brtype), max_prec::Int, +function similar(f::AbsPowerSeriesRingElem, R::($brtype), max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) par = ($rtype)(R, max_prec, s, cached) z = ($etype)(R) @@ -849,11 +849,11 @@ function power_series_ring(R::ZZModRing, prec::Int, s::AbstractString; model=:ca return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::ZZModRing, prec::Int) +function AbsPowerSeriesRing(R::ZZModRing, prec::Int) return ZZModAbsPowerSeriesRing(R, prec, :x, false) end -function RelSeriesRing(R::ZZModRing, prec::Int) +function RelPowerSeriesRing(R::ZZModRing, prec::Int) return ZZModRelPowerSeriesRing(R, prec, :x, false) end @@ -872,10 +872,10 @@ function power_series_ring(R::FpField, prec::Int, s::AbstractString; model=:capp return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::FpField, prec::Int) +function AbsPowerSeriesRing(R::FpField, prec::Int) return FpAbsPowerSeriesRing(R, prec, :x, false) end -function RelSeriesRing(R::FpField, prec::Int) +function RelPowerSeriesRing(R::FpField, prec::Int) return FpRelPowerSeriesRing(R, prec, :x, false) end diff --git a/src/flint/fmpz_mod_rel_series.jl b/src/flint/fmpz_mod_rel_series.jl index 113726024..db97eb7e3 100644 --- a/src/flint/fmpz_mod_rel_series.jl +++ b/src/flint/fmpz_mod_rel_series.jl @@ -133,7 +133,7 @@ characteristic(R::($rtype)) = modulus(R) # ############################################################################### -function similar(f::RelSeriesElem, R::($brtype), max_prec::Int, +function similar(f::RelPowerSeriesRingElem, R::($brtype), max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) par = ($rtype)(R, max_prec, s, cached) z = ($etype)(R) diff --git a/src/flint/fmpz_rel_series.jl b/src/flint/fmpz_rel_series.jl index eb24a3026..a5e670e01 100644 --- a/src/flint/fmpz_rel_series.jl +++ b/src/flint/fmpz_rel_series.jl @@ -115,7 +115,7 @@ characteristic(::ZZRelPowerSeriesRing) = 0 # ############################################################################### -function similar(f::RelSeriesElem, R::ZZRing, max_prec::Int, +function similar(f::RelPowerSeriesRingElem, R::ZZRing, max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) z = ZZRelPowerSeriesRingElem() if base_ring(f) === R && s == var(parent(f)) && diff --git a/src/flint/fq_abs_series.jl b/src/flint/fq_abs_series.jl index 48ad5c731..2976702fb 100644 --- a/src/flint/fq_abs_series.jl +++ b/src/flint/fq_abs_series.jl @@ -138,7 +138,7 @@ characteristic(R::($rtype)) = characteristic(base_ring(R)) # ############################################################################### -function similar(f::AbsSeriesElem, R::($ctype), max_prec::Int, +function similar(f::AbsPowerSeriesRingElem, R::($ctype), max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) par = ($rtype)(R, max_prec, s, cached) z = ($etype)(R) @@ -766,11 +766,11 @@ function power_series_ring(R::FqPolyRepField, prec::Int, s::AbstractString; mode return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::FqPolyRepField, prec::Int) +function AbsPowerSeriesRing(R::FqPolyRepField, prec::Int) return FqPolyRepAbsPowerSeriesRing(R, prec, :x, false) end -function RelSeriesRing(R::FqPolyRepField, prec::Int) +function RelPowerSeriesRing(R::FqPolyRepField, prec::Int) return FqPolyRepRelPowerSeriesRing(R, prec, :x, false) end @@ -790,10 +790,10 @@ function power_series_ring(R::fqPolyRepField, prec::Int, s::AbstractString; mode return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::fqPolyRepField, prec::Int) +function AbsPowerSeriesRing(R::fqPolyRepField, prec::Int) return fqPolyRepAbsPowerSeriesRing(R, prec, :x, false) end -function RelSeriesRing(R::fqPolyRepField, prec::Int) +function RelPowerSeriesRing(R::fqPolyRepField, prec::Int) return fqPolyRepRelPowerSeriesRing(R, prec, :x, false) end diff --git a/src/flint/fq_default_abs_series.jl b/src/flint/fq_default_abs_series.jl index f9025857e..d3dcb5607 100644 --- a/src/flint/fq_default_abs_series.jl +++ b/src/flint/fq_default_abs_series.jl @@ -129,7 +129,7 @@ characteristic(R::FqAbsPowerSeriesRing) = characteristic(base_ring(R)) # ############################################################################### -function similar(f::AbsSeriesElem, R::FqField, max_prec::Int, +function similar(f::AbsPowerSeriesRingElem, R::FqField, max_prec::Int, var::Symbol=var(parent(f)); cached::Bool=true) z = FqAbsPowerSeriesRingElem(R) z.parent = FqAbsPowerSeriesRing(R, max_prec, var, cached) diff --git a/src/flint/fq_default_rel_series.jl b/src/flint/fq_default_rel_series.jl index 9162282ec..4be7da19f 100644 --- a/src/flint/fq_default_rel_series.jl +++ b/src/flint/fq_default_rel_series.jl @@ -121,7 +121,7 @@ characteristic(R::FqRelPowerSeriesRing) = characteristic(base_ring(R)) # ############################################################################### -function similar(f::RelSeriesElem, R::FqField, max_prec::Int, +function similar(f::RelPowerSeriesRingElem, R::FqField, max_prec::Int, var::Symbol=var(parent(f)); cached::Bool=true) z = FqRelPowerSeriesRingElem(R) z.parent = FqRelPowerSeriesRing(R, max_prec, var, cached) diff --git a/src/flint/fq_rel_series.jl b/src/flint/fq_rel_series.jl index e6049fa9a..50e78e2c2 100644 --- a/src/flint/fq_rel_series.jl +++ b/src/flint/fq_rel_series.jl @@ -129,7 +129,7 @@ characteristic(R::($rtype)) = characteristic(base_ring(R)) # ############################################################################### -function similar(f::RelSeriesElem, R::($ctype), max_prec::Int, +function similar(f::RelPowerSeriesRingElem, R::($ctype), max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) par = ($rtype)(R, max_prec, s, cached) z = ($etype)(R) diff --git a/src/flint/nmod_abs_series.jl b/src/flint/nmod_abs_series.jl index 464450489..91894a40d 100644 --- a/src/flint/nmod_abs_series.jl +++ b/src/flint/nmod_abs_series.jl @@ -131,7 +131,7 @@ characteristic(R::($rtype)) = characteristic(base_ring(R)) # ############################################################################### -function similar(f::AbsSeriesElem, R::($brtype), max_prec::Int, +function similar(f::AbsPowerSeriesRingElem, R::($brtype), max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) par = ($rtype)(R, max_prec, s, cached) z = ($etype)(par.n) @@ -776,11 +776,11 @@ function power_series_ring(R::zzModRing, prec::Int, s::AbstractString; model=:ca return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::zzModRing, prec::Int) +function AbsPowerSeriesRing(R::zzModRing, prec::Int) return zzModAbsPowerSeriesRing(R, prec, :x, false) end -function RelSeriesRing(R::zzModRing, prec::Int) +function RelPowerSeriesRing(R::zzModRing, prec::Int) return zzModRelPowerSeriesRing(R, prec, :x, false) end @@ -799,10 +799,10 @@ function power_series_ring(R::fpField, prec::Int, s::AbstractString; model=:capp return power_series_ring(R, prec, Symbol(s); model=model, cached=cached) end -function AbsSeriesRing(R::fpField, prec::Int) +function AbsPowerSeriesRing(R::fpField, prec::Int) return fpAbsPowerSeriesRing(R, prec, :x, false) end -function RelSeriesRing(R::fpField, prec::Int) +function RelPowerSeriesRing(R::fpField, prec::Int) return fpRelPowerSeriesRing(R, prec, :x, false) end diff --git a/src/flint/nmod_rel_series.jl b/src/flint/nmod_rel_series.jl index f9f8d89c1..005f54241 100644 --- a/src/flint/nmod_rel_series.jl +++ b/src/flint/nmod_rel_series.jl @@ -124,7 +124,7 @@ characteristic(R::($rtype)) = modulus(R) # ############################################################################### -function similar(f::RelSeriesElem, R::($brtype), max_prec::Int, +function similar(f::RelPowerSeriesRingElem, R::($brtype), max_prec::Int, s::Symbol=var(parent(f)); cached::Bool=true) par = ($rtype)(R, max_prec, s, cached) z = ($etype)(modulus(R)) diff --git a/test/flint/fmpq_abs_series-test.jl b/test/flint/fmpq_abs_series-test.jl index 85613659b..f27b43374 100644 --- a/test/flint/fmpq_abs_series-test.jl +++ b/test/flint/fmpq_abs_series-test.jl @@ -3,8 +3,8 @@ end @testset "QQAbsPowerSeriesRingElem.constructors" begin - S1 = AbsSeriesRing(QQ, 30) - S2 = AbsSeriesRing(QQ, 30) + S1 = AbsPowerSeriesRing(QQ, 30) + S2 = AbsPowerSeriesRing(QQ, 30) @test isa(S1, QQAbsPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/fmpq_rel_series-test.jl b/test/flint/fmpq_rel_series-test.jl index d258b087b..dcbf3ad64 100644 --- a/test/flint/fmpq_rel_series-test.jl +++ b/test/flint/fmpq_rel_series-test.jl @@ -3,8 +3,8 @@ end @testset "QQRelPowerSeriesRingElem.constructors" begin - S1 = RelSeriesRing(QQ, 30) - S2 = RelSeriesRing(QQ, 30) + S1 = RelPowerSeriesRing(QQ, 30) + S2 = RelPowerSeriesRing(QQ, 30) @test isa(S1, QQRelPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/fmpz_abs_series-test.jl b/test/flint/fmpz_abs_series-test.jl index 4e4732f5f..e453b6a22 100644 --- a/test/flint/fmpz_abs_series-test.jl +++ b/test/flint/fmpz_abs_series-test.jl @@ -3,8 +3,8 @@ end @testset "ZZAbsPowerSeriesRingElem.constructors" begin - S1 = AbsSeriesRing(ZZ, 30) - S2 = AbsSeriesRing(ZZ, 30) + S1 = AbsPowerSeriesRing(ZZ, 30) + S2 = AbsPowerSeriesRing(ZZ, 30) @test isa(S1, ZZAbsPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/fmpz_mod_abs_series-test.jl b/test/flint/fmpz_mod_abs_series-test.jl index 0b7993239..8c616365f 100644 --- a/test/flint/fmpz_mod_abs_series-test.jl +++ b/test/flint/fmpz_mod_abs_series-test.jl @@ -5,8 +5,8 @@ end @testset "ZZModAbsPowerSeriesRingElem.constructors" begin S = residue_ring(ZZ, 123456789012345678949) - R1 = AbsSeriesRing(S, 30) - R2 = AbsSeriesRing(S, 30) + R1 = AbsPowerSeriesRing(S, 30) + R2 = AbsPowerSeriesRing(S, 30) @test isa(R1, ZZModAbsPowerSeriesRing) @test R1 !== R2 diff --git a/test/flint/fmpz_mod_rel_series-test.jl b/test/flint/fmpz_mod_rel_series-test.jl index 295a5242e..531f4b4dc 100644 --- a/test/flint/fmpz_mod_rel_series-test.jl +++ b/test/flint/fmpz_mod_rel_series-test.jl @@ -5,8 +5,8 @@ end @testset "ZZModRelPowerSeriesRingElem.constructors" begin R = residue_ring(ZZ, 123456789012345678949) - S1 = RelSeriesRing(R, 30) - S2 = RelSeriesRing(R, 30) + S1 = RelPowerSeriesRing(R, 30) + S2 = RelPowerSeriesRing(R, 30) @test isa(S1, ZZModRelPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/fmpz_rel_series-test.jl b/test/flint/fmpz_rel_series-test.jl index ec032f8f6..6bee0b04a 100644 --- a/test/flint/fmpz_rel_series-test.jl +++ b/test/flint/fmpz_rel_series-test.jl @@ -3,8 +3,8 @@ end @testset "ZZRelPowerSeriesRingElem.constructors" begin - S1 = RelSeriesRing(ZZ, 30) - S2 = RelSeriesRing(ZZ, 30) + S1 = RelPowerSeriesRing(ZZ, 30) + S2 = RelPowerSeriesRing(ZZ, 30) @test isa(S1, ZZRelPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/fq_abs_series-test.jl b/test/flint/fq_abs_series-test.jl index 848289e58..ce369204d 100644 --- a/test/flint/fq_abs_series-test.jl +++ b/test/flint/fq_abs_series-test.jl @@ -5,8 +5,8 @@ end @testset "FqPolyRepAbsPowerSeriesRingElem.constructors" begin S, t = FiniteField(ZZRingElem(23), 5, "t") - R1 = AbsSeriesRing(S, 30) - R2 = AbsSeriesRing(S, 30) + R1 = AbsPowerSeriesRing(S, 30) + R2 = AbsPowerSeriesRing(S, 30) @test isa(R1, FqPolyRepAbsPowerSeriesRing) @test R1 !== R2 diff --git a/test/flint/fq_nmod_abs_series-test.jl b/test/flint/fq_nmod_abs_series-test.jl index ed4c3bd27..23acd0f86 100644 --- a/test/flint/fq_nmod_abs_series-test.jl +++ b/test/flint/fq_nmod_abs_series-test.jl @@ -5,8 +5,8 @@ end @testset "fqPolyRepAbsPowerSeriesRingElem.constructors" begin S, t = FiniteField(23, 5, "t") - R1 = AbsSeriesRing(S, 30) - R2 = AbsSeriesRing(S, 30) + R1 = AbsPowerSeriesRing(S, 30) + R2 = AbsPowerSeriesRing(S, 30) @test isa(R1, fqPolyRepAbsPowerSeriesRing) @test R1 !== R2 diff --git a/test/flint/fq_nmod_rel_series-test.jl b/test/flint/fq_nmod_rel_series-test.jl index e9407cf9c..37761d8f9 100644 --- a/test/flint/fq_nmod_rel_series-test.jl +++ b/test/flint/fq_nmod_rel_series-test.jl @@ -5,8 +5,8 @@ end @testset "fqPolyRepRelPowerSeriesRingElem.constructors" begin R, t = FiniteField(23, 5, "t") - S1 = RelSeriesRing(R, 30) - S2 = RelSeriesRing(R, 30) + S1 = RelPowerSeriesRing(R, 30) + S2 = RelPowerSeriesRing(R, 30) @test isa(S1, fqPolyRepRelPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/fq_rel_series-test.jl b/test/flint/fq_rel_series-test.jl index 18aa6668c..0baae1d07 100644 --- a/test/flint/fq_rel_series-test.jl +++ b/test/flint/fq_rel_series-test.jl @@ -5,8 +5,8 @@ end @testset "FqPolyRepRelPowerSeriesRingElem.constructors" begin R, t = FiniteField(ZZRingElem(23), 5, "t") - S1 = RelSeriesRing(R, 30) - S2 = RelSeriesRing(R, 30) + S1 = RelPowerSeriesRing(R, 30) + S2 = RelPowerSeriesRing(R, 30) @test isa(S1, FqPolyRepRelPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/gfp_abs_series-test.jl b/test/flint/gfp_abs_series-test.jl index 127aa5e30..d22596fff 100644 --- a/test/flint/gfp_abs_series-test.jl +++ b/test/flint/gfp_abs_series-test.jl @@ -5,8 +5,8 @@ end @testset "fpAbsPowerSeriesRingElem.constructors" begin S = GF(23) - R1 = AbsSeriesRing(S, 30) - R2 = AbsSeriesRing(S, 30) + R1 = AbsPowerSeriesRing(S, 30) + R2 = AbsPowerSeriesRing(S, 30) @test isa(R1,fpAbsPowerSeriesRing) @test R1 !== R2 diff --git a/test/flint/gfp_fmpz_abs_series-test.jl b/test/flint/gfp_fmpz_abs_series-test.jl index c575de1fa..4293b731d 100644 --- a/test/flint/gfp_fmpz_abs_series-test.jl +++ b/test/flint/gfp_fmpz_abs_series-test.jl @@ -5,8 +5,8 @@ end @testset "FpAbsPowerSeriesRingElem.constructors" begin S = GF(ZZ(123456789012345678949)) - R1 = AbsSeriesRing(S, 30) - R2 = AbsSeriesRing(S, 30) + R1 = AbsPowerSeriesRing(S, 30) + R2 = AbsPowerSeriesRing(S, 30) @test isa(R1, FpAbsPowerSeriesRing) @test R1 !== R2 diff --git a/test/flint/gfp_fmpz_rel_series-test.jl b/test/flint/gfp_fmpz_rel_series-test.jl index fd64253ee..5ab0c9b26 100644 --- a/test/flint/gfp_fmpz_rel_series-test.jl +++ b/test/flint/gfp_fmpz_rel_series-test.jl @@ -5,8 +5,8 @@ end @testset "FpRelPowerSeriesRingElem.constructors" begin R = GF(ZZ(123456789012345678949)) - S1 = RelSeriesRing(R, 30) - S2 = RelSeriesRing(R, 30) + S1 = RelPowerSeriesRing(R, 30) + S2 = RelPowerSeriesRing(R, 30) @test isa(S1, FpRelPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/gfp_rel_series-test.jl b/test/flint/gfp_rel_series-test.jl index 67be21bc2..3ada4d33c 100644 --- a/test/flint/gfp_rel_series-test.jl +++ b/test/flint/gfp_rel_series-test.jl @@ -5,8 +5,8 @@ end @testset "fpRelPowerSeriesRingElem.constructors" begin R = GF(17) - S1 = RelSeriesRing(R, 30) - S2 = RelSeriesRing(R, 30) + S1 = RelPowerSeriesRing(R, 30) + S2 = RelPowerSeriesRing(R, 30) @test isa(S1, fpRelPowerSeriesRing) @test S1 !== S2 diff --git a/test/flint/nmod_abs_series-test.jl b/test/flint/nmod_abs_series-test.jl index bab1bb04e..babeaee3e 100644 --- a/test/flint/nmod_abs_series-test.jl +++ b/test/flint/nmod_abs_series-test.jl @@ -5,8 +5,8 @@ end @testset "zzModAbsPowerSeriesRingElem.constructors" begin S = residue_ring(ZZ, 23) - R1 = AbsSeriesRing(S, 30) - R2 = AbsSeriesRing(S, 30) + R1 = AbsPowerSeriesRing(S, 30) + R2 = AbsPowerSeriesRing(S, 30) @test isa(R1, zzModAbsPowerSeriesRing) @test R1 !== R2 diff --git a/test/flint/nmod_rel_series-test.jl b/test/flint/nmod_rel_series-test.jl index 63bb39569..828301ddf 100644 --- a/test/flint/nmod_rel_series-test.jl +++ b/test/flint/nmod_rel_series-test.jl @@ -5,8 +5,8 @@ end @testset "zzModRelPowerSeriesRingElem.constructors" begin R = residue_ring(ZZ, 17) - S1 = RelSeriesRing(R, 30) - S2 = RelSeriesRing(R, 30) + S1 = RelPowerSeriesRing(R, 30) + S2 = RelPowerSeriesRing(R, 30) @test isa(S1, zzModRelPowerSeriesRing) @test S1 !== S2