Hello,<br><br>Can someone coment on theese fast DLs over GF(p^k) with p smal?<br><br>Atached pari programme use p-adic logs, time is less than an minute:<br><br>(Numbers may wrap)<br><br>(13:19) gp > \r fil.gp <br>q=370801^18 ;po1=17 ; po2=3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117109 ; tt=4702816082614016182965692121592448734541768804994600705383687298520660242493249158332154303805784930 ;po1^tt-po2 mod q=0<br>q=2^2003 ; po1=3 ; po2=19 ;
t2=46046993139340166507090345615136250245999852064751171464668824387327204617681975780033079082311475657137920713633763250220430610306299407245801779788107829618296187553498768740217764857679385834036527096610226088132909804871500857727685554848681412848966715381705429730393858144254724754753785416583532641000842142306002349659344124042311390577104136195412245014808630785142511094125656912846715271821518325318857294740147530820821910283761699863431400217626353118504249795670889601044291930122883686330300672097906241079404551995315676104058601306583435730299863940037603350130072634964196048067365501 po1^t2-po2 mod q=0<br>(13:20)<br><br><br><br>{<br>\\ Tries to find l such that<br>\\ po1^l = po2 mod p^k<br>\\ Complexity p-1<br>\\ This program is distributed under the terms of the
GPL<br>dlani(p,k,po1,po2)=<br>local(i,j,j2,j3,z1,z2,l1,l2,lo,q,kk);<br>q=p^k;<br>kk=k+1;<br>po1=Mod(1,q)*lift(po1);<br>po2=Mod(1,q)*lift(po2);<br>z1=polrootspadic(x-lift(po1),p,kk);<br>z1=z1[1];<br>z2=polrootspadic(x-lift(po2),p,kk);<br>z2=z2[1];<br>l1=log(z1);<br>l2=log(z2);<br>lo=lift(Mod(1,p^(k-1))*lift(l2/l1)); \\ ;)<br>j=po1^lo;<br>if(j==po2,return(lo));<br>j3=po1^(p^(k-1));<br>j2=j3;<br>for(i=1,p-1,<br>if((j*j3)==po2,return(lo+i*p^(k-1)));<br>j3=j3*j2;<br>);<br>return(0);<br>}<br>p=370801;<br>k=18;<br>q=p^k;<br>ro=znprimroot(q);\\XXX this may be slow<br>pre=round(log(q)/log(10))-1;<br>default(realprecision,pre);<br>sec=floor(Pi()*10^pre)+42;<br>po1=Mod(ro,q);<br>po2=sec;<br>tt=dlani(p,k,po1,po2);<br>print("q=",p,"^",k," ;po1=",lift(po1)," ; po2=",lift(po2)," ; tt=",tt," ;po1^tt-po2 mod q=",lift(po1^tt-po2));<br>p=2;<br>k=2003;<br>q=p^k;<br>po1=Mod(3,q);po2=19;\\ 7^2, 13^2<br>t2=dlani(p,k,po1,po2);<br>print("q=",p,"^",k," ; po1=",lift(po1)," ; po2=",lift(po2)," ;
t2=",t2," po1^t2-po2 mod q=",lift(po1^t2-po2));<br>2/0; \\ Exit nicely<br><br><p> 
<hr size=1>Choose the right car based on your needs.
Check out <a href="http://us.rd.yahoo.com/evt=48518/*http://autos.yahoo.com/carfinder/;_ylc=X3oDMTE3NWsyMDd2BF9TAzk3MTA3MDc2BHNlYwNtYWlsdGFncwRzbGsDY2FyLWZpbmRlcg-- ">Yahoo! Autos new Car Finder tool.</a>