diff --git a/src/generic/UnivPoly.jl b/src/generic/UnivPoly.jl index d12c049e4a..ebc6b69ca0 100644 --- a/src/generic/UnivPoly.jl +++ b/src/generic/UnivPoly.jl @@ -880,43 +880,11 @@ end # ############################################################################### -RandomExtensions.maketype(S::AbstractAlgebra.UniversalPolyRing, _, _, _) = elem_type(S) - -function RandomExtensions.make(S::AbstractAlgebra.UniversalPolyRing, term_range::AbstractUnitRange{Int}, - exp_bound::AbstractUnitRange{Int}, vs...) - R = coefficient_ring(S) - if length(vs) == 1 && elem_type(R) == Random.gentype(vs[1]) - Make(S, term_range, exp_bound, vs[1]) - else - Make(S, term_range, exp_bound, make(R, vs...)) - end -end - -function rand(rng::AbstractRNG, sp::SamplerTrivial{<:Make4{ - <:RingElement, <:AbstractAlgebra.UniversalPolyRing, <:AbstractUnitRange{Int}, <:AbstractUnitRange{Int}}}) - S, term_range, exp_bound, v = sp[][1:end] - f = S() - g = gens(S) - R = coefficient_ring(S) - for i = 1:rand(rng, term_range) - term = S(1) - for j = 1:length(g) - term *= g[j]^rand(rng, exp_bound) - end - term *= rand(rng, v) - f += term - end - return f +function rand(rng::AbstractRNG, S::UniversalPolyRing, args...) + return UnivPoly(rand(rng, make(base_ring(S), args...)), S) end -function rand(rng::AbstractRNG, S::AbstractAlgebra.UniversalPolyRing, - term_range::AbstractUnitRange{Int}, exp_bound::AbstractUnitRange{Int}, v...) - rand(rng, make(S, term_range, exp_bound, v...)) -end - -function rand(S::AbstractAlgebra.UniversalPolyRing, term_range, exp_bound, v...) - rand(Random.default_rng(), S, term_range, exp_bound, v...) -end +rand(S::UniversalPolyRing, args...) = rand(Random.default_rng(), S, args...) ############################################################################### #