\\ The p-adic precision that is desired. acc = 7; \\ The prime p. p = 11; \\ coefficients for getting q from j. b2 = 744; b3 = 750420; b4 = 872769632; b5 = 1102652742882; b6 = 1470561136292880; b7 = 2037518752496883080; b8 = 2904264865530359889600; b9 = 4231393254051181981976079; \\ j-invariant of X_0(11). j= -122023936/161051; jj = (1/j) ; jj = jj % p^acc; \\ Computing Tate's q-parameter to the desired precision. q = (jj + b2*jj^2 + b3*jj^3 + b4*jj^4 + b5*jj^5 + b6*jj^6 ) % p^acc; \\ The coefficients in the Tate model of X_0(11) a4=0; for(n=1,acc, a4 = (a4 -5*sigmak(3,n)*q^n) % p^acc); a6 = 0; for(n=1,acc, a6 = (a6 -(5/12*sigmak(3,n)+7/12*sigmak(5,n))*q^n) % p^acc); \\ Uniformize(u) returns the value of u in K*/q^Z, on the Tate curve \\ y^2 + xy = x^3 + a4 x + a6. uniformize(u,temp,n,x,uu,y) = \ temp = 0;\ for(n=1,acc,temp=(temp+sigma(n)*q^n) % p^acc);\ x=0;\ for(n=1,acc, x = (x + q^n*u/(1-q^n*u)^2)%p^acc);\ uu = 1/u % p^acc;\ for(n=1,acc, x = (x + q^n*uu/(1-q^n*uu)^2)%p^acc);\ x = (x + 1/(u+uu-2) - 2*temp) % p^acc ;\ y=0;\ for(n=1,acc, y = (y + q^(2*n)*u^2/(1-q^n*u)^3)%p^acc);\ for(n=1,acc, y = (y - q^n*uu/(1-q^n*uu)^3)%p^acc);\ y = (y + u^2/(1-u)^3 + temp) % p^acc ;\ [x,y] \\ The elliptic curve X_0(11) in minimal Weierstrass form. e1 = initell([0,-1,1,-10,-20]); \\ The elliptic curve X_0(11) in "good" form e2 = initell([1,0,0,-165/16,-41503/1728]); \\ The elliptic curve X_0(11) over Q_11, in "tate" form. e3 = initell([1,0,0,a4,a6+p^acc]); \\ change of coordinates to go from e3 to e2. univchange = [2*s+1,(s^2+s)/3, s, -1/6*(s^2+s)] \\ Value of s, for accuracy of 11^4 s = 13112; c32 = eval(univchange); kill(s); \\ change of coordinates to go from e2 to e1. c21 = globalred(e2)[2]; \\ This function takes a point on e3 and returns a point on e1, at least \\ with a precision of p^acc. c31(pt) = pt = chptell(pt,c32);\ pt = chptell(pt,c21); \\ function tate(u) takes an x in K*/q^Z and returns a 11-adic point \\ on the minimal Weierstrass model for E = X0(11). tate(u) = c31(uniformize(u)) % (p^acc) \\ e=e1; \\ search searches to see if the point [105, 93 + 51 w] is in an interesting \\ place. search() = \ for(n=1, 8*49,\ pp = addell(e,pp,g);\ if(n% 8 ==0,print(n,pp),pp=pp%343;\ if(pp[1]==105,print(" FOUND: IT is ",n," without b"),\ print(n,pp))))