def __init__(self, analytic_type, group, red_hom): r""" Construction functor for the forms ring with the given ``analytic_type``, ``group`` and variable ``red_hom`` See :meth:`__call__` for a description of the functor. INPUT: - ``analytic_type`` -- An element of ``AnalyticType()``. - ``group`` -- The index of a Hecke Triangle group. - ``red_hom`` -- A boolean variable for the parameter ``red_hom`` (also see ``FormsRing_abstract``). OUTPUT: The construction functor for the corresponding forms ring. EXAMPLES:: sage: from sage.modular.modform_hecketriangle.functors import FormsRingFunctor sage: FormsRingFunctor(["quasi", "mero"], group=6, red_hom=False) QuasiMeromorphicModularFormsRingFunctor(n=6) sage: FormsRingFunctor(["quasi", "mero"], group=6, red_hom=True) QuasiMeromorphicModularFormsRingFunctor(n=6, red_hom=True) """ Functor.__init__(self, Rings(), Rings()) from .graded_ring import canonical_parameters (self._group, R, red_hom, n) = canonical_parameters(group, ZZ, red_hom) self._red_hom = bool(red_hom) self._analytic_type = self.AT(analytic_type)
def __init__(self, analytic_type, group, k, ep): r""" Construction functor for the forms space (or forms ring, see above) with the given ``analytic_type``, ``group``, weight ``k`` and multiplier ``ep``. See :meth:`__call__` for a description of the functor. INPUT: - ``analytic_type`` -- An element of ``AnalyticType()``. - ``group`` -- The index of a Hecke Triangle group. - ``k`` -- A rational number, the weight of the space. - ``ep`` -- `1` or `-1`, the multiplier of the space. OUTPUT: The construction functor for the corresponding forms space/ring. EXAMPLES:: sage: from sage.modular.modform_hecketriangle.functors import FormsSpaceFunctor sage: FormsSpaceFunctor(["holo", "weak"], group=4, k=0, ep=-1) WeakModularFormsFunctor(n=4, k=0, ep=-1) """ Functor.__init__(self, Rings(), CommutativeAdditiveGroups()) from .space import canonical_parameters (self._group, R, self._k, self._ep, n) = canonical_parameters(group, ZZ, k, ep) self._analytic_type = self.AT(analytic_type)
def __init__(self, vars): """ EXAMPLES:: sage: F = sage.combinat.free_prelie_algebra.PreLieFunctor(['x','y']) sage: F PreLie[x,y] sage: F(ZZ) Free PreLie algebra on 2 generators ['x', 'y'] over Integer Ring """ Functor.__init__(self, Rings(), Magmas()) self.vars = vars
def __init__(self, vars): """ EXAMPLES:: sage: F = sage.algebras.free_zinbiel_algebra.ZinbielFunctor(['x','y']) sage: F Zinbiel[x,y] sage: F(ZZ) Free Zinbiel algebra on generators (Z[x], Z[y]) over Integer Ring """ Functor.__init__(self, Rings(), Magmas()) self.vars = vars
def __init__(self, vars): """ EXAMPLES:: sage: F = sage.combinat.free_dendriform_algebra.DendriformFunctor(['x','y']) sage: F Dendriform[x,y] sage: F(ZZ) Free Dendriform algebra on 2 generators ['x', 'y'] over Integer Ring """ Functor.__init__(self, Rings(), Rings()) self.vars = vars
def __init__(self): r""" Initialize the :class:`GroupExp` functor. EXAMPLES:: sage: F = GroupExp() sage: F.domain() Category of commutative additive groups sage: F.codomain() Category of groups """ Functor.__init__(self, CommutativeAdditiveGroups(), Groups())
def __init__(self, variables): """ EXAMPLES:: sage: functor = sage.algebras.free_zinbiel_algebra.ZinbielFunctor sage: F = functor(['x','y']); F Zinbiel[x,y] sage: F(ZZ) Free Zinbiel algebra on generators (Z[x], Z[y]) over Integer Ring """ Functor.__init__(self, Rings(), Magmas()) self.vars = variables self._finite_vars = bool( isinstance(variables, (list, tuple)) or variables in Sets().Finite())
def __init__(self, ambient_space_functor, generators): r""" Construction functor for the forms sub space for the given ``generators`` inside the ambient space which is constructed by the ``ambient_space_functor``. The functor can only be applied to rings for which the generators can be converted into the corresponding forms space given by the ``ambient_space_functor`` applied to the ring. See :meth:`__call__` for a description of the functor. INPUT: - ``ambient_space_functor`` -- A FormsSpaceFunctor - ``generators`` -- A list of elements of some ambient space over some base ring. OUTPUT: The construction functor for the corresponding forms sub space. EXAMPLES:: sage: from sage.modular.modform_hecketriangle.functors import (FormsSpaceFunctor, FormsSubSpaceFunctor) sage: from sage.modular.modform_hecketriangle.space import ModularForms sage: ambient_space = ModularForms(n=4, k=12, ep=1) sage: ambient_space_functor = FormsSpaceFunctor("holo", group=4, k=12, ep=1) sage: ambient_space_functor ModularFormsFunctor(n=4, k=12, ep=1) sage: el = ambient_space.gen(0).full_reduce() sage: FormsSubSpaceFunctor(ambient_space_functor, [el]) FormsSubSpaceFunctor with 1 generator for the ModularFormsFunctor(n=4, k=12, ep=1) """ Functor.__init__(self, Rings(), CommutativeAdditiveGroups()) if not isinstance(ambient_space_functor, FormsSpaceFunctor): raise ValueError( "{} is not a FormsSpaceFunctor!".format(ambient_space_functor)) # TODO: canonical parameters? Some checks? # The generators should have an associated base ring # self._generators_ring = ... # on call check if there is a coercion from self._generators_ring to R self._ambient_space_functor = ambient_space_functor self._generators = generators
def __init__(self, ambient_space_functor, generators): r""" Construction functor for the forms sub space for the given ``generators`` inside the ambient space which is constructed by the ``ambient_space_functor``. The functor can only be applied to rings for which the generators can be converted into the corresponding forms space given by the ``ambient_space_functor`` applied to the ring. See :meth:`__call__` for a description of the functor. INPUT: - ``ambient_space_functor`` -- A FormsSpaceFunctor - ``generators`` -- A list of elements of some ambient space over some base ring. OUTPUT: The construction functor for the corresponding forms sub space. EXAMPLES:: sage: from sage.modular.modform_hecketriangle.functors import (FormsSpaceFunctor, FormsSubSpaceFunctor) sage: from sage.modular.modform_hecketriangle.space import ModularForms sage: ambient_space = ModularForms(n=4, k=12, ep=1) sage: ambient_space_functor = FormsSpaceFunctor("holo", group=4, k=12, ep=1) sage: ambient_space_functor ModularFormsFunctor(n=4, k=12, ep=1) sage: el = ambient_space.gen(0).full_reduce() sage: FormsSubSpaceFunctor(ambient_space_functor, [el]) FormsSubSpaceFunctor with 1 generator for the ModularFormsFunctor(n=4, k=12, ep=1) """ Functor.__init__(self, Rings(), CommutativeAdditiveGroups()) if not isinstance(ambient_space_functor, FormsSpaceFunctor): raise ValueError("{} is not a FormsSpaceFunctor!".format(ambient_space_functor)) # TODO: canonical parameters? Some checks? # The generators should have an associated base ring # self._generators_ring = ... # on call check if there is a coercion from self._generators_ring to R self._ambient_space_functor = ambient_space_functor self._generators = generators
def __init__(self, x): Functor.__init__(self, Rings(), Rings()) self.x = x