Home | Trees | Index | Help |
|
---|
Package sage :: Package ellcurve :: Module ellcurve :: Class EllipticCurve_Q |
|
object
--+ |EllipticCurve
--+ |EllipticCurve_generic
--+ | EllipticCurve_Q
Method Summary | |
---|---|
__init__(self,
ainvs,
extra)
| |
The n-th Fourier coefficient of the modular form corresponding to this elliptic curve, where n is a positive integer. | |
analytic_rank(self)
| |
The Fourier coefficients up to and including a_n of the modular form attached to this elliptic curve. | |
The p-th Fourier coefficient of the modular form corresponding to this elliptic curve, where p is prime. | |
Return the area of a fundamental domain for the period lattice of the elliptic curve. | |
Returns the conductor of the elliptic curve. | |
cremona_label(self,
space)
| |
Return the curve in the elliptic curve database isomorphic to this curve, if possible. | |
eval_modular_form(self,
points,
prec)
| |
formal_group(self,
prec)
| |
formal_inverse(self,
prec)
| |
formal_log(self,
prec)
| |
formal_mult(self,
n,
prec)
| |
formal_n_isogeny(self,
n,
prec)
| |
Return the formal power series w(t) = t^3 + ... | |
Return the formal power series x(t) in terms of the local parameter t = -x/y at infinity. | |
Return the formal power series y(t) in terms of the local parameter t = -x/y at infinity. | |
gens(self)
| |
has_cm(self)
| |
heegner_discriminants(self,
bound)
| |
is_semistable(self)
| |
Return True if the mod-p representation attached to E is surjective, False if it is not, or None if we were unable to determine whether it is or not. | |
Return all curves in the isogeny class of this elliptic curve. | |
Local Kodaira type of the elliptic curve at p. | |
Returns whether or not L(E,1) = 0. | |
Returns the ratio L(E,1)/Omega as an exact rational number. | |
Returns the value of the Lambda-series of the elliptic curve E at s can be any complex number. | |
Returns the value of the L-series of the elliptic curve E at s, where s must be a real number. | |
Compute L(E,1) using k terms of the series for L(E,1) form page 406 of Henri Cohen's book "A Course in Computational Algebraic Number Theory". | |
Compute L'(E,1) using k terms of the series for L'(E,1) form page 406 of Henri Cohen's book"A Course in Computational Algebraic Number Theory". | |
Returns the value of the L-series of the elliptic curve E at s can be any complex number using prec terms of the power series expansion. | |
minimal_model(self)
| |
Return the modular degree of this elliptic curve. | |
Computes and returns ... | |
mwrank_curve(self)
| |
Returns the newform attached to this elliptic curve. | |
Returns a list of primes p such that the mod-p representation rho_{E,p} *might* not be surjective (this list usually contains 2, because of shortcomings of the algorithm). | |
The number of points on E modulo p, where p is a prime of good reduction. | |
Returns the real period. | |
Returns the p-adic sigma function of the elliptic curve as a power series in t to precision prec. | |
Return the PARI curve corresponding to this elliptic curve. | |
Return the PARI curve corresponding to a minimal model for this elliptic curve. | |
Return a basis for the period lattice of the elliptic curve over Q as a 2-tuple. | |
quadratic_twist(self,
D)
| |
rank(self,
use_database)
| |
Returns 1 if there is 1 real component and 2 if there are 2. | |
Returns the regulator of this curve, which must be defined over Q. | |
Returns the root number of this elliptic curve. | |
Returns True precisely when D is a fundamental discriminant that satisfies the Heegner hypothesis for this elliptic curve. | |
Returns the Birch and Swinnerton-Dyer conjectural order of Sha, unless the analytic rank is > 1, in which case this function returns 0. | |
Compute a provably correct bound on the order of the Shafarevich-Tate group of this curve. | |
Returns a list p of primes such tha theorems of Kato's and others (e.g., as explained in a paper/thesis of Grigor Grigorov) imply that if p divides #Sha(E) then p is in the list. | |
Given a fundamental discriminant D (=-3,-4) that satisfies the Heegner hypothesis, return a list of primes so that Kolyvagin's theorem (as in Gross's paper) implies that any prime divisor of #Sha is in this list. | |
Returns the value of the Weierstrass sigma function of the lattice associated to this elliptic curve E. | |
The Tamagawa number of the elliptic curve at p. | |
Returns the product of the Tamagawa numbers. | |
Return the order of the torsion subgroup. | |
Returns the torsion subgroup of this elliptic curve. | |
two_selmer_rank(self)
| |
Returns a bound on the dimension of Sha(E)[2], computed using a 2-descent. | |
two_torsion_rank(self)
| |
Inherited from EllipticCurve_generic | |
Create a point on the elliptic curve, if possible. | |
Returns True if and only if P defines is a point on the elliptic curve. | |
| |
String representation of elliptic curve. | |
EXAMPLES: | |
EXAMPLES: | |
EXAMPLES: | |
EXAMPLES: | |
EXAMPLES: | |
The a-invariants of this elliptic curve. | |
The a-invariants of this elliptic curve. | |
The b-invariants of this elliptic curve. | |
Returns the base ring of the elliptic curves. | |
Returns the base ring of the elliptic curves. | |
The c-invariants of this elliptic curve. | |
Returns the discriminant of this elliptic curve. | |
Returns the n-th torsion polynomial (a.k.a., division polynomial). | |
Returns the j-invariant of this elliptic curve. | |
Returns the n-th torsion polynomial (a.k.a., division polynomial). | |
| |
Inherited from EllipticCurve | |
(Static method) | |
Inherited from object | |
x.__delattr__('name') <==> del x.name | |
x.__getattribute__('name') <==> x.name | |
x.__hash__() <==> hash(x) | |
helper for pickle | |
helper for pickle | |
x.__setattr__('name', value) <==> x.name = value | |
x.__str__() <==> str(x) |
Instance Method Details |
---|
an(self, n)The n-th Fourier coefficient of the modular form corresponding to this elliptic curve, where n is a positive integer. |
anlist(self, n)The Fourier coefficients up to and including a_n of the modular form attached to this elliptic curve. The ith element of the return list is a[i]. EXAMPLES:>>> E = EllipticCurve([0, -1, 1, -10, -20]) >>> E.anlist(3) [0, 1, -2, -1] >>> E = EllipticCurve([0,1]) >>> E.anlist(20) [0, 1, 0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 8, 0] |
ap(self, p)The p-th Fourier coefficient of the modular form corresponding to this elliptic curve, where p is prime. |
complex_area(self)Return the area of a fundamental domain for the period lattice of the elliptic curve. |
conductor(self)Returns the conductor of the elliptic curve. EXAMPLE:>>> E = EllipticCurve([1, -1, 1, -29372, -1932937]) >>> E.conductor() # known bug in PARI causes this to output 14377604814 3006 |
database_curve(self)Return the curve in the elliptic curve database isomorphic to this curve, if possible. Otherwise raise a RuntimeError exception. EXAMPLES: We assume the elliptic curve database is installed. >> E = EllipticCurve([1,2,3,4,5]) >> E.database_curve() 10351A1: invs=[1, -1, 0, 4, 3], rank=1, tors=1, cp={11: 1, 941: 1} We can also create an elliptic curve from a curve in the database: >> EllipticCurve(E.database_curve()) Elliptic Curve defined by y^2 + x*y = x^3 - x^2 + 4*x + 3 over Rational Field The database curve can come directly from the database. >> import sage.tables.elliptic_curves as T >> db = T.Database() >> f = db[37][0][0] >> f 37A1: invs=[0, 0, 1, -1, 0], rank=1, tors=1, cp={37: 1} >> EllipticCurve(f) Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field NOTES: 1. The model of the curve in the database can be different than the Weierstrass model for this curve, since database models are always minimal. 2. The curve C returned from the database is not of type sage.ellcurve.EllipticCurve; it has a few data members, and very few methods. |
formal_w(self, prec=20)Return the formal power series w(t) = t^3 + ... to precision O(t^prec) of Proposition IV.1.1 of [Silverman AEC1]. This is the formal expansion of w = -1/y about the formal parameter t = -x/y at infinity. We compute w using the recursive procedure (4.1) on page 18 of Bluher's `A leisurely introduction to formal groups and elliptic curves', which I downloaded from http://www.math.uiuc.edu/Algebraic-Number-Theory/0076/ |
formal_x(self, prec=20)Return the formal power series x(t) in terms of the local parameter t = -x/y at infinity. |
formal_y(self, prec=20)Return the formal power series y(t) in terms of the local parameter t = -x/y at infinity. |
is_surjective(self, p, A=1000)Return True if the mod-p representation attached to E is surjective, False if it is not, or None if we were unable to determine whether it is or not. INPUT: p -- int (a prime number) A -- int (a bound on the number of a_p to use) OUTPUT: a 2-tuple: -- surjective or (probably) not -- information about what it is if not surjective EXAMPLES: REMARKS: 1. If p >= 5 then the mod-p representation is surjective if and only if the p-adic representation is surjective. When p = 2, 3 there are counterexamples. See a very recent paper of Elkies for more details when p=3. 2. When p <= 3 this function always gives the correct result irregardless of A, since it explicitly determines the p-division polynomial. |
isogeny_class(self)Return all curves in the isogeny class of this elliptic curve. NOTE: Currently implemented only using the database. |
kodaira_type(self, p)Local Kodaira type of the elliptic curve at p. 1 means good reduction (type I_0), 2, 3 and 4 mean types II, III and IV, respectively, 4 + nu with nu > 0 means type I_{nu}; finally the opposite values -1, -2, etc. refer to the starred types I_0^*, II^*, etc. |
L1_vanishes(self)Returns whether or not L(E,1) = 0. The result is provably correct if the Manin constant of the associated optimal quotient is <= 2. This hypothesis on the Manin constant is true for all curves of conductor <= 40000 (by Cremona) and all semistable curves (i.e., squarefree conductor). EXAMPLES:>>> E = EllipticCurve([0, -1, 1, -10, -20]) # 11A = X_0(11) >>> E.L1_vanishes() False >>> E = EllipticCurve([0, -1, 1, 0, 0]) # X_1(11) >>> E.L1_vanishes() False >>> E = EllipticCurve([0, 0, 1, -1, 0]) # 37A (rank 1) >>> E.L1_vanishes() True >>> E = EllipticCurve([0, 1, 1, -2, 0]) # 389A (rank 2) >>> E.L1_vanishes() True >>> E = EllipticCurve([0, 0, 1, -38, 90]) # 361A (CM curve)) >>> E.L1_vanishes() True >>> E = EllipticCurve([0,-1,1,-2,-1]) # 141C (13-isogeny) >>> E.L1_vanishes() False WARNING: It's conceivable that machine floats are not large enough precision for the computation; if this could be the case a RuntimeError is raised. The curve's real period would have to be very small for this to occur. ALGORITHM: Compute the root number. If it is -1 then L(E,s) vanishes to odd order at 1, hence vanishes. If it is +1, use a result about modular symbols and Mazur's "Rational Isogenies" paper to determine a provably correct bound (assuming Manin constant is <= 2) so that we can determine whether L(E,1) = 0. AUTHOR: William Stein, 2005-04-20. |
L_ratio(self)Returns the ratio L(E,1)/Omega as an exact rational number. The result is *provably* correct if the Manin constant of the associated optimal quotient is <= 2. This hypothesis on the Manin constant is true for all curves of conductor <= 40000 (by Cremona) and all semistable curves (i.e., squarefree conductor). EXAMPLES:>>> E = EllipticCurve([0, -1, 1, -10, -20]) # 11A = X_0(11) >>> E.L_ratio() 1/5 >>> E = EllipticCurve([0, -1, 1, 0, 0]) # X_1(11) >>> E.L_ratio() 1/25 >>> E = EllipticCurve([0, 0, 1, -1, 0]) # 37A (rank 1) >>> E.L_ratio() 0 >>> E = EllipticCurve([0, 1, 1, -2, 0]) # 389A (rank 2) >>> E.L_ratio() 0 >>> E = EllipticCurve([0, 0, 1, -38, 90]) # 361A (CM curve)) >>> E.L_ratio() 0 >>> E = EllipticCurve([0,-1,1,-2,-1]) # 141C (13-isogeny) >>> E.L_ratio() 1 WARNING: It's conceivable that machine floats are not large enough precision for the computation; if this could be the case a RuntimeError is raised. The curve's real period would have to be very small for this to occur. This does not occur for any optimal curve of conductor <= 40000. ALGORITHM: Compute the root number. If it is -1 then L(E,s) vanishes to odd order at 1, hence vanishes. If it is +1, use a result about modular symbols and Mazur's "Rational Isogenies" paper to determine a provably correct bound (assuming Manin constant is <= 2) so that we can determine whether L(E,1) = 0. AUTHOR: William Stein, 2005-04-20. |
Lambda(self, s, prec)Returns the value of the Lambda-series of the elliptic curve E at s can be any complex number. Use Lambda(s) if s is real, since it will be much faster. WARNING: This function uses sage.functions.transcendental.gamma_inc, which currently calls mathematica. EXAMPLES: |
Lseries(self, s)Returns the value of the L-series of the elliptic curve E at s, where s must be a real number. NOTES: (1) If the conductor of the curve is large, say > 10^12, then this function will take a long time, since it uses an O(sqrt(N)) algorithm. (2) There is an algorithm to compute L(E,s) for any complex s, but it involves computing the incomplete Gamma function, which is not implemented in SAGE. EXAMPLES: >>> E = EllipticCurve([1,2,3,4,5]) >> E.Lseries(1) 0.E-19 The following may have low order bits that are different on your machine. >> E.Lseries(1.1) 0.28549100767814812844289234320 |
Lseries_at1(self, k=0)Compute L(E,1) using k terms of the series for L(E,1) form page 406 of Henri Cohen's book "A Course in Computational Algebraic Number Theory". If the k argument is not specified, then it defaults to sqrt(N), where N is the conductor. The real precision of the computation is the precision of Python floats. INPUT: k -- (optional) an integer, defaults to sqrt(N). OUTPUT: float -- L(E,1) float -- a bound on the error in the approximation; this is a proveably correct upper bound on the sum of the tail end of the series used to compute L(E,1). EXAMPLES: ALGORITHM: 1. Compute the root number eps. If it is -1, return 0. 2. Compute the Fourier coefficients a_n, for n up to and including k. 3. Compute the sum 2 * sum_{n=1}^{k} (a_n / n) * exp(-2*pi*n/Sqrt(N)), where N is the conductor of E. 4. Compute a bound on the tail end of the series, which is 2 * e^(-2 * pi * (k+1) / sqrt(N)) / (1 - e^(-2*pi/sqrt(N))). For a proof see [Grigov-Jorza-Patrascu-Patrikis-Stein]. |
Lseries_deriv_at1(self, k=0)Compute L'(E,1) using k terms of the series for L'(E,1) form page 406 of Henri Cohen's book"A Course in Computational Algebraic Number Theory". The real precision of the computation is the precision of Python floats. INPUT: OUTPUT: ALGORITHM: 1. Compute the root number eps. If it is 1, return 0. 2. Compute the Fourier coefficients a_n, for n up to and including k. 3. Compute the sum 2 * sum_{n=1}^{k} (a_n / n) * E_1(2*pi*n/Sqrt(N)), where N is the conductor of E, and E_1 is the exponential integral function. 4. Compute a bound on the tail end of the series, which is 2 * e^(-2 * pi * (k+1) / sqrt(N)) / (1 - e^(-2*pi/sqrt(N))). For a proof see [Grigov-Jorza-Patrascu-Patrikis-Stein]. This is exactly the same as the bound for the approximation to L(E,1) produced by Lseries_at1. |
Lseries_extended(self, s, prec)Returns the value of the L-series of the elliptic curve E at s can be any complex number using prec terms of the power series expansion. WARNING: This function uses sage.functions.transcendental.gamma_inc, which currently calls mathematica. EXAMPLES: |
modular_degree(self)Return the modular degree of this elliptic curve. NOTE: This function only currently works if this curve is in the elliptic curves tables, its a J_0(N)-optimal quotient, and you've installed those tables. In particular, this is (currently) not an implementation of Watkins's algorithm. |
modular_parametrization(self)Computes and returns ... |
newform(self)Returns the newform attached to this elliptic curve. |
non_surjective(self, A=1000)Returns a list of primes p such that the mod-p representation rho_{E,p} *might* not be surjective (this list usually contains 2, because of shortcomings of the algorithm). If p is not in the returned list, then rho_{E,p} is provably surjective (see A. Cojocaru's paper). If the curve has CM then infinitely many representations are not surjective, so we simply return the sequence [(0,"cm")] and do no further computation. INPUT: A -- an integer OUTPUT: list -- if curve has CM, returns [(0,"cm")]. Otherwise, returns a list of primes where mod-p representation very likely not surjective. At any prime not in this list, the representation is definitely surjective. EXAMPLES: >>> E = EllipticCurve([0, 0, 1, -38, 90]) # 361A >>> E.non_surjective() # CM curve [(0, 'cm')] >>> E = EllipticCurve([0, -1, 1, 0, 0]) # X_1(11) >>> E.non_surjective() [(5, '5-torsion')] >>> E = EllipticCurve([0, 0, 1, -1, 0]) # 37A >>> E.non_surjective() [] >>> E = EllipticCurve([0,-1,1,-2,-1]) # 141C >>> E.non_surjective() [(13, [1])] ALGORITHM: When p<=3 use division polynomials. For 5 <= p <= B, where B is Cojocaru's bound, use the results in Section 2 of Serre's inventiones paper"Sur Les Representations Modulaires Deg Degre 2 de Galqbar Over Q." |
Np(self, p)The number of points on E modulo p, where p is a prime of good reduction. EXAMPLES:>>> E = EllipticCurve([0, -1, 1, -10, -20]) >>> E.Np(2) 5 >>> E.Np(3) 5 >>> E.conductor() 11 >>> E.Np(11) Traceback (most recent call last): ... ArithmeticError: p (=11) must be a prime of good reduction |
omega(self)Returns the real period. This is the correct period in the BSD conjecture, i.e., it is the least real period * 2 when the period lattice is rectangular. |
padic_sigma(self, p, prec=20)Returns the p-adic sigma function of the elliptic curve as a power series in t to precision prec. |
pari_curve(self)Return the PARI curve corresponding to this elliptic curve. EXAMPLES:>>> E = EllipticCurve([0, 0,1,-1,0]) >>> e = E.pari_curve() >>> type(e) <type '_py_pari.gen'> >>> e.type() 't_VEC' >>> e.ellan(10) [1, -2, -3, 2, -2, 6, -1, 0, 6, 4] >>> E = EllipticCurve(RationalField(), ['1/3', '2/3']) >>> e = E.pari_curve() >>> e.type() 't_VEC' >>> e[:5] [0, 0, 0, 1/3, 2/3] |
pari_mincurve(self)Return the PARI curve corresponding to a minimal model for this elliptic curve. EXAMPLES:>>> E = EllipticCurve(RationalField(), ['1/3', '2/3']) >>> e = E.pari_mincurve() >>> e[:5] [0, 0, 0, 27, 486] >>> E.conductor() 47232 >>> e.ellglobalred() [47232, [1, 0, 0, 0], 2] |
period_lattice(self)Return a basis for the period lattice of the elliptic curve over Q as a 2-tuple. The basis has the form [omega_1, omega_2], where Im(omega_1/omega_2) > 0 and omega_1 is real. INPUT: -- an elliptic curve OUTPUT: omega_1 -- complex number omega_2 -- complex number |
real_components(self)Returns 1 if there is 1 real component and 2 if there are 2. |
regulator(self, use_database=False)Returns the regulator of this curve, which must be defined over Q. INPUT: use_database -- bool (default: False), if True, try to look up the regulator in the Cremona database. |
root_number(self)Returns the root number of this elliptic curve. This is 1 if the order of vanishing of the L-function L(E,s) at 1 is even, and -1 if it is odd. |
satisfies_heegner_hypothesis(self, D)Returns True precisely when D is a fundamental discriminant that satisfies the Heegner hypothesis for this elliptic curve. |
sha_an(self, use_database=False)Returns the Birch and Swinnerton-Dyer conjectural order of Sha, unless the analytic rank is > 1, in which case this function returns 0. This result is proved correct if the order of vanishing is 0 and the Manin constant is <= 2 (this Manin constant condition is true if the conductor is squarefree or <= 40000). If the optional parameter use_database is True (default: False), this function returns the analytic order of Sha as listed in Cremona's tables, if this curve appears in Cremona's tables (i.e., is a curve over Q of conductor <= 40000). EXAMPLES: >>> E = EllipticCurve([0, -1, 1, -10, -20]) # 11A = X_0(11) >>> E.sha_an() 1 >>> E = EllipticCurve([0, -1, 1, 0, 0]) # X_1(11) >>> E.sha_an() 1 The smallest conductor curve with nontrivial Sha: >>> E = EllipticCurve([1,1,1,-352,-2689]) # 66B3 >>> E.sha_an() 4 The four optimal quotients with nontrivial Sha and conductor <= 1000: >>> E = EllipticCurve([0, -1, 1, -929, -10595]) # 571A >>> E.sha_an() 4 >>> E = EllipticCurve([1, 1, 0, -1154, -15345]) # 681B >>> E.sha_an() 9 >>> E = EllipticCurve([0, -1, 0, -900, -10098]) # 960D >>> E.sha_an() 4 >>> E = EllipticCurve([0, 1, 0, -20, -42]) # 960N >>> E.sha_an() 4 The smallest conductor curve of rank > 1: >>> E = EllipticCurve([0, 1, 1, -2, 0]) # 389A (rank 2) >>> E.sha_an() 0 The following two examples require the mwrank package, for computation of a regulator. >> e = EllipticCurve([1, 0, 0, -19491080, -33122512122]) # 15834T2 >> e.sha_an() # takes about 22 seconds 25 >> E = EllipticCurve([0, 0, 1, -1, 0]) # 37A (rank 1) >> E.sha_an() 1 |
shabound(self)Compute a provably correct bound on the order of the Shafarevich-Tate group of this curve. The bound is a either False (no bound) or a list B of primes such that any divisor of Sha is in this list. |
shabound_kato(self)Returns a list p of primes such tha theorems of Kato's and others (e.g., as explained in a paper/thesis of Grigor Grigorov) imply that if p divides #Sha(E) then p is in the list. If L(E,1) = 0, then Kato's theorem gives no information, so this function returns False. THEOREM (Kato): Suppose p >= 5 is a prime so the p-adic representation rho_{E,p} is surjective. Then ord_p(#Sha(E)) divides ord_p(L(E,1)/Omega_E). EXAMPLES: >>> E = EllipticCurve([0, -1, 1, -10, -20]) # 11A = X_0(11) >>> E.shabound_kato() [2, 3, 5] >>> E = EllipticCurve([0, -1, 1, 0, 0]) # X_1(11) >>> E.shabound_kato() [2, 3, 5] >>> E = EllipticCurve([1,1,1,-352,-2689]) # 66B3 >>> E.shabound_kato() [2, 3] For the following curve one really has 25 | #Sha (by Grigorov-Stein paper): >> E = EllipticCurve([1, -1, 0, -332311, -73733731]) # 1058D1 >> E.shabound_kato() [2, 3, 5] >> E.non_surjective() [] For this one, Sha is divisible by 7. >> E = EllipticCurve([0, 0, 0, -4062871, -3152083138]) # 3364C1 >> E.shabound_kato() [2, 3, 7] No information about curves of rank > 0: >>> E = EllipticCurve([0, 0, 1, -1, 0]) # 37A (rank 1) >>> E.shabound_kato() False |
shabound_kolyvagin(self, D=0, regulator=None, ignore_nonsurj_hypothesis=False)Given a fundamental discriminant D (=-3,-4) that satisfies the Heegner hypothesis, return a list of primes so that Kolyvagin's theorem (as in Gross's paper) implies that any prime divisor of #Sha is in this list. INPUT: D -- (optional) a fundamental discriminant < -4 that satisfies the Heegner hypothesis for E; if not given, use the first such D regulator -- (optional) regulator of E(K); if not given, will be computed (which could take a long time) ignore_nonsurj_hypothesis (optional: default False) -- If True, then gives the bound coming from Heegner point index, but without any hypothesis on surjectivity of the mod-p representation. OUTPUT: 0 -- if E/K has complex multiplication or analytic rank >= 2 or B -- list of primes such that if p divides Sha(E/K), then p is in B. and I -- the odd part of the index of the Heegner point in the full group of rational points. REMARKS: (1) We do not have to assume that the Manin constant is 1 (or a power of 2). If the Manin constant were divisible by a prime, that prime would get included in the list of bad primes. (2) We assume the Gross-Zagier theorem is True under the hypothesis that gcd(N,D) = 1, instead of the stronger hypothesis gcd(2*N,D)=1 that is in the original Gross-Zagier paper. That Gross-Zagier is true when gcd(N,D)=1 is"well-known" to the experts, but doesn't seem to written up well in the literature. (3) Correctness of the computation is guaranteed using interval arithmetic, under the assumption that the regulator, square root, and period lattice are computed to precision at least 10^(-10), i.e., they are correct up to addition or a real number with absolute value less than 10^(-10). |
sigma(self, z, flag=0)Returns the value of the Weierstrass sigma function of the lattice associated to this elliptic curve E. INPUT: z -- a complex number flag -- 0 - default ??? 1 - computes an arbitrary determination of log(sigma(z)) 2, 3 - same using the product expansion instead of theta series. ??? OUTPUT: a complex number NOTE: The reason for the ???'s above, is that the PARI documentation for ellsigma is very vague. |
tamagawa_number(self, p)The Tamagawa number of the elliptic curve at p. |
tamagawa_product(self)Returns the product of the Tamagawa numbers. |
torsion_order(self)Return the order of the torsion subgroup. |
torsion_subgroup(self, flag=0)Returns the torsion subgroup of this elliptic curve. The flag is passed onto PARI and has the same algorithm meaning as there. So: If flag = 0, use Doud's algorithm; if flag = 1, use Lutz-Nagell. |
two_selmer_shabound(self)Returns a bound on the dimension of Sha(E)[2], computed using a 2-descent. |
Home | Trees | Index | Help |
|
---|
Generated by Epydoc 2.1 on Mon May 9 17:57:02 2005 | http://epydoc.sf.net |