def _element_constructor_(self, x) :
     """
     TESTS::
         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)))
         sage: h = emps(0) # indirect doctest
         sage: h = emps(int(0)) # indirect doctest
     """
     if isinstance(x, int) and x == 0 :
         return self._element_class( self,
             dict( [(self.characters().one_element(), dict())] ),
             self.action().filter_all() )
     elif isinstance(x, Element) and x.is_zero() :
         P = x.parent()
         
         if self.action().is_monoid_action() and \
            self.base_ring().base_ring().has_coerce_map_from(P) or \
            not self.action().is_monoid_action() and \
            self.base_ring().has_coerce_map_from(P) :
             return self._element_class( self,
                 dict( [(self.characters().one_element(), dict())] ),
                 self.action().filter_all() )
 
     return EquivariantMonoidPowerSeriesAmbient_abstract._element_constructor_(self, x)
Exemplo n.º 2
0
 def _element_constructor_(self, x) :
     r"""
     TESTS::
         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)))
         sage: h = emps(0) # indirect doctest
         sage: h = emps(int(0)) # indirect doctest
     """
     if isinstance(x, int) and x == 0 :
         return self._element_class( self,
             dict( [(self.characters().one_element(), dict())] ),
             self.action().filter_all() )
     elif isinstance(x, Element) and x.is_zero() :
         P = x.parent()
         
         if self.action().is_monoid_action() and \
            self.base_ring().base_ring().has_coerce_map_from(P) or \
            not self.action().is_monoid_action() and \
            self.base_ring().has_coerce_map_from(P) :
             return self._element_class( self,
                 dict( [(self.characters().one_element(), dict())] ),
                 self.action().filter_all() )
 
     return EquivariantMonoidPowerSeriesAmbient_abstract._element_constructor_(self, x)
    def _element_constructor_(self, x):
        r"""
        TESTS::
            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))
            sage: h = emps(1)
            sage: h = emps(emps.monoid().zero_element())
            sage: h = emps.zero_element()
            sage: K.<rho> = CyclotomicField(6)
            sage: emps = EquivariantMonoidPowerSeriesRing_generic(NNMonoid(True), TrivialCharacterMonoid("1", QQ), TrivialRepresentation("1", K))
            sage: h = emps(rho)
            sage: h = emps(1)
        """
        if isinstance(x, int):
            x = Integer(x)

        if isinstance(x, Element):
            P = x.parent()

            if P is self.coefficient_domain():
                return self._element_class(
                    self, {
                        self.characters().one_element(): {
                            self.monoid().zero_element(): x
                        }
                    },
                    self.action().filter_all())
            elif self.coefficient_domain().has_coerce_map_from(P):
                return self._element_class(
                    self, {
                        self.characters().one_element(): {
                            self.monoid().zero_element():
                            self.coefficient_domain()(x)
                        }
                    },
                    self.action().filter_all())
            elif P is self.monoid():
                return self._element_class(self, {
                    self.characters().one_element(): {
                        x: self.base_ring().one_element()
                    }
                },
                                           self.action().filter_all(),
                                           symmetrise=True)

        return EquivariantMonoidPowerSeriesAmbient_abstract._element_constructor_(
            self, x)
    def _element_constructor_(self, x) :
        """
        TESTS::
            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))
            sage: h = emps(1)
            sage: h = emps(emps.monoid().zero_element())
            sage: h = emps.zero_element()
            sage: K.<rho> = CyclotomicField(6)
            sage: emps = EquivariantMonoidPowerSeriesRing_generic(NNMonoid(True), TrivialCharacterMonoid("1", QQ), TrivialRepresentation("1", K))
            sage: h = emps(rho)
            sage: h = emps(1)
        """
        if isinstance(x, int) :
            x = Integer(x)
        
        if isinstance(x, Element) :
            P = x.parent()

            if P is self.coefficient_domain() :
                return self._element_class( self,
                        {self.characters().one_element():
                                {self.monoid().zero_element(): x}},
                        self.action().filter_all() )
            elif self.coefficient_domain().has_coerce_map_from(P) :
                return self._element_class( self,
                        {self.characters().one_element():
                                {self.monoid().zero_element(): self.coefficient_domain()(x)}},
                        self.action().filter_all() )                
            elif P is self.monoid() :
                return self._element_class( self,
                        {self.characters().one_element():
                                {x: self.base_ring().one_element()}},
                        self.action().filter_all(),
                        symmetrise = True  )
            
        return EquivariantMonoidPowerSeriesAmbient_abstract._element_constructor_(self, x)