| Karim BELABAS on Sat, 3 Oct 1998 13:33:26 +0200 (MET DST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Problem with ellap |
[Roland Dreier:]
> > The default algorithm used by ellap appears to produce incorrect results.
> > (The curve below is not supersingular at 5, so we know right off the bat
> > that 0 must be wrong).
> [David Kohel:]
> This problem has been around for a long time, and I always lift to
> char 0 first. In version 2.0.alpha that I have installed, it don't
> know how to get the correct answer without doing the lift:
Indeed the equation was assumed to be given in characteristic 0 (esp. c6
and Delta were assumed to be integers). Here's a fix (apply to 2.0.11, or
wait for 2.0.12 (about one week?)).
Karim.
*** src/modules/elliptic.c.orig Mon Sep 28 14:30:36 1998
--- src/modules/elliptic.c Sat Oct 3 13:29:37 1998
***************
*** 1782,1803 ****
}
GEN
! apell(GEN e, GEN prime)
{
checkell(e);
! if (typ(prime)!=t_INT || signe(prime)<0)
! err(talker,"not a prime in apell");
! if (divise((GEN)e[12],prime))
{
! long p = kronecker((GEN)e[11],prime);
! switch(mod4(prime))
{
! case 0: case 3: return stoi(-p);
! case 1: case 2: return stoi(p);
}
}
! if (cmpis(prime, 0x3fffffff) > 0) return apell1(e, prime);
! return apell0(e, itos(prime));
}
/* TEMPC is the largest prime whose square is less than HIGHBIT */
--- 1782,1805 ----
}
GEN
! apell(GEN e, GEN p)
{
checkell(e);
! if (typ(p)!=t_INT || signe(p)<0)
! err(talker,"not a p in apell");
! if (gdivise((GEN)e[12],p)) /* e[12] may be an intmod */
{
! long av = avma,s;
! GEN c6 = gmul((GEN)e[11],gmodulsg(1,p));
! s = kronecker((GEN)c6[2],p); avma=av;
! switch(mod4(p))
{
! case 0: case 3: return stoi(-s);
! case 1: case 2: return stoi(s);
}
}
! if (cmpis(p, 0x3fffffff) > 0) return apell1(e, p);
! return apell0(e, itos(p));
}
/* TEMPC is the largest prime whose square is less than HIGHBIT */
--
Karim Belabas email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19
--
PARI/GP Home Page: http://pari.home.ml.org