diff --git a/src/sage/modular/modform/element.py b/src/sage/modular/modform/element.py index 4f04cb2c3db..c948ea40394 100644 --- a/src/sage/modular/modform/element.py +++ b/src/sage/modular/modform/element.py @@ -3596,6 +3596,8 @@ def _homogeneous_to_polynomial(self, names, gens): x0 sage: M.1._homogeneous_to_polynomial('E4, E6', gens) E6 + sage: M(1/2).to_polynomial() + 1/2 sage: p = ((M.0)**3 + (M.1)**2)._homogeneous_to_polynomial('x', gens); p x0^3 + x1^2 sage: M(p) == (M.0)**3 + (M.1)**2 @@ -3608,6 +3610,8 @@ def _homogeneous_to_polynomial(self, names, gens): M = self.parent() k = self.weight() #only if self is homogeneous poly_parent = M.polynomial_ring(names, gens) + if k == 0: + return poly_parent(self[k]) monomials = M._monomials_of_weight(k, gens, poly_parent) # initialize the matrix of coefficients @@ -3664,4 +3668,4 @@ def to_polynomial(self, names='x', gens=None): gens = M.gen_forms() # sum the polynomial of each homogeneous part - return sum(M(self[k])._homogeneous_to_polynomial(names, gens) for k in self.weights_list()) \ No newline at end of file + return sum(M(self[k])._homogeneous_to_polynomial(names, gens) for k in self.weights_list()) diff --git a/src/sage/modular/modform/ring.py b/src/sage/modular/modform/ring.py index 74cfaa8fdb4..ed76740b4e2 100644 --- a/src/sage/modular/modform/ring.py +++ b/src/sage/modular/modform/ring.py @@ -444,6 +444,9 @@ def from_polynomial(self, pol, gens=None): 1 + q + q^2 + 27*q^3 + q^4 + 6*q^5 + O(q^6) sage: M.0 + M.1 + M.2 1 + q + q^2 + 27*q^3 + q^4 + 6*q^5 + O(q^6) + sage: P = x.parent() + sage: M.from_polynomial(P(1/2)) + 1/2 ..TODO:: @@ -451,6 +454,8 @@ def from_polynomial(self, pol, gens=None): """ if not isinstance(pol, (MPolynomial, Polynomial)): raise TypeError('`pol` must be a polynomial') + if pol.is_constant(): + return self(pol.constant_coefficient()) if gens is None: gens = self.gen_forms() dict = self._generators_variables_dictionnary(pol.parent(), gens)