Unknown on Tue Jun 10 22:09:47 2008 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
[no subject] |
A more meaningful check would be to verify that the distance from the point to the curve is small. Karim. Index: src/modules/elliptic.c =================================================================== RCS file: /home/megrez/cvsroot/pari/src/modules/elliptic.c,v retrieving revision 1.9 diff -c -r1.9 elliptic.c *** src/modules/elliptic.c 1999/10/18 13:14:23 1.9 --- src/modules/elliptic.c 1999/10/18 15:00:40 *************** *** 447,464 **** tetpil=avma; return gerepile(av,tetpil,gcopy(y)); } - static long - ellexpo(GEN e) - { - long i,k2, k = gexpo((GEN)e[1]); - for (i=2; i<6; i++) - { - k2 = gexpo((GEN)e[i]); - if (k<k2) k = k2; - } - return k; - } - /* Exactness of lhs and rhs in the following depends in non-obvious ways on the coeffs of the curve as well as on the components of the point z. Thus if e is exact, with a1==0, and z has exact y coordinate only, the --- 447,452 ---- *************** *** 477,484 **** q = precision(p2); if (!p && !q) { avma=av; return 0; } /* both of p1, p2 are exact */ if (!q || (p && p < q)) q = p; /* min among nonzero elts of {p,q} */ ! /* the constant 0.93 is arbitrary */ ! q = (gexpo(x)-ellexpo(e) < - bit_accuracy(q) * 0.93); avma = av; return q; } --- 465,471 ---- q = precision(p2); if (!p && !q) { avma=av; return 0; } /* both of p1, p2 are exact */ if (!q || (p && p < q)) q = p; /* min among nonzero elts of {p,q} */ ! q = (gexpo(x) < gexpo(p1) - bit_accuracy(q) + 15); avma = av; return q; } __ 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://hasse.mathematik.tu-muenchen.de/ntsw/pari/