{{{id=1| def gaussred(u,v): u0=v v0=u uv=u0*v0 qu2=u0*u0 x=floor(uv/qu2+1/2) r=v0-x*u0 v0=u0 u0=r while norm(u0)0 and norm(R[k-1])>2*norm(R[k]): r=Mk[k] Mk.set_row(k,Mk[k-1]) Mk.set_row(k-1,r) k=k-1 else: k=k+1 print k,Mk return Mk /// }}} {{{id=9| myLLL(M) /// 0 [ 1 1 1] [ 1 2 3] [ 0 -1 -1] 1 [ 1 1 1] [-1 0 1] [ 1 0 0] 2 [ 1 1 1] [-1 0 1] [ 1 0 0] 1 [ 1 1 1] [ 1 0 0] [-1 0 1] 0 [1 0 0] [1 1 1] [0 0 1] 1 [ 1 0 0] [ 0 1 1] [ 0 -1 0] 2 [ 1 0 0] [ 0 1 1] [ 0 -1 0] 3 [ 1 0 0] [ 0 1 1] [ 0 -1 0] [ 1 0 0] [ 0 1 1] [ 0 -1 0] }}} {{{id=10| def myLLL2(M): k=1 n=M.ncols() Mk=M while k <= n-1: Mk,R,mu=sizered2(Mk,k) if k>0 and norm(R[k-1])>2*norm(R[k]): r=Mk[k] Mk.set_row(k,Mk[k-1]) Mk.set_row(k-1,r) k=k-1 else: k=k+1 print k,Mk return Mk /// }}} {{{id=11| myLLL2(M) /// 2 [ 1 0 0] [ 0 1 1] [ 0 -1 0] 3 [ 1 0 0] [ 0 1 1] [ 0 -1 0] [ 1 0 0] [ 0 1 1] [ 0 -1 0] }}} {{{id=12| n=400 R=RealField(n) C=10^(100) /// }}} {{{id=13| a=sqrt(2)+3^(1/3)+sqrt(3) /// }}} {{{id=14| d=13 col1=[] for i in range(d): col1=col1 + [ZZ(floor(R(C*a^i+1/2)))] N=Matrix(d,1,col1) /// }}} {{{id=15| M=identity_matrix(ZZ,d) L=N.augment(M) /// }}} {{{id=16| L.LLL() /// [ -140 -8648 144 2940 5172 1113 -1656 -1006 0 303 -12 -30 0 1] [ 27628362 104708870 164422286 142362905 115686623 -270080627 -55711656 -41264428 50430737 110838389 192863002 -146433243 -1520620 5022135] [ 149179087 -18321879 146649981 -216335775 200828125 -130801871 150887421 113254308 174491019 -163989930 160210180 8525884 134151890 -31030760] [ 27201244 -51816322 218405964 267223973 -305311665 -6261693 -262632910 85563736 18618078 -80496572 70066951 -35140090 -24829870 6524749] [ -24031235 112991991 167647010 -3404539 30975274 -3088335 -439229279 -65082943 176298608 13574835 -209138766 -112699775 -45037985 17232857] [ -5752450 -53977430 50406237 113995925 -202643814 21925506 22483635 -318538855 -307821801 -232382402 123188621 -76669395 -96321691 24067509] [ 6482137 -3180120 -5825811 -70948835 102608245 124690336 83848350 351053393 113305383 28545778 248505924 9909212 -230575488 47047238] [-246036581 135105915 150291276 227186173 136999480 -112915045 -127641517 290551525 146126368 -193547570 -49015531 -16006319 -24613894 6968820] [ 339381268 -112350076 -269066309 9370985 -191660231 202316155 -25670575 144873092 -169664780 -147548240 189295096 -113107808 -73262404 19779765] [ -84663375 -124721243 -16030321 -308251989 72770063 159692694 305318054 308628206 -162432857 261114821 123301525 -82514548 34785963 -5488488] [ 8750884 10456754 100986650 -111209371 129281164 -26684271 -99075594 373268060 -174638857 -57036243 -176625892 272894711 218290987 -58529606] [ 139405336 33579849 25968988 29953017 27526066 84863017 35502952 -37425725 -205241731 -34885707 -356299854 -287528858 -222855393 66094915] [ 225756324 160449307 -322392 463547545 -27157721 186133450 26899316 -76603628 -170916393 -125821758 19391387 148721349 197632361 -49961063] }}} {{{id=17| R=RealField(2000); Pi =R(pi) C=10^600 d=9 /// }}} {{{id=18| col1=[0 for i in range(8)] for i in range(8): for k in range(1000): if k+i<>0: col1[i]=col1[i]+R(1/(16^k*(8*k+i))) col2=[floor(col1[i]*C) for i in range(8)] + [floor(C*Pi)] /// }}} {{{id=19| N=Matrix(d,1,col2) M=identity_matrix(ZZ,d) L=N.augment(M) /// }}} {{{id=20| L.LLL()[1] /// (5, 0, 0, -8, -4, -4, 0, 0, 1, 2) }}} {{{id=21| log(abs(Pi-4*col1[1]+2*col1[4]+col1[5]+col1[6]))/log(10.) /// -600.764424228000 }}} {{{id=22| log(abs(2*Pi-8*col1[2]-4*col1[3]-4*col1[4]+col1[7]))/log(10.) /// -599.898623325727 }}} {{{id=23| /// }}}