As a workaround you probably can use analytic rank
E.analytic_rank(leading_coefficient=1)
(5, 3634.28250646374195)
The second number is the value of first non-vanishing derivative.
If you need more precision, you can set the precision in pari/gp
and do: gp.ellanalyticrank(gp(E)) -- it returns the leading
coefficient working with pari's realprecision and if needed
specified epsilon.
Probably another issue:
Sha = Integer(round ( (L1 * T * T) / (E.tamagawa_product() *
regulator * omega) ))
try:
Sha = Integer(Sha)
except ValueError:
I think you can't throw in try: since Sha is already integer.
On Wed, Oct 16, 2013 at 02:34:33PM +0100, John Cremona wrote:
> On 16 October 2013 13:54, Georgi Guninski <[email protected]> wrote:
> > After debugging this I saw the problem.
> > In sha_tate.py:410
> > you consider the first derivative non-zero and use it
> > in computations, while in practice it is zero
> > (e-15 vs error_bound=e-25).
>
> This looks like a bug to me. Even with more work:
>
>
> sage: L1, error_bound = E.lseries().deriv_at1(100*sqrt(E.conductor()) + 10)
> sage: abs(L1) , error_bound
> (1.94655218772191e-15, 1.82478252135394e-270)
>
> We seem to be very confident that L'(1) is nonzero, so the code which
> then runs uses this presumed nonzero value in a formula which expects
> to compute an integer, so it rounds it, but in this case it is
> computing 0 approximately and then rounds to 0.
>
> The problem is that the function E.lseries().deriv_at_1() uses Python
> floats, which is insufficient. It is better to use
> E.lseries().dokchitser(prec=...): the prec parameter is by default 53
> bits but can be increased.
>
>
> sage: E.lseries().dokchitser().derivative(1,1)
> 1.80716657412868e-23
> sage: E.lseries().dokchitser(prec=100).derivative(1,1)
> 3.2664255659421097770000000000e-39
> sage: log(_,2)
> -127.84748293607692539561741115
>
> which I think means that to 100 bits the result is less than 2^-127.
>
> The Sha function should be rewritten to use this. I will open a trac
> ticket for this.
>
> John Cremona
>
>
>
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.