Пример #1
0
 def wrapper(*args, **kwds):
     from sage.misc.superseded import experimental_warning
     experimental_warning(
         self.trac_number, 'This class/method/function is marked as '
         'experimental. It, its functionality or its '
         'interface might change without a '
         'formal deprecation.', self.stacklevel)
     return func(*args, **kwds)
Пример #2
0
 def wrapper(*args, **kwds):
     from sage.misc.superseded import experimental_warning
     experimental_warning(self.trac_number,
                  'This class/method/function is marked as '
                  'experimental. It, its functionality or its '
                  'interface might change without a '
                  'formal deprecation.',
                  self.stacklevel)
     return func(*args, **kwds)
Пример #3
0
        def wrapper(*args, **kwds):
            from sage.misc.superseded import experimental_warning

            if not wrapper._already_issued:
                experimental_warning(
                    self.trac_number,
                    "This class/method/function is marked as "
                    "experimental. It, its functionality or its "
                    "interface might change without a "
                    "formal deprecation.",
                    self.stacklevel,
                )
                wrapper._already_issued = True
            return func(*args, **kwds)
Пример #4
0
        def __init__(self, lie):
            r"""
            EXAMPLES::

                sage: L = LieAlgebra(QQ, 3, 'x')
                sage: TestSuite(L.Hall()).run()
            """
            experimental_warning(16823, "The Hall basis has not been fully proven correct,"
                                        " but currently no bugs are known")
            FreeLieBasis_abstract.__init__(self, lie, "Hall")

            # Register the coercions
            Lyn = lie.Lyndon()
            Hom_HL = Hom(self, Lyn)
            Hom_LH = Hom(Lyn, self)
            LieAlgebraHomomorphism_im_gens(Hom_HL, Lyn.gens()).register_as_coercion()
            LieAlgebraHomomorphism_im_gens(Hom_LH, self.gens()).register_as_coercion()
Пример #5
0
        def __init__(self, lie):
            r"""
            EXAMPLES::

                sage: L = LieAlgebra(QQ, 3, 'x')
                sage: TestSuite(L.Hall()).run()
            """
            experimental_warning(16823, "The Hall basis has not been fully proven correct,"
                                        " but currently no bugs are known")
            FreeLieBasis_abstract.__init__(self, lie, "Hall")

            # Register the coercions
            Lyn = lie.Lyndon()
            Hom_HL = Hom(self, Lyn)
            Hom_LH = Hom(Lyn, self)
            LieAlgebraHomomorphism_im_gens(Hom_HL, Lyn.gens()).register_as_coercion()
            LieAlgebraHomomorphism_im_gens(Hom_LH, self.gens()).register_as_coercion()
Пример #6
0
from sage.structure.sequence import Sequence

from sage.arith.misc import prod, integer_floor
from sage.functions.log import log
from sage.functions.other import sqrt

from sage.rings.finite_rings import finite_field_base
from sage.rings.number_field import number_field_base

from sage.schemes.elliptic_curves.ell_generic import EllipticCurve_generic
from sage.schemes.elliptic_curves.hom import EllipticCurveHom
from sage.schemes.elliptic_curves.ell_curve_isogeny import EllipticCurveIsogeny
from sage.schemes.elliptic_curves.weierstrass_morphism import WeierstrassIsomorphism

from sage.misc.superseded import experimental_warning
experimental_warning(32744, 'EllipticCurveHom_composite is experimental code.')

#TODO: implement sparse strategies? (cf. the SIKE cryptosystem)


def _eval_factored_isogeny(phis, P):
    """
    This method pushes a point `P` through a given sequence ``phis``
    of compatible isogenies.

    EXAMPLES::

        sage: from sage.schemes.elliptic_curves import hom_composite
        sage: E = EllipticCurve(GF(419), [1,0])
        sage: Q = E(21,8)
        sage: phis = []