ainvs, [verbose=False]) |
Create the mwrank elliptic curve with invariants
a_invs
, which is a list of
integers
,
,
,
, and
.
If strictly less than 5 invariants are given, then the first
ones are set to 0, so, e.g., [3,4]
means
and
,
.
INPUT: ainvs -- a list of <= 5 integers verbose -- if True, then all Selmer group computations will be verbose. (default: False).
We create the elliptic curve
.
sage: e = mwrank_EllipticCurve([0, 1, 1, -2, 0]) sage: e.ainvs() [0, 1, 1, -2, 0]
This example illustrates that omitted
-invariants default to 0
:
sage: e = mwrank_EllipticCurve([3, -4]) sage: e y^2 = x^3 + 3*x - 4 sage: e.ainvs() [0, 0, 0, 3, -4]
The entries of the input list are coerced to int. This has the effect that for float input, the integer parts of the input coefficients are taken.
sage: e = mwrank_EllipticCurve([3, -4.8]); e y^2 = x^3 + 3*x - 4
When you enter a singular model you get an exception:
sage: e = mwrank_EllipticCurve([0, 0]) Traceback (most recent call last): ... TypeError: not all arguments converted during string formatting
ainvs,
certain,
conductor,
CPS_height_bound,
gens,
isogeny_class,
rank,
regulator,
saturate,
selmer_rank_bound,
set_verbose,
silverman_bound,
two_descent
Further documentation:
) |
True if the last two_descent call provably correctly computed the rank. If two_descent hasn't been called, then it is first called by certain using the default parameters.
A
-descent does not determine
with certainty
for the curve
.
sage: E = mwrank_EllipticCurve([0, -1, 1, -120, -2183]) sage: E.two_descent(False) ... sage: E.certain() False sage: E.rank() 0
The rank of
is actually 0 (as one could see by computing
the L-function), but
has order 4 and the
-torsion is
trivial, so mwrank does not conclusively determine the rank.
sage: E.selmer_rank_bound() 2
) |
Return the conductor of this curve, computed using Cremona's implementation of Tate's algorithm.
NOTE: This is independent of PARI's.
) |
Return the Cremona-Prickett-Siksek height bound. This is a
floating point number
such that if
is a point on the curve,
then the naive logarithmetic height of
is off from the
canonical height by at most
.
) |
Return a list of the generators for the Mordell-Weil group.
) |
Returns the rank of this curve, computed using 2-descent.
) |
Return the regulator of the saturated Mordell-Weil group.
sage: E = mwrank_EllipticCurve([0, 0, 1, -1, 0]) sage: E.regulator() 0.05111140823996884
[bound=-1]) |
Compute the saturation of the Mordell-Weil group at all primes up to bound.
INPUT: bound -- int (default: -1) -1 saturate at *all* primes, 0 -- do not saturate n -- saturate at least at all primes <= n.
) |
Bound on the rank of the curve, computed using the 2-selmer
group. This is the rank of the curve minus the rank of the
2-torsion, minus a number determined by whatever mwrank was
able to determine related to
(e.g., using a
second descent or if there is a rational
-torsion point,
then there may be an isogeny to a curve with trivial
). In many cases, this is the actual rank of the
curve, but in general it is just
the true rank.
The following is the curve 960D1, which has rank 0, but Sha of order 4.
sage: E = mwrank_EllipticCurve([0, -1, 0, -900, -10098]) sage: E.selmer_rank_bound() 0
In this case this was resolved using a second descent.
sage: E = mwrank_EllipticCurve([0, -1, 0, -900, -10098]) sage: E.two_descent(second_descent = False, verbose=False) sage: E.selmer_rank_bound() 2
Above, the selmer_rank_bound gives 0 instead of 2,
because it knows Sha is nontrivial. In contrast, for the
curve 571A, also with rank 0 and
of order 4, we obtain
a worse bound:
sage: E = mwrank_EllipticCurve([0, -1, 1, -929, -10595]) sage: E.selmer_rank_bound() 2 sage: E.rank() 0
verbose) |
Set the verbosity of printing of output by the 2-descent and other functions.
INPUT: verbosity -- bool; if True print lots of output
) |
Return the Silverman height bound. This is a number
such
that if
is a point on the curve, then the naive
logarithmetic height of
is off from the canonical height by
at most
.
[verbose=True], [selmer_only=-1], [first_limit=8], [second_limit=20], [n_aux=False], [second_descent=True]) |
Compute 2-descent data for this curve.
INPUT: verbose -- (default: True) print what mwrank is doing selmer_only -- (default: False) selmer_only switch first_limit -- (default: 20) firstlim is bound on |x|+|z| second_limit-- (default: 5) secondlim is bound on log max {|x|,|z| }, i.e. logarithmic n_aux -- (default: -1) n_aux only relevant for general 2-descent when 2-torsion trivial; n_aux=-1 causes default to be used (depends on method) second_descent -- (default: True) second_descent only relevant for descent via 2-isogeny OUTPUT: Nothing -- nothing is returned
Instances of class mwrank_EllipticCurve also have the following special methods:
__repr__,
_curve_data,
_mwrank_EllipticCurve__two_descent_data
See About this document... for information on suggesting changes.