From 5ea79c7ae0d44686f1df05c4a016652afbe58968 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 14 Jun 2026 09:58:21 +0200 Subject: Initial commit --- l-multiples_l-torsion/test3-extended.gp | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 l-multiples_l-torsion/test3-extended.gp (limited to 'l-multiples_l-torsion/test3-extended.gp') diff --git a/l-multiples_l-torsion/test3-extended.gp b/l-multiples_l-torsion/test3-extended.gp new file mode 100755 index 0000000..5a99a7a --- /dev/null +++ b/l-multiples_l-torsion/test3-extended.gp @@ -0,0 +1,40 @@ +read("400k-3.gp"); +/* Testing all ECs with a 3-torsion point, conductor < 4*10^5 and rank > 0 */ +/* Taken from LMFBD */ + +S = List(); + +{ +for( i = 1, length( data ), + if( i % 100 == 1, print( "Tested ", i-1, " curves." ); ); + coeffs = data[i]; + E = ellinit( coeffs ); + f3 = elldivpol( E, 3 ); /* 3-division polynomial */ + eqn = y^2 + E[1]*x*y + E[3]*y - x^3 - E[2]*x^2 - E[4]*x - E[5]; /* eqn of E */ + res = substpol( polresultant( f3, eqn ), y, x ); /* Keep x for consistency */ + K3 = nfinit( polredbest( nfsplitting( res, 6 ) ) ); + E_ext = ellinit( coeffs, K3 ); + Egens = ellgenerators(E); + for( j = 1, length( Egens ), + P = Egens[j]; + if( ellisdivisible( substpol(E_ext,x,y), P, 3, &Q ), + cremona_label = ellidentify(E)[1][1]; + listput( S, [cremona_label, P, Q] ); + write( "pari-output-ext", cremona_label ); + write( "pari-output-ext", P ); + write( "pari-output-ext", Q ); + print( "Found EC ", cremona_label, " with point ", P ); + /* Check for 3-divisibility up to torsion */ + T = elltors(E)[3][1]; + if( ellisdivisible( E, elladd(E,P,T), 3 ), + print( "P+T_1 is 3-divisible!" ); + ); + T = ellmul(E,T,2); + if( ellisdivisible( E, elladd(E,P,T), 3 ), + print( "P+T_2 is 3-divisible!" ); + ); + ); + ); +); +} + -- cgit v1.3