def __init__(self, O, C, R) : """ INPUT: - `O` -- A monoid with an action of a group; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.NNMonoid`. - `C` -- A monoid of characters; As implemented in ::class:~`fourier_expansion_framework.monoidpowerseries.CharacterMonoid_class`. - `R` -- A representation on a module; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.TrivialRepresentation`. EXAMPLES:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_module import EquivariantMonoidPowerSeriesModule sage: emps = EquivariantMonoidPowerSeriesModule_generic(NNMonoid(True), TrivialCharacterMonoid("1", QQ), TrivialRepresentation("1", FreeModule(QQ, 2))) # indirect doctest """ # If the representation O respects the monoid structure of S # the base ring should be the associated power series ring. if O.is_monoid_action() : Module.__init__(self, EquivariantMonoidPowerSeriesRing(O,C,TrivialRepresentation(R.group(), R.base_ring()))) else : Module.__init__(self, R.codomain()) EquivariantMonoidPowerSeriesAmbient_abstract.__init__(self, O, C, R) self.__coeff_gens = \ [self._element_class( self, dict([( C.one_element(), dict([(self.monoid().zero_element(), a)]) )]), self.monoid().filter_all() ) for a in self.coefficient_domain().gens()]
def __init__(self, O, C, R) : r""" INPUT: - `O` -- A monoid with an action of a group; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.NNMonoid`. - `C` -- A monoid of characters; As implemented in ::class:~`fourier_expansion_framework.monoidpowerseries.CharacterMonoid_class`. - `R` -- A representation on a module; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.TrivialRepresentation`. EXAMPLES:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_module import EquivariantMonoidPowerSeriesModule_generic sage: emps = EquivariantMonoidPowerSeriesModule_generic(NNMonoid(True), TrivialCharacterMonoid("1", QQ), TrivialRepresentation("1", FreeModule(QQ, 2))) # indirect doctest sage: emps = EquivariantMonoidPowerSeriesModule_generic(NNMonoid(True), TrivialCharacterMonoid("1", ZZ), TrivialRepresentation("1", FreeModule(ZZ, 2))) # indirect doctest sage: emps.base_ring() Ring of equivariant monoid power series over NN sage: (1 / 2) * emps.0 Equivariant monoid power series in Module of equivariant monoid power series over NN """ # If the representation O respects the monoid structure of S # the base ring should be the associated power series ring. if O.is_monoid_action() : Module.__init__(self, EquivariantMonoidPowerSeriesRing(O,C,TrivialRepresentation(R.group(), R.base_ring()))) else : Module.__init__(self, R.codomain()) EquivariantMonoidPowerSeriesAmbient_abstract.__init__(self, O, C, R) self.__coeff_gens = \ [self._element_class( self, dict([( C.one_element(), dict([(self.monoid().zero_element(), a)]) )]), self.monoid().filter_all() ) for a in self.coefficient_domain().gens()]
def __init__(self, O, C, R): r""" INPUT: - `O` -- A monoid with an action of a group; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.NNMonoid`. - `C` -- A monoid of characters; As implemented in ::class:~`fourier_expansion_framework.monoidpowerseries.CharacterMonoid_class`. - `R` -- A representation on an algebra; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.TrivialRepresentation`. EXAMPLES:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_ring import EquivariantMonoidPowerSeriesRing_generic sage: emps = EquivariantMonoidPowerSeriesRing_generic(NNMonoid(True), TrivialCharacterMonoid("1", QQ), TrivialRepresentation("1", QQ)) # indirect doctest sage: emps = EquivariantMonoidPowerSeriesRing_generic(NNMonoid(True), TrivialCharacterMonoid("1", ZZ), TrivialRepresentation("1", ZZ)) # indirect doctest sage: emps.base_ring() Integer Ring sage: (1 / 2) * emps.0 Equivariant monoid power series in Ring of equivariant monoid power series over NN """ Algebra.__init__(self, R.base_ring()) EquivariantMonoidPowerSeriesAmbient_abstract.__init__(self, O, C, R) self.__monoid_gens = \ [self._element_class(self, dict([( C.one_element(), dict([(s, self.coefficient_domain().one_element())]) )]), self.monoid().filter_all() ) for s in self.action().gens()] self.__character_gens = \ [self._element_class(self, dict([( c, dict([(self.monoid().zero_element(), self.coefficient_domain().one_element())]) )]), self.monoid().filter_all() ) for c in C.gens()] self.__coefficient_gens = \ [self._element_class(self, dict([( C.one_element(), dict([(self.monoid().zero_element(), g)]))]), self.monoid().filter_all() ) for g in self.coefficient_domain().gens()] from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_functor import MonoidPowerSeriesBaseRingInjection self._populate_coercion_lists_( coerce_list=[ MonoidPowerSeriesBaseRingInjection(R.codomain(), self) ], convert_list=([O.monoid()] if isinstance(O.monoid(), Parent) else []))
def __init__(self, O, C, R) : r""" INPUT: - `O` -- A monoid with an action of a group; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.NNMonoid`. - `C` -- A monoid of characters; As implemented in ::class:~`fourier_expansion_framework.monoidpowerseries.CharacterMonoid_class`. - `R` -- A representation on an algebra; As implemented in :class:~`fourier_expansion_framework.monoidpowerseries.TrivialRepresentation`. EXAMPLES:: sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_basicmonoids import * sage: from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_ring import EquivariantMonoidPowerSeriesRing_generic sage: emps = EquivariantMonoidPowerSeriesRing_generic(NNMonoid(True), TrivialCharacterMonoid("1", QQ), TrivialRepresentation("1", QQ)) # indirect doctest sage: emps = EquivariantMonoidPowerSeriesRing_generic(NNMonoid(True), TrivialCharacterMonoid("1", ZZ), TrivialRepresentation("1", ZZ)) # indirect doctest sage: emps.base_ring() Integer Ring sage: (1 / 2) * emps.0 Equivariant monoid power series in Ring of equivariant monoid power series over NN """ Algebra.__init__(self, R.base_ring()) EquivariantMonoidPowerSeriesAmbient_abstract.__init__(self, O, C, R) self.__monoid_gens = \ [self._element_class(self, dict([( C.one_element(), dict([(s, self.coefficient_domain().one_element())]) )]), self.monoid().filter_all() ) for s in self.action().gens()] self.__character_gens = \ [self._element_class(self, dict([( c, dict([(self.monoid().zero_element(), self.coefficient_domain().one_element())]) )]), self.monoid().filter_all() ) for c in C.gens()] self.__coefficient_gens = \ [self._element_class(self, dict([( C.one_element(), dict([(self.monoid().zero_element(), g)]))]), self.monoid().filter_all() ) for g in self.coefficient_domain().gens()] from psage.modform.fourier_expansion_framework.monoidpowerseries.monoidpowerseries_functor import MonoidPowerSeriesBaseRingInjection self._populate_coercion_lists_( coerce_list = [MonoidPowerSeriesBaseRingInjection(R.codomain(), self)] , convert_list = ([O.monoid()] if isinstance(O.monoid(), Parent) else []) )