|
957 | 957 |
|
958 | 958 | _change_univ_poly_ring(R, Rx, cached::Bool) = universal_polynomial_ring(R, symbols(Rx); internal_ordering=internal_ordering(Rx), cached)[1] |
959 | 959 |
|
960 | | -function change_base_ring(R::Ring, p::UnivPoly{T}; cached::Bool=true, parent::UniversalPolyRing = _change_univ_poly_ring(R, parent(p), cached)) where {T <: RingElement} |
961 | | - return UnivPoly(change_base_ring(R, data(p); parent = mpoly_ring(parent)), parent) |
| 960 | +function change_base_ring(R::Ring, p::UnivPoly{T}; cached::Bool=true, new_parent::UniversalPolyRing = _change_univ_poly_ring(R, parent(p), cached)) where {T <: RingElement} |
| 961 | + if nvars(parent(p)) > nvars(parent(data(p))) |
| 962 | + pp = upgrade(parent(p), data(p)) |
| 963 | + else |
| 964 | + pp = data(p) |
| 965 | + end |
| 966 | + return UnivPoly(change_base_ring(R, pp; parent = mpoly_ring(new_parent)), new_parent) |
962 | 967 | end |
963 | 968 |
|
964 | 969 | function change_coefficient_ring(R::Ring, p::UnivPoly{T}; cached::Bool=true, parent::UniversalPolyRing = _change_univ_poly_ring(R, parent(p), cached)) where {T <: RingElement} |
|
971 | 976 | # |
972 | 977 | ################################################################################ |
973 | 978 |
|
974 | | -function map_coefficients(f::T, p::UnivPoly; cached::Bool=true, parent::UniversalPolyRing = _change_univ_poly_ring(parent(f(zero(base_ring(p)))), parent(p), cached)) where T |
975 | | - return UnivPoly(map_coefficients(f, data(p); parent = mpoly_ring(parent)), parent) |
| 979 | +function map_coefficients(f::T, p::UnivPoly; cached::Bool=true, new_parent::UniversalPolyRing = _change_univ_poly_ring(parent(f(zero(base_ring(p)))), parent(p), cached)) where T |
| 980 | + if nvars(parent(p)) > nvars(parent(data(p))) |
| 981 | + pp = upgrade(parent(p), data(p)) |
| 982 | + else |
| 983 | + pp = data(p) |
| 984 | + end |
| 985 | + return UnivPoly(map_coefficients(f, pp; parent = mpoly_ring(new_parent)), new_parent) |
976 | 986 | end |
977 | 987 |
|
978 | 988 | ############################################################################### |
|
0 commit comments