Exemplo n.º 1
0
    def __init__(self, base_ring, coordinate):
        self.coordinate = coordinate

        self.Vector = flatsurf.Vector._unwrapped[self.coordinate]

        self._isomorphic_vector_space = FreeModule(base_ring, 2)
        if isinstance(base_ring, real_embedded_number_field.RealEmbeddedNumberField):
            self._isomorphic_vector_space = FreeModule(base_ring.number_field, 2)

        Parent.__init__(self, base_ring, category=FreeModules(base_ring))

        self.register_coercion(self._isomorphic_vector_space)
        self._isomorphic_vector_space.register_conversion(ConversionVectorSpace(self))
Exemplo n.º 2
0
    def __init__(self, X, Y, category=None):
        """
        EXAMPLES::

            sage: V = span([[1/2,1,1],[3/2,2,1],[0,0,1]],ZZ); W = V.span([2*V.0+4*V.1, 9*V.0+12*V.1, 4*V.2]); Q = V/W
            sage: type(Q.Hom(Q))
            <class 'sage.modules.fg_pid.fgp_morphism.FGP_Homset_class_with_category'>
        """
        if category is None:
            from sage.modules.free_module import is_FreeModule
            if is_FreeModule(X) and is_FreeModule(Y):
                from sage.all import FreeModules
                category = FreeModules(X.base_ring())
            else:
                from sage.all import Modules
                category = Modules(X.base_ring())
        Homset.__init__(self, X, Y, category)