test4.gp (1199B)
1 read("bunch_of_curves.gp"); 2 3 { 4 for( i = 1, length( data ), 5 print( "Testing curve with coefficients ", data[i] ); 6 E = ellinit( data[i] ); 7 f4 = elldivpol( E, 4 ); /* 4-division polynomial */ 8 eqn = y^2 + E[1]*x*y + E[3]*y - x^3 - E[2]*x^2 - E[4]*x - E[5]; /* eqn of E */ 9 res = substpol( polresultant( f4, eqn ), y, x ); /* Keep x for consistency */ 10 print( "Computing K4..." ); 11 K4 = nfinit( nfsplitting( res, 96 ) ); 12 print( "Computed!" ); 13 E_ext = ellinit( E[1..5], K4 ); 14 Egens = ellgenerators(E); 15 for( j = 1, length( Egens ), 16 P = Egens[j]; 17 if( ellisdivisible( substpol(E_ext,x,y), P, 2, &Q ), 18 print( "Found EC ", cremona_label, " with point ", P, 19 " and 2-division point ", Q, " over K4" ); 20 if( ellisdivisible( substpol(E_ext,x,y), P, 4, &Q ), 21 print( "Even 4-divisible! 4-division point: ", Q ); 22 ); 23 /* Check for 3-divisibility up to torsion */ 24 /* T = elltors(E)[3][1]; 25 if( ellisdivisible( E, elladd(E,P,T), 3 ), 26 print( "P+T_1 is 3-divisible!" ); 27 ); 28 T = ellmul(E,T,2); 29 if( ellisdivisible( E, elladd(E,P,T), 3 ), 30 print( "P+T_2 is 3-divisible!" ); 31 ); */ 32 ); 33 ); 34 ); 35 } 36