Isomorphisms between Weierstrass models of elliptic curves¶
AUTHORS:
- Robert Bradshaw (2007): initial version
- John Cremona (Jan 2008): isomorphisms, automorphisms and twists in all characteristics
-
class
sage.schemes.elliptic_curves.weierstrass_morphism.
WeierstrassIsomorphism
(E=None, urst=None, F=None)¶ Bases:
sage.schemes.elliptic_curves.weierstrass_morphism.baseWI
,sage.categories.morphism.Morphism
Class representing a Weierstrass isomorphism between two elliptic curves.
-
class
sage.schemes.elliptic_curves.weierstrass_morphism.
baseWI
(u=1, r=0, s=0, t=0)¶ Bases:
object
This class implements the basic arithmetic of isomorphisms between Weierstrass models of elliptic curves.
These are specified by lists of the form \([u,r,s,t]\) (with \(u\not=0\)) which specifies a transformation \((x,y) \mapsto (x',y')\) where
\((x,y) = (u^2x'+r , u^3y' + su^2x' + t).\)INPUT:
u,r,s,t
(default (1,0,0,0)) – standard parameters of an isomorphism between Weierstrass models.
EXAMPLES:
sage: from sage.schemes.elliptic_curves.weierstrass_morphism import * sage: baseWI() (1, 0, 0, 0) sage: baseWI(2,3,4,5) (2, 3, 4, 5) sage: R.<u,r,s,t> = QQ[] sage: baseWI(u,r,s,t) (u, r, s, t)
-
is_identity
()¶ Return
True
if this is the identity isomorphism.EXAMPLES:
sage: from sage.schemes.elliptic_curves.weierstrass_morphism import * sage: w = baseWI(); w.is_identity() True sage: w = baseWI(2,3,4,5); w.is_identity() False
-
tuple
()¶ Return the parameters \(u,r,s,t\) as a tuple.
EXAMPLES:
sage: from sage.schemes.elliptic_curves.weierstrass_morphism import * sage: w = baseWI(2,3,4,5) sage: w.tuple() (2, 3, 4, 5)
-
sage.schemes.elliptic_curves.weierstrass_morphism.
isomorphisms
(E, F, JustOne=False)¶ Return one or all isomorphisms between two elliptic curves.
INPUT:
E
,F
(EllipticCurve) – Two elliptic curves.JustOne
(bool) IfTrue
, returns one isomorphism, orNone
if the curves are not isomorphic. IfFalse
, returns a (possibly empty) list of isomorphisms.
OUTPUT:
Either
None
, or a 4-tuple \((u,r,s,t)\) representing an isomorphism, or a list of these.Note
This function is not intended for users, who should use the interface provided by
ell_generic
.EXAMPLES:
sage: from sage.schemes.elliptic_curves.weierstrass_morphism import * sage: isomorphisms(EllipticCurve_from_j(0),EllipticCurve('27a3')) [(-1, 0, 0, -1), (1, 0, 0, 0)] sage: isomorphisms(EllipticCurve_from_j(0),EllipticCurve('27a3'),JustOne=True) (1, 0, 0, 0) sage: isomorphisms(EllipticCurve_from_j(0),EllipticCurve('27a1')) [] sage: isomorphisms(EllipticCurve_from_j(0),EllipticCurve('27a1'),JustOne=True)