def _element_constructor_(self, x) : """ INPUT: - `x` -- An integer, an element of the underlying polynomial ring or an element in a submodule of graded expansions. OUTPUT: An instance of the element class. TESTS:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_module import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_element import * sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_grading import DegreeGrading sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_ring import * sage: mps = MonoidPowerSeriesRing(QQ, NNMonoid(False)) sage: ger = GradedExpansionRing_class(Sequence([MonoidPowerSeries(mps, {1: 1}, mps.monoid().filter(4))]), Sequence([MonoidPowerSeries(mps, {1: 1, 2: 3}, mps.monoid().filter(4))]), PolynomialRing(QQ, ['a', 'b']).ideal(0), DegreeGrading((1,2))) sage: h = ger(1) """ if isinstance(x, (int, Integer)) : return self._element_class(self, self.relations().ring()(x)) P = x.parent() if P is self.relations().ring() : return self._element_class(self, x) elif self.relations().ring().has_coerce_map_from(P) : return self._element_class(self, self.relations().ring()(x)) elif P is self.base_ring() and isinstance( self.base_ring(), GradedExpansionAmbient_abstract ) : return self._element_class(self, self.relations().ring()(x.polynomial())) return GradedExpansionAmbient_abstract._element_constructor_(self, x)
def _element_constructor_(self, x): r""" INPUT: - `x` -- A zero integer, an element of the underlying polynomial ring or an element in a submodule of graded expansions. OUTPUT: An instance of the element class. TESTS:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_module import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_element import * sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_grading import DegreeGrading sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_module import * sage: m = FreeModule(QQ, 3) sage: mpsm = MonoidPowerSeriesModule(m, NNMonoid(False)) sage: mps = mpsm.base_ring() sage: ger = GradedExpansionModule_class(Sequence([MonoidPowerSeries(mps, {1: 1}, mps.monoid().filter(4))]), Sequence([MonoidPowerSeries(mpsm, {1: m([1,1,1]), 2: m([1,3,-3])}, mpsm.monoid().filter(4))]), PolynomialRing(QQ, ['a', 'b']).ideal(0), DegreeGrading((1,2))) sage: h = ger(0) """ if isinstance(x, (int, Integer)) and x == 0: return self._element_class(self, self.relations().ring().zero()) P = x.parent() if P is self.base_ring(): if x == 0: return self._element_class(self, self.relations().ring().zero()) return GradedExpansionAmbient_abstract._element_constructor_(self, x)
def _element_constructor_(self, x) : r""" INPUT: - `x` -- A zero integer, an element of the underlying polynomial ring or an element in a submodule of graded expansions. OUTPUT: An instance of the element class. TESTS:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_module import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_element import * sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_grading import DegreeGrading sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_module import * sage: m = FreeModule(QQ, 3) sage: mpsm = MonoidPowerSeriesModule(m, NNMonoid(False)) sage: mps = mpsm.base_ring() sage: ger = GradedExpansionModule_class(Sequence([MonoidPowerSeries(mps, {1: 1}, mps.monoid().filter(4))]), Sequence([MonoidPowerSeries(mpsm, {1: m([1,1,1]), 2: m([1,3,-3])}, mpsm.monoid().filter(4))]), PolynomialRing(QQ, ['a', 'b']).ideal(0), DegreeGrading((1,2))) sage: h = ger(0) """ if isinstance(x, (int, Integer)) and x == 0 : return self._element_class(self, self.relations().ring().zero()) P = x.parent() if P is self.base_ring() : if x == 0 : return self._element_class(self, self.relations().ring().zero()) return GradedExpansionAmbient_abstract._element_constructor_(self, x)
def _element_constructor_(self, x) : r""" INPUT: - `x` -- An integer, an element of the underlying polynomial ring or an element in a submodule of graded expansions. OUTPUT: An instance of the element class. TESTS:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_module import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_element import * sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_grading import DegreeGrading sage: from psage.modform.fourier_expansion_framework.gradedexpansions.gradedexpansion_ring import * sage: mps = MonoidPowerSeriesRing(QQ, NNMonoid(False)) sage: ger = GradedExpansionRing_class(Sequence([MonoidPowerSeries(mps, {1: 1}, mps.monoid().filter(4))]), Sequence([MonoidPowerSeries(mps, {1: 1, 2: 3}, mps.monoid().filter(4))]), PolynomialRing(QQ, ['a', 'b']).ideal(0), DegreeGrading((1,2))) sage: h = ger(1) """ if isinstance(x, (int, Integer)) : return self._element_class(self, self.relations().ring()(x)) P = x.parent() if P is self.relations().ring() : return self._element_class(self, x) elif self.relations().ring().has_coerce_map_from(P) : return self._element_class(self, self.relations().ring()(x)) elif P is self.base_ring() and isinstance( self.base_ring(), GradedExpansionAmbient_abstract ) : return self._element_class(self, self.relations().ring()(x.polynomial())) return GradedExpansionAmbient_abstract._element_constructor_(self, x)