kummer-notes-code

Notes and code from my early research in Kummer Theory for Elliptic Curves.
git clone https://git.tronto.net/kummer-notes-code
Download | Log | Files | Refs | README

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