Sz\303\241m\303\255t\303\263g\303\251pes sz\303\241melm\303\251let J\303\241rai Antal Ezek a programok csak szeml\303\251ltet\303\251sre szolg\303\241lnak
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">1. A pr\303\255mek eloszl\303\241sa, szit\303\241l\303\241s</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">2. Egyszer\305\261 faktoriz\303\241l\303\241si m\303\263dszerek</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">3. Egyszer\305\261 pr\303\255mtesztel\303\251si m\303\263dszerek</Font></Text-field> LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEhRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0Yn
<Text-field style="Heading 1" layout="Heading 1">4. Lucas-sorozatok</Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">5. Alkalmaz\303\241sok </Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">6. Sz\303\241mok \303\251s polinomok</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">7. Gyors Fourier-transzform\303\241ci\303\263</Font></Text-field> restart;
<Text-field style="Heading 2" layout="Heading 2">7.1. Polinomszorz<Font encoding="UTF-8">\303\241</Font>s gyors Fourier-transzform<Font encoding="UTF-8">\303\241</Font>ci<Font encoding="UTF-8">\303\263val.</Font></Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.2. Gyors Fourier-transzform<Font encoding="UTF-8">\303\241</Font>ci<Font encoding="UTF-8">\303\263 (FFT)</Font>.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.3. Inverz FFT.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.4. Szorz<Font encoding="UTF-8">\303\241</Font>s komplex FFT-vel.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.5. Val<Font encoding="UTF-8">\303\263</Font>s FFT.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.6. Szorz<Font encoding="UTF-8">\303\241</Font>s komplex FFT-vel a gyakorlatban.</Text-field> with(plots); N2duSSxJbnRlcmFjdGl2ZUc2IkkoYW5pbWF0ZUdGJEkqYW5pbWF0ZTNkR0YkSS1hbmltYXRlY3VydmVHRiRJJmFycm93R0YkSS1jaGFuZ2Vjb29yZHNHSShfc3lzbGliR0YkSSxjb21wbGV4cGxvdEdGJEkuY29tcGxleHBsb3QzZEdGJEkqY29uZm9ybWFsR0YkSSxjb25mb3JtYWwzZEdGJEksY29udG91cnBsb3RHRiRJLmNvbnRvdXJwbG90M2RHRiRJKmNvb3JkcGxvdEdGJEksY29vcmRwbG90M2RHRiRJLWN5bGluZGVycGxvdEdGJEksZGVuc2l0eXBsb3RHRiRJKGRpc3BsYXlHRiRJKmRpc3BsYXkzZEdGJEkqZmllbGRwbG90R0YkSSxmaWVsZHBsb3QzZEdGJEkpZ3JhZHBsb3RHRiRJK2dyYWRwbG90M2RHRiRJLGdyYXBocGxvdDNkR0YkSS1pbXBsaWNpdHBsb3RHRiRJL2ltcGxpY2l0cGxvdDNkR0YkSShpbmVxdWFsR0YkSSxpbnRlcmFjdGl2ZUdGJEkyaW50ZXJhY3RpdmVwYXJhbXNHRiRJLWxpc3Rjb250cGxvdEdGJEkvbGlzdGNvbnRwbG90M2RHRiRJMGxpc3RkZW5zaXR5cGxvdEdGJEkpbGlzdHBsb3RHRiRJK2xpc3RwbG90M2RHRiRJK2xvZ2xvZ3Bsb3RHRiRJKGxvZ3Bsb3RHRiRJK21hdHJpeHBsb3RHRiRJKW11bHRpcGxlR0YkSShvZGVwbG90R0YkSSdwYXJldG9HRiRJLHBsb3Rjb21wYXJlR0YkSSpwb2ludHBsb3RHRiRJLHBvaW50cGxvdDNkR0YkSSpwb2xhcnBsb3RHRiRJLHBvbHlnb25wbG90R0YkSS5wb2x5Z29ucGxvdDNkR0YkSTRwb2x5aGVkcmFfc3VwcG9ydGVkR0YkSS5wb2x5aGVkcmFwbG90R0YkSSdyZXBsb3RHRiRJKnJvb3Rsb2N1c0dGJEksc2VtaWxvZ3Bsb3RHRiRJK3NldG9wdGlvbnNHRiRJLXNldG9wdGlvbnMzZEdGJEkrc3BhY2VjdXJ2ZUdGJEkxc3BhcnNlbWF0cml4cGxvdEdGJEkrc3BoZXJlcGxvdEdGJEkpc3VyZmRhdGFHRiRJKXRleHRwbG90R0YkSSt0ZXh0cGxvdDNkR0YkSSl0dWJlcGxvdEdGJA== L:=[[1972,130],[1982,400],[1985,800],[1985,1700],[1988,2670],[1991,16000],[1995,100000]]; LL:=map(x->[x[1],log[10.](x[2])],L); L1:=[[1982,0.4],[1996,400]]; LL1:=map(x->[x[1],log[10.](x[2])],L1); fti:=[TIMES,BOLD,25]; f1:=[TIMES,BOLD,15]; fa:=[TIMES,BOLD,15]; Nyk3JCIlcz4iJEkiNyQiJSMpPiIkKyU3JCIlJik+IiQrKTckRioiJSs8NyQiJSkpPiIlcUU3JCIlIio+IiYrZyI3JCIlJio+IicrKzU= Nyk3JCIlcz4kIitfTCVSNiMhIio3JCIlIyk+JCIrIioqZj9nI0YnNyQiJSYpPiQiKygpKiozLkhGJzckRi0kIitAKlsvQiRGJzckIiUpKT4kIitoN15FTUYnNyQiJSIqPiQiKyQpKj5UPyVGJzckIiUmKj4kIisrKysrXUYn NyQ3JCIlIyk+JCIiJSEiIjckIiUnKj4iJCsl NyQ3JCIlIyk+JCErKDMrJXpSISM1NyQiJScqPiQiKyIqKmY/ZyMhIio= NyVJJlRJTUVTRzYiSSVCT0xER0YkIiNE NyVJJlRJTUVTRzYiSSVCT0xER0YkIiM6 NyVJJlRJTUVTRzYiSSVCT0xER0YkIiM6 display([plot(LL,1970..1998,color=blue,titlefont=fti,title='Supercomputers', thickness=3), plot(LL,1970..1998,color=blue,style=POINT,symbol=CIRCLE), plot(LL1,1970..1998,color=red,thickness=3,axesfont=fa), plot(LL1,1970..1998,color=red,style=POINT,symbol=CIRCLE), textplot([1970,5.3,`log[10] `],align={ABOVE,LEFT},font=fa), textplot([1970,4.9,`MFlops `],align={ABOVE,LEFT},font=fa), textplot([LL1[1][1],LL1[1][2],`Z80 `],align={BELOW,LEFT},color=red,font=f1),textplot([LL1[2][1],LL1[2][2],`UltraSPARC I+ `],align={BELOW,LEFT},color=red,font=f1),textplot([LL[1][1],LL[1][2],`Cray-1 `],align={BELOW,RIGHT},color=blue,font=f1), textplot([LL[2][1],LL[2][2],`Cray X-MP2 `],align={ABOVE,LEFT},color=blue,font=f1), textplot([LL[3][1],LL[3][2],`Cray X-MP4 `],align={BELOW,RIGHT},color=blue,font=f1), textplot([LL[4][1],LL[4][2],`Cray-2 `],align={LEFT},color=blue,font=f1), textplot([LL[5][1],LL[5][2],`Cray Y-MP8 `],align={ABOVE,LEFT},color=blue,font=f1), textplot([LL[6][1],LL[6][2],`Cray-3 `],align={ABOVE,LEFT},color=blue,font=f1), textplot([LL[7][1],LL[7][2],`Cray-4 `],align={ABOVE,LEFT},color=blue,font=f1)]); NjUtSSdDVVJWRVNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2JTcpNyQkIiVzPiIiISQiMzsrKytfTCVSNiMhIzw3JCQiJSMpPkYuJCIzJyoqKioqKjQqKmY/ZyNGMTckJCIlJik+Ri4kIjMpKioqKioqcCkqKjMuSEYxNyRGOCQiMyIpKioqKio0IypbL0IkRjE3JCQiJSkpPkYuJCIzIyoqKioqKjRFNmxVJEYxNyQkIiUiKj5GLiQiMywrKyskKSo+VD8lRjE3JCQiJSYqPkYuJCIiJkYuLUknQ09MT1VSR0YlNiZJJFJHQkdGKCRGLkYuRlIkIiorKysrIiEiKS1JKlRISUNLTkVTU0dGJTYjIiIkLUYkNiZGKkZOLUkmU1RZTEVHRiU2I0kmUE9JTlRHRiUtSSdTWU1CT0xHRiU2I0knQ0lSQ0xFR0YlLUYkNiU3JDckRjMkITM6KysrKDMrJXpSISM9NyQkIiUnKj5GLkY1LUZPNiZGUUZTRlJGUkZWLUYkNiZGYG9GaG9GZm5Gam4tSSVURVhUR0YlNic3JCQiJXE+Ri4kIiNgISIiUSlsb2dbMTBdfkYoSSpBTElHTkxFRlRHRiVJK0FMSUdOQUJPVkVHRiUtSSVGT05UR0YoNiVJJlRJTUVTR0YoSSVCT0xER0YoIiM6LUZdcDYnNyRGYHAkIiNcRmRwUShNRmxvcHN+RihGZnBGZ3BGaHAtRl1wNig3JEYzJCErKDMrJXpSISM1USVaODB+RihJK0FMSUdOQkVMT1dHRiVGZnBGaG9GaHAtRl1wNig3JEZmbyQiKyIqKmY/ZyMhIipRMVVsdHJhU1BBUkN+SSt+fn5GKEZbckZmcEZob0ZocC1GXXA2KDckRiwkIitfTCVSNiNGYXJRKENyYXktMX5GKEZbckkrQUxJR05SSUdIVEdGJUZORmhwLUZdcDYoNyRGM0ZfclEuQ3JheX5YLU1QMn5+fkYoRmZwRmdwRk5GaHAtRl1wNig3JEY4JCIrKCkqKjMuSEZhclEsQ3JheX5YLU1QNH5GKEZbckZpckZORmhwLUZdcDYnNyRGOCQiK0AqWy9CJEZhclEoQ3JheS0yfkYoRmZwRk5GaHAtRl1wNig3JEZAJCIraDdeRU1GYXJRLENyYXl+WS1NUDh+RihGZnBGZ3BGTkZocC1GXXA2KDckRkUkIiskKSo+VD8lRmFyUShDcmF5LTN+RihGZnBGZ3BGTkZocC1GXXA2KDckRkokIisrKysrXUZhclEoQ3JheS00fkYoRmZwRmdwRk5GaHAtSSpBWEVTVElDS1NHRiU2JUkoREVGQVVMVEdGJUZfdUZocC1JJlRJVExFR0YlNiRJL1N1cGVyY29tcHV0ZXJzR0YoLUZpcDYlRltxRlxxIiNELUkrQVhFU0xBQkVMU0dGJTYlUSFGKEZqdS1GaXA2I0ZfdS1JJVZJRVdHRiU2JDtGYHAkIiUpKj5GLkZfdQ== b:=2.; WS:=32; schmul:=[[5*WS,0.00003],[100*WS,0.007],[10382*WS,3.]]; classicmul:=[[WS,10.0/(4*10^7)],[2^5*WS,10.0*2^10/(4*10^7)]]; classicsqr:=[[WS,10.0/(4*10^7)],[2*WS,3*10.5/(4*10^7)], [4*WS,10*10.5/(4*10^7)],[8*WS,34*10.5/(4*10^7)], [16*WS,136*10.5/(4*10^7)],[2^5*WS,528*10.5/(4*10^7)]]; karamul:=[[2^2*WS,16.14/(4*10^6)],[2^3*WS,49.5/(4*10^6)], [2^4*WS,16.74/(4*10^5)],[2^5*WS,54.25/(4*10^5)],[2^6*WS,17.17/(4*10^4)], [2^7*WS,53.19/(4*10^4)],[2^8*WS,16.3/(4*10^3)],[2^9*WS,50.08/(4*10^3)], [2^10*WS,15.3/400],[2^11*WS,46.78/400],[2^12*WS,14.25/40], [2^13*WS,43.09/40],[2^14*WS,129.88/40],[2^15*WS,390.79/40]]; sqr:=[[2^2*WS,10.62/(4*10^6)],[2^3*WS,34.84/(4*10^6)], [2^4*WS,12.44/(4*10^5)],[2^5*WS,43.02/(4*10^5)],[2^6*WS,14.32/(4*10^4)], [2^7*WS,46.24/(4*10^4)],[2^8*WS,14.65/(4*10^3)],[2^9*WS,45.9/(4*10^3)], [2^10*WS,14.37/400],[2^11*WS,44.24/400],[2^12*WS,13.59/40], [2^13*WS,41.44/40],[2^14*WS,125.95/40],[2^15*WS,381.62/40]]; karasqr:=[[2^2*WS,10.89/(4*10^6)],[2^3*WS,34.45/(4*10^6)], [2^4*WS,11.78/(4*10^5)],[2^5*WS,37.77/(4*10^5)],[2^6*WS,11.94/(4*10^4)], [2^7*WS,36.49/(4*10^4)],[2^8*WS,10.61/(4*10^3)],[2^9*WS,32.39/(4*10^3)], [2^10*WS,97.29/(4*10^3)],[2^11*WS,29.67/400],[2^12*WS,90.12/400], [2^13*WS,26.61/(40*(32/33))],[2^14*WS,80.18/(40*(32/33))], [2^15*WS,240.61/(40*(32/33))]]; fftmul:=[[7*WS*2,9.96/(4*10^4)],[7*WS*2^2,21.18/(4*10^4)], [7*WS*2^3,45.44/(4*10^4)],[7*WS*2^4,9.79/(4*10^3)], [7*WS*2^5,21.2/(4*10^3)],[7*WS*2^6,46.85/(4*10^3)], [15*WS*2^5,51.53/(4*10^3)],[7*WS*2^7,10.42/400], [15*WS*2^6,11.16/400],[7*WS*2^8,23.12/400],[15*WS*2^7,24.15/400], [7*WS*2^9,50.06/400],[15*WS*2^8,51.54/400],[7*WS*2^10,10.96/40], [15*WS*2^9,10.94/40],[15*WS*2^10,23.15/40],[15*WS*2^11,49.31/40]]; fftsqrold:=[[7*WS*2,73.51/(4*10^5)],[7*WS*2^2,15.62/(4*10^4)], [7*WS*2^3,33.21/(4*10^4)],[7*WS*2^4,70.96/(4*10^4)], [7*WS*2^5,15.45/(4*10^3)],[7*WS*2^6,33.06/(4*10^3)], [15*WS*2^5,38.68/(4*10^3)],[7*WS*2^7,72.59/(4*10^3)], [15*WS*2^6,82.1/(4*10^3)],[7*WS*2^8,16.42/400],[15*WS*2^7,18.05/400], [7*WS*2^9,35.79/400],[15*WS*2^8,38.36/400],[7*WS*2^10,79.67/400], [15*WS*2^9,81.51/400],[15*WS*2^10,17.42/40],[15*WS*2^11,37.43/40]]; fftsqr:=[[7*WS*2,70.43/(4*10^5)],[7*WS*2^2,14.92/(4*10^4)], [7*WS*2^3,31.71/(4*10^4)],[7*WS*2^4,67.90/(4*10^4)], [7*WS*2^5,14.60/(4*10^3)],[7*WS*2^6,31.32/(4*10^3)], [15*WS*2^5,34.34/(4*10^3)],[7*WS*2^7,69.02/(4*10^3)], [15*WS*2^6,73.35/(4*10^3)],[7*WS*2^8,15.64/400],[15*WS*2^7,16.24/400], [7*WS*2^9,33.90/400],[15*WS*2^8,34.71/400],[7*WS*2^10,74.26/400], [15*WS*2^9,73.64/400],[15*WS*2^10,16.03/40],[15*WS*2^11,33.53/40]]; rffftmulc:=[[22*2^5,14.80/(4*10^4)],[21*2^6,32.03/(4*10^4)], [21*2^7,64.06/(4*10^4)],[20*2^8,14.34/(4*10^3)], [20*2^9,30.21/(4*10^3)],[19*2^10,70.39/(4*10^3)],[19*2^11,16.81/400], [18*2^12,35.45/400],[17*2^13,74.06/400],[17*2^14,15.59/40], [16*2^15,32.32/40],[16*2^16,67.46/40]]; rffftmul2ss:=[[22*2^5,73.11/(4*10^5)],[21*2^6,14.35/(4*10^4)], [21*2^7,28.78/(4*10^4)],[20*2^8,62.45/(4*10^4)], [20*2^9,14.59/(4*10^3)],[19*2^10,35.65/(4*10^3)],[19*2^11,92.16/(4*10^3)], [18*2^12,18.36/400],[17*2^13,42.46/400],[17*2^14,85.89/400], [16*2^15,18.37/40],[16*2^16,37.84/40]]; rffftsqrc:=[[22*2^5,12.83/(4*10^4)],[21*2^6,26.39/(4*10^4)], [21*2^7,54.81/(4*10^4)],[20*2^8,11.35/(4*10^3)], [20*2^9,24.22/(4*10^3)],[19*2^10,54.75/(4*10^3)],[19*2^11,13.53/400], [18*2^12,28.36/400],[17*2^13,60.39/400],[17*2^14,12.04/40], [16*2^15,25.62/40],[16*2^16,52.58/40]]; rffftsqr2ss:=[[22*2^5,51.75/(4*10^5)],[21*2^6,10.44/(4*10^4)], [21*2^7,19.83/(4*10^4)],[20*2^8,43.66/(4*10^4)], [20*2^9,95.11/(4*10^4)],[19*2^10,25.53/(4*10^3)],[19*2^11,63.42/(4*10^3)], [18*2^12,13.22/400],[17*2^13,28.36/400],[17*2^14,59.23/400], [16*2^15,12.56/40],[16*2^16,25.85/40]]; JCIiIyIiIQ== IiNL NyU3JCIkZyIkIiIkISImNyQiJStLJCIiKCEiJDckIidDQUwkRiYiIiE= NyQ3JCIjSyQiKysrKytEISM7NyQiJUM1JCIrKysrZ0QhIzg= Nyg3JCIjSyQiKysrKytEISM7NyQiI2skIisrKyt2eUYnNyQiJEciJCIrKysrREUhIzo3JCIkYyMkIisrKytEKilGMDckIiQ3JiQiKysrK3FOISM5NyQiJUM1JCIrKysrJ1EiISM4 NzA3JCIkRyIkIisrKytOUyEjOjckIiRjIyQiKysrXVA3ISM5NyQiJDcmJCIrKysrJj0lRiw3JCIlQzUkIisrK0RjOCEjODckIiVbPyQiKysrXSNIJUY1NyQiJSc0JSQiKysrdkg4ISM3NyQiJSM+KSQiKysrK3ZTRj43JCImJVE7JCIrKysrXzchIzY3JCImb0YkJCIrKysrRFFGRzckIiZPYickIisrK11wNiEjNTckIidzNTgkIisrK11pTkZQNyQiJ1dARSQiKysrRHg1ISIqNyQiJylHQyYkIisrKytaS0ZZNyQiKHcmWzUkIisrK3ZwKCpGWQ== NzA3JCIkRyIkIisrKytiRSEjOjckIiRjIyQiKysrKzUoKUYnNyQiJDcmJCIrKysrNUohIzk3JCIlQzUkIisrK112NSEjODckIiVbPyQiKysrKyFlJEY1NyQiJSc0JSQiKysrK2M2ISM3NyQiJSM+KSQiKysrXWlPRj43JCImJVE7JCIrKytdWjYhIzY3JCImb0YkJCIrKytdI2YkRkc3JCImT2InJCIrKysrMTYhIzU3JCInczU4JCIrKytdKFIkRlA3JCInV0BFJCIrKysrTzUhIio3JCInKUdDJiQiKysrdltKRlk3JCIodyZbNSQiKysrXVMmKkZZ NzA3JCIkRyIkIisrK11BRiEjOjckIiRjIyQiKysrXTcnKUYnNyQiJDcmJCIrKysrWEghIzk3JCIlQzUkIisrK11VJSpGMDckIiVbPyQiKysrKyYpSCEjODckIiUnNCUkIisrK11BIipGOTckIiUjPikkIisrK11fRSEjNzckIiYlUTskIisrK10oNClGQjckIiZvRiQkIisrK0RLQyEjNjckIiZPYickIisrK108dUZLNyQiJ3M1OCQiKysrK2BBISM1NyQiJ1dARSQiK0QxUmdvRlQ3JCInKUdDJiQiK0QxOW4/ISIqNyQiKHcmWzUkIitpbEEuaUZnbg== NzM3JCIkWyUkIisrKyshXCMhIzg3JCIkJyopJCIrKysrJkgmRic3JCIlI3oiJCIrKysrTzYhIzc3JCIlJWUkJCIrKytdWkNGMDckIiVvciQiKysrKytgRjA3JCImT1YiJCIrKytEcjYhIzY3JCImZ2AiJCIrKytEKUciRj03JCImcydHJCIrKysrMEVGPTckIiY/MiQkIisrKysheiNGPTckIiZXdCYkIisrKysheSZGPTckIiZTOSckIisrK11QZ0Y9NyQiJylvOSIkIisrK11eNyEjNTckIichKUc3JCIrKytdKUciRlY3JCIndyRIIyQiKysrK1NGRlY3JCInZ2RDJCIrKysrTkZGVjckIic/OlwkIisrK10oeSZGVjckIidTSSkqJCIrKyt2SzchIio= NzM3JCIkWyUkIisrK3ZQPSEjODckIiQnKikkIisrKyswUkYnNyQiJSN6IiQiKysrXS0kKUYnNyQiJSVlJCQiKysrK3U8ISM3NyQiJW9yJCIrKytdaVFGNDckIiZPViIkIisrKytsIylGNDckIiZnYCIkIisrKytxJypGNDckIiZzJ0ckIisrK3Y5PSEjNjckIiY/MiQkIisrK11fP0ZFNyQiJld0JiQiKysrKzBURkU3JCImUzknJCIrKytdN1hGRTckIicpbzkiJCIrKytdWiopRkU3JCInISlHNyQiKysrKyFmKkZFNyQiJ3ckSCMkIisrK3YiKj4hIzU3JCInZ2RDJCIrKyt2UD9GaG43JCInPzpcJCIrKysrYlZGaG43JCInU0kpKiQiKysrXWQkKkZobg== NzM3JCIkWyUkIisrK3ZnPCEjODckIiQnKikkIisrKytJUEYnNyQiJSN6IiQiKysrXUZ6Ric3JCIlJWUkJCIrKytdKHAiISM3NyQiJW9yJCIrKysrXU9GNDckIiZPViIkIisrKytJeUY0NyQiJmdgIiQiKysrKyZlKUY0NyQiJnMnRyQiKysrXUQ8ISM2NyQiJj8yJCQiKysrdkw9RkU3JCImV3QmJCIrKysrNVJGRTckIiZTOSckIisrKytnU0ZFNyQiJylvOSIkIisrKyt2JSlGRTckIichKUc3JCIrKytdeCcpRkU3JCIndyRIIyQiKysrXWM9ISM1NyQiJ2dkQyQiKysrK1Q9RmhuNyQiJz86XCQiKysrXTJTRmhuNyQiJ1NJKSokIisrK10jUSlGaG4= Ny43JCIkLygkIisrKysrUCEjODckIiVXOCQiKysrXTIhKUYnNyQiJSlvIyQiKysrXSw7ISM3NyQiJT9eJCIrKysrJmUkRjA3JCImUy0iJCIrKytdX3ZGMDckIiZjJT4kIisrK3ZmPCEjNjckIiY3KlEkIisrK10tVUY9NyQiJkdQKCQiKysrXWkpKUY9NyQiJ2sjUiIkIisrK11ePSEjNTckIidHJnkjJCIrKytdKCpRRko3JCInKUdDJiQiKysrKyEzKUZKNyQiKHcmWzUkIisrK10nbyIhIio= Ny43JCIkLygkIisrK3ZGPSEjODckIiVXOCQiKysrXShlJEYnNyQiJSlvIyQiKysrKyY+KEYnNyQiJT9eJCIrKytEaDohIzc3JCImUy0iJCIrKytdWk9GNDckIiZjJT4kIisrK103KilGNDckIiY3KlEkIisrKysvQiEjNjckIiZHUCgkIisrKyshZiVGQTckIidrI1IiJCIrKytdaDUhIzU3JCInRyZ5IyQiKysrRFpARko3JCInKUdDJiQiKysrXSNmJUZKNyQiKHcmWzUkIisrKytnJSpGSg== Ny43JCIkLygkIisrK10ySyEjODckIiVXOCQiKysrXShmJ0YnNyQiJSlvIyQiKysrRHE4ISM3NyQiJT9eJCIrKytdUEdGMDckIiZTLSIkIisrKytiZ0YwNyQiJmMlPiQiKysrdm84ISM2NyQiJjcqUSQiKysrXSNRJEY9NyQiJkdQKCQiKysrKyE0KEY9NyQiJ2sjUiIkIisrK3Y0OiEjNTckIidHJnkjJCIrKysrNUlGSjckIicpR0MmJCIrKysrMGtGSjckIih3Jls1JCIrKytdOTghIio= Ny43JCIkLygkIisrK3YkSCIhIzg3JCIlVzgkIisrKys1RUYnNyQiJSlvIyQiKysrXWRcRic3JCIlP14kIisrK10iNCIhIzc3JCImUy0iJCIrKyt2eEJGNDckIiZjJT4kIisrK10jUSdGNDckIiY3KlEkIisrK10mZSIhIzY3JCImR1AoJCIrKysrMExGQTckIidrI1IiJCIrKysrITQoRkE3JCInRyZ5IyQiKysrdiFbIiEjNTckIicpR0MmJCIrKysrU0pGTjckIih3Jls1JCIrKytdaWtGTg== lTpb:=proc(T) local x; map(x->[log[b](x[1]),log[b](4*10^7*x[2]/x[1])],T); end; ppl:=proc(L) pointplot([log[b](L[1]),log[b](24*3600/L[2])], title=`Primality testing, log[2](test/day)-log[2](bit)`), textplot([log[b](L[1]),log[b](24*3600/L[2]),L[3]],align={BELOW,LEFT}) end; pplb:=proc(L) pointplot([log[b](L[1]),log[b](24*3600/L[2])], title=`Primality testing, log[2](test/day)-log[2](bit)`), textplot([log[b](L[1]),log[b](24*3600/L[2]),L[3]],align={BELOW}) end; pll:=proc(L) local x; plot(map(x->[log[b](x[1]),log[b](24*3600/x[2])],L)) end; ltpb:=proc(L) local x; plot(map(x->[log[b](x[1]),log[b](24*3600/(f*x[2]*x[1]))],L)); end; Zio2I0kiVEc2IjYjSSJ4R0YlRiVGJS1JJG1hcEclKnByb3RlY3RlZEc2JGYqRiZGJTYkSSlvcGVyYXRvckdGJUkmYXJyb3dHRiVGJTckLSZJJGxvZ0c2JEYqSShfc3lzbGliR0YlNiNJImJHRiU2IyZGJzYjIiIiLUYyNiMsJCooIikrKytTRjsmRic2IyIiI0Y7RjkhIiJGO0YlRiVGJUYkRiVGJUYl Zio2I0kiTEc2IkYlRiVGJTYkLUkqcG9pbnRwbG90R0YlNiQ3JC0mSSRsb2dHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2I0kiYkdGJTYjJkYkNiMiIiItRiw2IywkKiYiJitrKUY2JkYkNiMiIiMhIiJGNi9JJnRpdGxlR0YlSVBQcmltYWxpdHl+dGVzdGluZyx+bG9nWzJdKHRlc3QvZGF5KS1sb2dbMl0oYml0KUdGJS1JKXRleHRwbG90R0YlNiQ3JUYrRjcmRiQ2IyIiJC9JJmFsaWduR0YlPCRJJkJFTE9XR0YlSSVMRUZUR0YlRiVGJUYl Zio2I0kiTEc2IkYlRiVGJTYkLUkqcG9pbnRwbG90R0YlNiQ3JC0mSSRsb2dHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2I0kiYkdGJTYjJkYkNiMiIiItRiw2IywkKiYiJitrKUY2JkYkNiMiIiMhIiJGNi9JJnRpdGxlR0YlSVBQcmltYWxpdHl+dGVzdGluZyx+bG9nWzJdKHRlc3QvZGF5KS1sb2dbMl0oYml0KUdGJS1JKXRleHRwbG90R0YlNiQ3JUYrRjcmRiQ2IyIiJC9JJmFsaWduR0YlPCNJJkJFTE9XR0YlRiVGJUYl Zio2I0kiTEc2IjYjSSJ4R0YlRiVGJS1JJXBsb3RHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2Iy1JJG1hcEdGKzYkZipGJkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlNyQtJkkkbG9nR0YqNiNJImJHRiU2IyZGJzYjIiIiLUY3NiMsJComIiYraylGPiZGJzYjIiIjISIiRj5GJUYlRiVGJEYlRiVGJQ== Zio2I0kiTEc2IjYjSSJ4R0YlRiVGJS1JJXBsb3RHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2Iy1JJG1hcEdGKzYkZipGJkYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlNyQtJkkkbG9nR0YqNiNJImJHRiU2IyZGJzYjIiIiLUY3NiMsJCoqIiYraylGPkkiZkdGJSEiIiZGJzYjIiIjRkVGPEZFRj5GJUYlRiVGJEYlRiVGJQ== display([plot(lTpb(schmul),style=POINT,title=`usqr, SuperSPARC, log[2](cycle/bit)-log[2](bit)`,color=magenta), textplot([lTpb(schmul)[2][1],lTpb(schmul)[2][2], `Schoenhage et al.`],align={ABOVE,LEFT}), plot(lTpb(karamul),color=green), plot(lTpb(karasqr),color=green), textplot([lTpb(karamul)[10][1],lTpb(karamul)[10][2], `Karatsuba`],align={ABOVE,LEFT}), plot(lTpb(classicmul),color=blue), plot(lTpb(classicsqr),color=blue), textplot([lTpb(classicmul)[2][1],lTpb(classicmul)[2][2], `Classic`],align={ABOVE,LEFT}), plot(lTpb(fftmul),color=red), plot(lTpb(fftsqr),color=red), textplot([lTpb(fftmul)[1][1],lTpb(fftmul)[1][2],`Fermat`], align={ABOVE,LEFT}), plot(lTpb(rffftmul2ss),color=yellow), plot(lTpb(rffftsqr2ss),color=yellow), textplot([lTpb(rffftmul2ss)[12][1],lTpb(rffftmul2ss)[12][2], `Float`],align={ABOVE,LEFT})]); NjMtJStBWEVTTEFCRUxTRzYnUSE2IkYmLSUlRk9OVEc2JCUqSEVMVkVUSUNBRyIjNSUrSE9SSVpPTlRBTEdGLS0lJ0NVUlZFU0c2JTclNyQkIjNrKioqKipcNEc+SyghIzwkIjNBKysrJ2YhKm8hSEY1NyQkIjMkKioqKioqKj1jUWs2ISM7JCIzSSoqKioqPjY2N1gnRjU3JCQiMyUpKioqKipwbnpUJD1GOyQiMzMsKysjUmltXClGNS0lJlNUWUxFRzYjJSZQT0lOVEctJSZDT0xPUkc2JiUkUkdCRyRGLCEiIiQiIiFGTEZLLSUlVEVYVEc2JjckJCIyLSsrIT5jUWs2ISM6JCIrNzZAXmshIipRMlNjaG9lbmhhZ2V+ZXR+YWwuRiclKkFMSUdOTEVGVEclK0FMSUdOQUJPVkVHLUYvNiQ3MDckJCIiKEZOJCIzeSoqKioqUm9uXE0kISM9NyQkIiIpRk4kIjMuKysrXXIlR14qRl5vNyQkIiIqRk4kIjMhKioqKioqSCJRMzQ8RjU3JCRGLEZOJCIzQCsrK0J1UzBDRjU3JCQiIzZGTiQiMygqKioqKioqPUNnbklGNTckJCIjN0ZOJCIzNysrKzt1JykpcCRGNTckJCIjOEZOJCIzZioqKioqKlFDXjlWRjU3JCQiIzlGTiQiMycqKioqKipwLnZRJFxGNTckJCIjOkZOJCIzSSsrK0EtNVhiRjU3JCQiIztGTiQiM14rKytKL1lkaEY1NyQkIiM8Rk4kIjN5KioqKipSZWVXdydGNTckJCIjPUZOJCIzOioqKioqSHdcM08oRjU3JCQiIz5GTiQiM2kqKioqKipbU2dfekY1NyQkIiM/Rk4kIjMlKioqKioqKjMkPT1hKUY1LUZINiZGSkZNRktGTS1GLzYkNzA3JEZqbiQhMyYqKioqKio+YylSSkJGXm83JEZgbyQiMycpKioqKipwcyxPRyVGXm83JEZlbyQiMzErKytDUTctN0Y1NyRGam8kIjMtKysrb10tJCk9RjU3JEZecCQiMycpKioqKipmQDpOYSNGNTckRmNwJCIzISkqKioqKjRgOF86JEY1NyRGaHAkIjN5KioqKio0OGxdcCRGNTckRl1xJCIzNSsrK1YqKT0wVkY1NyRGYnEkIjNfKysrKio+JD4qW0Y1NyRGZ3EkIjNgKioqKipwXHQwXSZGNTckRlxyJCIzRSsrKyQpZVQuaEY1NyRGYXIkIjM8KioqKipISGYpNG5GNTckRmZyJCIzJikqKioqKjQ/TDZJKEY1NyRGW3MkIjMyKysrI1s6bCl5RjVGX3MtRlA2JjckRmdxJCIyMysrNVZndTonRjtRKkthcmF0c3ViYUYnRlpGZW4tRi82JDckNyQkIiImRk4kITMiKioqKioqXCE+Mnk7RjU3JEZqbyQiMzMrKysmNEc+SyRGNS1GSDYmRkpGTUZNRkstRi82JDcoRmd2NyQkIiInRk4kITMjKioqKioqZjI/Ri0iRjU3JEZqbiQhMywrKytCW2FkR0ZebzckRmBvJCIzNysrK1NFIXl6JUZebzckRmVvJCIzJyoqKioqKlJFIXl6OUY1NyRGam8kIjMlKSoqKioqPmE2blYjRjVGX3ctRlA2JjckRmpvJCIrJjRHPkskRlhRKENsYXNzaWNGJ0ZaRmVuLUYvNiQ3MzckJCIzLisrK0FcTjIpKUY1JCIzYyoqKioqXDV2WFolRjU3JCQiMy4rKytBXE4yKSpGNSQiM1grKytaKzFqWEY1NyQkIjMqKioqKioqPlxOMjMiRjskIjM/KysrI0g/Vm0lRjU3JCQiMyoqKioqKio+XE4yPSJGOyQiM0krKys9am1yWkY1NyQkIjMqKioqKioqPlxOMkciRjskIjM6KysrPClcailbRjU3JCQiMyoqKioqKio+XE4yUSJGOyQiM3gqKioqKioqZk0uLiZGNTckJCIzLysrK2chKm8hUiJGOyQiMyYqKioqKio0Wmkib11GNTckJCIzKioqKioqKj5cTjJbIkY7JCIzSysrK0Qqb049JkY1NyQkIjMvKysrZyEqbyFcIkY7JCIzQisrKyxdLCQ9JkY1NyQkIjMqKioqKioqPlxOMmUiRjskIjNDKysrWF1OTGBGNTckJCIzLysrK2chKm8hZiJGOyQiMyUpKioqKipIOyxuSCZGNTckJCIzOysrKyNcTjJvIkY7JCIzYisrK1I+KHlXJkY1NyQkIjMvKysrZyEqbyFwIkY7JCIzSysrKzUwUCFSJkY1NyQkIjM7KysrI1xOMnkiRjskIjMmKioqKioqNGEqUXliRjU3JCQiMy8rKytnISpvIXoiRjskIjNVKysrMik9aVomRjU3JCQiMy8rKytnISpvISo9RjskIjM0KysraSM9d2ImRjU3JCQiMy8rKytnISpvISo+RjskIjM3KysrQWpbW2NGNS1GSDYmRkpGS0ZNRk0tRi82JDczNyRGX3kkIjM0KysrWCU+WShSRjU3JEZkeSQiMzMrKyslKlxnZFNGNTckRml5JCIzOSsrK05gSFhURjU3JEZeeiQiM0wrKytLIXBQQyVGNTckRmN6JCIzVCsrK0BSRFtWRjU3JEZoeiQiMzkrKytsKHAkXFdGNTckRl1bbCQiM0crKys9KlJFWyVGNTckRmJbbCQiMzQrKytFK0kqZSVGNTckRmdbbCQiM1grKytXb2F4WEY1NyRGXFxsJCIzVysrK2dUWHBaRjU3JEZhXGwkIjN2KioqKipmZ0hVcyVGNTckRmZcbCQiMyUqKioqKio0IyopXCYpW0Y1NyRGW11sJCIzVCsrK1IkSCsjW0Y1NyRGYF1sJCIzRysrK2oqKXo7XUY1NyRGZV1sJCIzVCsrKyt3OzBcRjU3JEZqXWwkIjMpKioqKioqUlwhUUZdRjU3JEZfXmwkIjM3KysrXyZlPzQmRjVGY15sLUZQNiY3JCQiK0FcTjIpKUZYJCIrMF5kdVdGWFEnRmVybWF0RidGWkZlbi1GLzYkNy43JCQiMzIrKys+O1ZmJSpGNSQiMzErKys9OVV3TEY1NyQkIjMmKioqKioqPnVKI1I1RjskIjMrKysrJHBYa1QkRjU3JCQiMyYqKioqKio+dUojUjZGOyQiMzUrKytcOlk/TUY1NyQkIjMsKysrNEc+SzdGOyQiMzsrKytjZVszT0Y1NyQkIjMsKysrNEc+SzhGOyQiM0ArKytqQXBLUUY1NyQkIjMtKysrXkZ6QzlGOyQiM28qKioqKnouOmM+JUY1NyQkIjMtKysrXkZ6QzpGOyQiMycpKioqKip6bmBlYyVGNTckJCIzIyoqKioqKioqXCMqcGgiRjskIjM8KysrRic0I1FZRjU3JCQiMzErKyslR1koMzxGOyQiMycqKioqKioqKTQ1LSRcRjU3JCQiMzErKyslR1koMz1GOyQiMzIrKysqKmVmWVxGNTckRmZyJCIzSisrKyFIWzM4JkY1NyRGW3MkIjNOKysrYCgzTTwmRjUtRkg2JkZKRktGS0ZNLUYvNiQ3LjckRmdibCQiMyQpKioqKip6XzZ6KEdGNTckRlxjbCQiMygpKioqKioqb21eZEhGNTckRmFjbCQiMzMrKytOJ3pJKUdGNTckRmZjbCQiMykpKioqKipcVCc0IzQkRjU3JEZbZGwkIjM1KysrPzhROktGNTckRmBkbCQiMzkrKysqXDFSciRGNTckRmVkbCQiMzcrKytRM2xFU0Y1NyRGamRsJCIzYyoqKioqXHVsVjslRjU3JEZfZWwkIjNJKysraEsnek0lRjU3JEZkZWwkIjM3KysrOVFWNVdGNTckRmZyJCIzQisrK0hKTCNlJUY1NyRGW3MkIjM4KysrWDRtQllGNUZeZmwtRlA2JjckRltzJCIrYCgzTTwmRlhRJkZsb2F0RidGWkZlbi0lJlRJVExFRzYjUVB1c3FyLH5TdXBlclNQQVJDLH5sb2dbMl0oY3ljbGUvYml0KS1sb2dbMl0oYml0KUYnLSUlVklFV0c2JDskIiNaRkwkIjIvKysrKysrLiNGVTskIS1HNChwQyk9ISM2JCItRzhoQFkoKUZcamw= f:=1.05*40/60; T1:=[log[2](663777)+7650,6,`Twin, Amdahl 1200, 1989`]; T2:=[log[2](1706595)+11235,10,`Twin, Amdahl 1200, 1989`]; T3:=[log[2](697053813)+16352,212,`Twin, SuperSPARC 60 MHz, 1994`]; T4:=[log[2](697053813)+16352,2*24*3600,`Maple, SuperSPARC 60 MHz`]; T5:=[log[2](697053813)+16352,42.5*60,`LiDIA, MIPS RS4000`]; T6:=[log[2](697053813)+16352,3.5*3600,`LiDIA, SUN4 ELC`]; T7:=[log[2](242206083)+38880,7*60,`Twin, SuperSPARC 60MHz, 1995`]; T8:=[log[2](242206083)+38880,5*3600,`LiDIA, SPARCstation20`]; T:=[[WS*2^7,36.49/40000],[WS*2^8,10.61/4000],[19*2^10,25.53/(4*10^3)], [19*2^11,63.42/(4*10^3)],[18*2^12,13.22/400],[17*2^13,28.36/400], [17*2^14,59.23/400],[16*2^15,12.56/40],[16*2^16,25.85/40]]; M29:=[110503,0.03*110503,`Prime, NEC SX-2, 1988`]; M28:=[86243,5782,`Prime, CRAY-1, 1983`]; M31:=[216091,3*3600,`Prime, 1 CPU CRAY XMP, 1985`]; M33:=[859433,25924,`Prime, 1 CPU CRAY C916, 1994`]; P1:=[216100,33*60,`Prime, Amdahl 1200 E, 1990`]; # P:=[[128000,128000*0.2],[256000,256000*0.5],[512000,512000]]; display([ppl(T1),ppl(T2),ppl(T3),ppl(T4),ppl(T5),ppl(T6),ppl(T7),ppl(T8), ltpb(T),ppl(M28),ppl(M29),ppl(M31),pplb(M33),ppl(P1)]); JCIrKysrK3EhIzU= NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIneFBtIiIiLUYmNiMiIiMhIiJGLSIlXXdGLSIiJ0k4VHdpbix+QW1kYWhsfjEyMDAsfjE5ODlHRio= NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIoJmYxPCIiIi1GJjYjIiIjISIiRi0iJk43IkYtIiM1SThUd2luLH5BbWRhaGx+MTIwMCx+MTk4OUdGKg== NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIqOFEwKHAiIiItRiY2IyIiIyEiIkYtIiZfaiJGLSIkNyNJPlR3aW4sflN1cGVyU1BBUkN+NjB+TUh6LH4xOTk0R0Yq NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIqOFEwKHAiIiItRiY2IyIiIyEiIkYtIiZfaiJGLSInK0c8STlNYXBsZSx+U3VwZXJTUEFSQ342MH5NSHpHRio= NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIqOFEwKHAiIiItRiY2IyIiIyEiIkYtIiZfaiJGLSQiJitiI0YxSTNMaURJQSx+TUlQU35SUzQwMDBHRio= NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIqOFEwKHAiIiItRiY2IyIiIyEiIkYtIiZfaiJGLSQiJytnN0YxSTBMaURJQSx+U1VONH5FTENHRio= NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIqJDMxQUMiIiItRiY2IyIiIyEiIkYtIiYhKSlRRi0iJD8lST1Ud2luLH5TdXBlclNQQVJDfjYwTUh6LH4xOTk1R0Yq NyUsJiomLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyIqJDMxQUMiIiItRiY2IyIiIyEiIkYtIiYhKSlRRi0iJishPUk2TGlESUEsflNQQVJDc3RhdGlvbjIwR0Yq Nys3JCIlJzQlJCIrKytdQSIqISM4NyQiJSM+KSQiKysrXV9FISM3NyQiJmMlPiQiKysrXSNRJ0YsNyQiJjcqUSQiKysrXSZlIiEjNjckIiZHUCgkIisrKyswTEY1NyQiJ2sjUiIkIisrKyshNChGNTckIidHJnkjJCIrKyt2IVsiISM1NyQiJylHQyYkIisrKytTSkZCNyQiKHcmWzUkIisrK11pa0ZC NyUiJy4wNiQiJzQ6TCEiI0k2UHJpbWUsfk5FQ35TWC0yLH4xOTg4RzYi NyUiJlZpKSIlI3kmSTRQcmltZSx+Q1JBWS0xLH4xOTgzRzYi NyUiJyI0OyMiJiszIkk8UHJpbWUsfjF+Q1BVfkNSQVl+WE1QLH4xOTg1RzYi NyUiJ0wlZikiJkNmI0k9UHJpbWUsfjF+Q1BVfkNSQVl+QzkxNix+MTk5NEc2Ig== NyUiJytoQCIlISk+STtQcmltZSx+QW1kYWhsfjEyMDB+RSx+MTk5MEc2Ig== NkAtSSdQT0lOVFNHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IzckJCIreScpWyFIIiEiKSQiKz4ieThRIkYtLUklVEVYVEdGJTYmRipROFR3aW4sfkFtZGFobH4xMjAwLH4xOTg5RihJK0FMSUdOQkVMT1dHRiVJKkFMSUdOTEVGVEdGJS1GJDYjNyQkIitebyRlTSJGLSQiK2c6bzI4Ri0tRjE2JkY4RjNGNEY1LUYkNiM3JCQiKyoqbygqKlIiRi0kIitQSyMzbikhIiotRjE2JkZBUT5Ud2luLH5TdXBlclNQQVJDfjYwfk1Ieix+MTk5NEYoRjRGNS1GJDYjNyRGQiQhKysrKys1RkYtRjE2JkZMUTlNYXBsZSx+U3VwZXJTUEFSQ342MH5NSHpGKEY0RjUtRiQ2IzckRkIkIitnQFkjMyZGRi1GMTYmRlRRM0xpRElBLH5NSVBTflJTNDAwMEYoRjRGNS1GJDYjNyRGQiQiK3p2Z3hGRkYtRjE2JkZmblEwTGlESUEsflNVTjR+RUxDRihGNEY1LUYkNiM3JCQiK3F0eEM6Ri0kIit1IilcJW8oRkYtRjE2JkZeb1E9VHdpbix+U3VwZXJTUEFSQ342ME1Ieix+MTk5NUYoRjRGNS1GJDYjNyRGX28kIisxVy5qQUZGLUYxNiZGaG9RNkxpRElBLH5TUEFSQ3N0YXRpb24yMEYoRjRGNS1JJ0NVUlZFU0dGJTYkNys3JCQiIzciIiEkIjMnKioqKioqKioqKmY2XSIhIzs3JCQiIzhGZXAkIjMjKioqKioqKlJbPFo3RmhwNyQkIjMtKysrXkZ6QzlGaHAkIjNQKioqKipIK19xJioqISM8NyQkIjMtKysrXkZ6QzpGaHAkIjNSKioqKipSbTJWayhGY3E3JCQiMyMqKioqKioqKlwjKnBoIkZocCQiM3UqKioqKj55KGZpY0ZjcTckJCIzMSsrKyVHWSgzPEZocCQiMyEpKioqKipmZUNSayRGY3E3JCQiMzErKyslR1koMz1GaHAkIjMpKioqKioqSC5hOWUiRmNxNyQkIiM+RmVwJCEzPCsrKyEqZj5iVCEjPTckJCIjP0ZlcCQhMyMqKioqKipcVFpvWCNGY3EtSSdDT0xPVVJHRiU2JkkkUkdCR0YoJCIjNSEiIiRGZXBGZXBGanMtRiQ2IzckJCIrdT5oUjtGLSQiKyl6IVIsUkZGLUYxNiZGXXRRNFByaW1lLH5DUkFZLTEsfjE5ODNGKEY0RjUtRiQ2IzckJCIrLEVQdjtGLSQiK3E4IlJxJUZGLUYxNiZGZ3RRNlByaW1lLH5ORUN+U1gtMix+MTk4OEYoRjRGNS1GJDYjNyQkIitZejdzPEYtJCIrKysrK0lGRi1GMTYmRmF1UTxQcmltZSx+MX5DUFV+Q1JBWX5YTVAsfjE5ODVGKEY0RjUtRiQ2IzckJCIrbERJcj5GLSQiK3RIdU88RkYtRjE2JUZbdlE9UHJpbWUsfjF+Q1BVfkNSQVl+QzkxNix+MTk5NEYoRjQtRiQ2IzckJCIrYlI4czxGLSQiK3gqZXVXJkZGLUYxNiZGZXZRO1ByaW1lLH5BbWRhaGx+MTIwMH5FLH4xOTkwRihGNEY1LUkmVElUTEVHRiU2I0lQUHJpbWFsaXR5fnRlc3RpbmcsfmxvZ1syXSh0ZXN0L2RheSktbG9nWzJdKGJpdClHRigtSStBWEVTTEFCRUxTR0YlNiRRIUYoRmR3LUklVklFV0dGJTYkSShERUZBVUxUR0YlRmh3
<Text-field style="Heading 2" layout="Heading 2">7.7. P<Font encoding="UTF-8">\303\251</Font>lda.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.8. FFT v<Font encoding="UTF-8">\303\251</Font>ges testek felett.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.9. Fermat-sz<Font encoding="UTF-8">\303\241</Font>m transzform<Font encoding="UTF-8">\303\241</Font>ci<Font encoding="UTF-8">\303\263</Font>.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.10. Sch<Font encoding="UTF-8">\303\266</Font>nhage-Strassen-f<Font encoding="UTF-8">\303\251</Font>le gyorsszorz<Font encoding="UTF-8">\303\263</Font> algoritmus.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.11. P<Font encoding="UTF-8">\303\251</Font>lda.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.12. Ritka polinomok es ritka sz<Font encoding="UTF-8">\303\241</Font>mok.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.13. Feladat.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.14. Oszt<Font encoding="UTF-8">\303\241</Font>s, polinomoszt<Font encoding="UTF-8">\303\241</Font>s.</Text-field> # # This procedure calculate the approximate reciprocal b of # a given number a. The binary length of a must be 2^logn+1, # where logn>2 is an integer. The result is [b,alpha,beta] # where the parameters 0<alpha<1/2 and beta<=-2 are such that # with the notation n=2^logn we have a*b=2^(2*n)-s with # 0<s<=a*2^(alpha*n+beta). # apprec:=proc(a::posint,logn::posint) local n,b,ai,bi,L; n:=2^logn; if logn<=5 then b:=floor(2^(2*n)/a); if a*b=2^(2*n) then b:=b-1 fi; RETURN([b,2/n,-2]); fi; ai:=iquo(a,2^(n/2)); L:=apprec(ai,logn-1); bi:=L[1]; iquo(2^(3*n/2+1)*bi-bi*bi*a,2^n); [%,L[2],L[3]] end; Zio2JCdJImFHNiJJJ3Bvc2ludEclKnByb3RlY3RlZEcnSSVsb2duR0YmRic2J0kibkdGJkkiYkdGJkkjYWlHRiZJI2JpR0YmSSJMR0YmRiZGJkMpPkYsKSIiI0YqQCQxRioiIiZDJT5GLS1JJmZsb29yR0YmNiMqJilGNCwkKiZGNCIiIkYsRkFGQUZBRiUhIiJAJC8qJkYlRkFGLUZBRj4+Ri0sJkYtRkFGQUZCLUknUkVUVVJOR0YoNiM3JUYtLCQqJkY0RkFGLEZCRkEhIiM+Ri4tSSVpcXVvR0YoNiRGJSlGNCwkKiYjRkFGNEZBRixGQUZBPkYwLUknYXBwcmVjR0YmNiRGLiwmRipGQUZBRkI+Ri8mRjA2I0ZBLUZRNiQsJiomKUY0LCYqJiMiIiRGNEZBRixGQUZBRkFGQUZBRi9GQUZBKihGL0ZBRi9GQUYlRkFGQilGNEYsNyVJIiVHRiYmRjA2I0Y0JkYwNiNGYW9GJkYmRiY= apprec(256,3); apprec(257,3); apprec(300,3); apprec(511,3); apprec(65536,4); apprec(65537,4); NyUiJGIjIyIiIiIiJSEiIw== NyUiJGIjIyIiIiIiJSEiIw== NyUiJD0jIyIiIiIiJSEiIw== NyUiJEciIyIiIiIiJSEiIw== NyUiJk5iJyMiIiIiIikhIiM= NyUiJk5iJyMiIiIiIikhIiM= # # This is a Maple demo program to show the procedure # for division using the approximation of reciprocal # based on Newton's method. Here, with the notation # n=2^logn, c has at most 2n digit and a has at most # n digit. logn must be an integer greater then 1. # division:=proc(c::posint,a::posint,logn::posint) local n,k,l,as,bs,cs,qs,rs,alpha; n:=2^logn; as:=a; for k from 0 while as<2^n do as:=2*as od; if c=0 then RETURN([0,0]) fi; cs:=floor(c/2); for l from -1 while cs<2^(2*n-1) do cs:=2*cs od; print(l); print(k); if k<=0 or l<0 or k>l+1 then RETURN(`overflow`) fi; cs:=iquo(cs,2^n); apprec(as,logn); bs:=%[1]; alpha:=%%[2]; qs:=iquo(cs*bs,2^(n-k+l)); rs:=c-qs*a; if k-l+alpha*n>1 then division(rs,a,logn); qs:=qs+%[1]; rs:=%%[2]; fi; while rs>=a do qs:=qs+1; rs:=rs-a; od; if qs>=2^n then RETURN(`overflow`) fi; [qs,rs]; end; Zio2JSdJImNHNiJJJ3Bvc2ludEclKnByb3RlY3RlZEcnSSJhR0YmRicnSSVsb2duR0YmRic2K0kibkdGJkkia0dGJkkibEdGJkkjYXNHRiZJI2JzR0YmSSNjc0dGJkkjcXNHRiZJI3JzR0YmSSZhbHBoYUdGJkYmRiZDNT5GLikiIiNGLD5GMUYqPyhGLyIiISIiIkYmMkYxKUY6Ri4+RjEsJComRjpGPkYxRj5GPkAkL0YlRj0tSSdSRVRVUk5HRig2IzckRj1GPT5GMy1JJmZsb29yRzYkRihJKF9zeXNsaWJHRiY2IywkKiYjRj5GOkY+RiVGPkY+PyhGMCEiIkY+RiYyRjMpRjosJiomRjpGPkYuRj5GPkY+RlQ+RjMsJComRjpGPkYzRj5GPi1JJnByaW50R0YoNiNGMC1GZ242I0YvQCQ1NTFGL0Y9MkYwRj0yLCZGMEY+Rj5GPkYvLUZHNiNJKW92ZXJmbG93R0YoPkYzLUklaXF1b0dGKDYkRjNGQC1JJ2FwcHJlY0dGJjYkRjFGLD5GMiZJIiVHRiY2I0Y+PkY2JkkjJSVHRiY2I0Y6PkY0LUZnbzYkKiZGM0Y+RjJGPilGOiwoRi5GPkYvRlRGMEY+PkY1LCZGJUY+KiZGNEY+RipGPkZUQCQyRj4sKEYvRj5GMEZUKiZGNkY+Ri5GPkY+QyUtSSlkaXZpc2lvbkdGJjYlRjVGKkYsPkY0LCZGNEY+Rl1wRj4+RjVGYXA/KEYmRj5GPkYmMUYqRjVDJD5GNCwmRjRGPkY+Rj4+RjUsJkY1Rj5GKkZUQCQxRkBGNEZibzckRjRGNUYmRiZGJg== division(2^32,2^16,4); ISIi IiIh SSlvdmVyZmxvd0clKnByb3RlY3RlZEc= debug(division); SSlkaXZpc2lvbkc2Ig== division(2^32-10*2^16,2^16-1,4); {--> enter division, args = 4294311936, 65535, 4 IiM7 IiZOYic= IidxNTg= IitvZjpaQA== IitPPkolSCU= IiIh IiIi IiZFYic= NyUiJm9GJCMiIiIiIikhIiM= IiZvRiQ= IyIiIiIiKQ== IiZFYic= IiZFYic= {--> enter division, args = 65526, 65535, 4 IiM7 IiZOYic= IidxNTg= IiZqRiQ= IiZFYic= IidfNTg= IicvQEU= IiczVV8= Iig7JVs1 IihLbzQj IihrTz4l IihHdFEp IiljWXg7 Iik3JFxOJA== IilDJyk0bg== Iipbcz5NIg== IionXCVSbyM= IiojKiopeU8m IislKXpkdDU= IitvZjpaQA== IitPPkolSCU= IiM7 IiIi IiZFYic= NyUiJm9GJCMiIiIiIikhIiM= IiZvRiQ= IyIiIiIiKQ== IiIh IiZFYic= NyQiIiEiJkViJw== <-- exit division (now in division) = [0, 65526]} NyQiIiEiJkViJw== IiZFYic= IiZFYic= NyQiJkViJ0Yj <-- exit division (now at top level) = [65526, 65526]} NyQiJkViJ0Yj %[1]*(2^16-1)+%[2]-(2^32-10*2^16); IiIh
<Text-field style="Heading 2" layout="Heading 2">7.15. Polinom ki<Font encoding="UTF-8">\303\251</Font>rt<Font encoding="UTF-8">\303\251</Font>kel<Font encoding="UTF-8">\303\251</Font>se tetsz<Font encoding="UTF-8">\305\221</Font>leges helyeken.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.16. Interpol<Font encoding="UTF-8">\303\241</Font>ci<Font encoding="UTF-8">\303\263</Font>.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.17. Feladat.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.18. Feladat.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.19. Feladat.</Text-field>
<Text-field style="Heading 2" layout="Heading 2">7.20. Feladat: kontroll<Font encoding="UTF-8">\303\241</Font>lt euklid<Font encoding="UTF-8">\303\251</Font>szi lesz<Font encoding="UTF-8">\303\241</Font>ll<Font encoding="UTF-8">\303\241</Font>s.</Text-field> # This function makes an upper or lower division step. The # function updapes the incoming list [a,b,x,y,u,v], but the # remainder is given back. qstep:=proc(L,s) local q,r,LL; if L[1]>L[2] then q:=iquo(L[1],L[2]); r:=irem(L[1],L[2]); if r>=s then LL:=[r,L[2],L[3],L[4]+q*L[3],L[5],L[6]+q*L[5]]; else LL:=[r,L[2],L[3],L[4]+(q-1)*L[3],L[5],L[6]+(q-1)*L[5]]; fi; else q:=iquo(L[2],L[1]); r:=irem(L[2],L[1]); if r>=s then LL:=[L[1],r,L[3]+q*L[4],L[4],L[5]+q*L[6],L[6]]; else LL:=[L[1],r,L[3]+(q-1)*L[4],L[4],L[5]+(q-1)*L[6],L[6]]; fi; fi; LL; end; Zio2JEkiTEc2Ikkic0dGJTYlSSJxR0YlSSJyR0YlSSNMTEdGJUYlRiVDJEAlMiZGJDYjIiIjJkYkNiMiIiJDJT5GKC1JJWlxdW9HJSpwcm90ZWN0ZWRHNiRGMUYuPkYpLUklaXJlbUdGOEY5QCUxRiZGKT5GKjcoRilGLiZGJDYjIiIkLCYmRiQ2IyIiJUYzKiZGKEYzRkFGM0YzJkYkNiMiIiYsJiZGJDYjIiInRjMqJkYoRjNGSUYzRjM+Rio3KEYpRi5GQSwmRkVGMyomLCZGKEYzRjMhIiJGM0ZBRjNGM0ZJLCZGTUYzKiZGVUYzRklGM0YzQyU+RigtRjc2JEYuRjE+RiktRjxGZm5AJUY+PkYqNyhGMUYpLCZGQUYzKiZGKEYzRkVGM0YzRkUsJkZJRjMqJkYoRjNGTUYzRjNGTT5GKjcoRjFGKSwmRkFGMyomRlVGM0ZFRjNGM0ZFLCZGSUYzKiZGVUYzRk1GM0YzRk1GKkYlRiVGJQ== # This is a slow version of ced. It works for arbitrary input. # The matrix and the remainder is given back. sced:=proc(a,b,s) local L; L:=[a,b,1,0,0,1]; while L[1]>=s and L[2]>=s do L:=qstep(L,s); od; L; end; Zio2JUkiYUc2IkkiYkdGJUkic0dGJTYjSSJMR0YlRiVGJUMlPkYpNyhGJEYmIiIiIiIhRi5GLT8oRiVGLUYtRiUzMUYnJkYpNiNGLTFGJyZGKTYjIiIjPkYpLUkmcXN0ZXBHRiU2JEYpRidGKUYlRiVGJQ== debug(sced); SSVzY2VkRzYi a:=floor(evalf(Pi*10.^8)); b:=floor(evalf(exp(1.)*10^8)); sced(a,b,1); IipsI2ZUSg== IiojPUc9Rg== {--> enter sced, args = 314159265, 271828182, 1 NygiKmwjZlRKIiojPUc9RiIiIiIiIUYmRiU= NygiKSQzSkIlIiojPUc9RiIiIkYlIiIhRiU= NygiKSQzSkIlIiklb1R5IiIiKCIiIiIiJ0Ym NygiKDp4ayciKSVvVHkiIiIoIiM6IiInIiM4 NygiKDp4ayciKGFpYSUiI1AiIzoiI0siIzg= NygiKGg5NSMiKGFpYSUiI1AiI18iI0siI1g= NygiKGg5NSMiJ0tMTSIkVCIiI18iJEEiIiNY NygiJnA5JSInS0xNIiRUIiIkKSopIiRBIiIkeCg= NygiJnA5JSImIWU2IiVEdCIkKSopIiVRaiIkeCg= NygiJUhuIiYhZTYiJUR0IiZ0RyMiJVFqIiYiej4= NygiJUhuIiVeWyImKT5JIiZ0RyMiJkhoIyImIno+ NygiJXk9IiVeWyImKT5JIiZySSYiJkhoIyImP2Yl NygiJXk9IiUmNCIiJ1NqOCImckkmIidwejYiJj9mJQ== NygiJCR5IiUmNCIiJ1NqOCInNiUqPSIncHo2IicqKVE7 NygiJCR5IiQ3JCInXmRLIic2JSo9IidlPUciJyopUTs= NygiJGYiIiQ3JCInXmRLIic4NCUpIidlPUciJzB3cw== NygiJGYiIiRgIiIoa207IiInODQlKSIoaiU0NSInMHdz NygiIiciJGAiIihrbTsiIih4disjIihqJTQ1IihvcXQi NygiIiciIiQiKSozYzgmIih4disjIilqaFZXIihvcXQi NygiIiEiIiQiKSozYzgmIiltT09gIilqaFZXIilKSzxZ NygiIiEiIiQiKSozYzgmIiltT09gIilqaFZXIilKSzxZ <-- exit sced (now at top level) = [0, 3, 51356089, 53363666, 44436163, 46173231]} NygiIiEiIiQiKSozYzgmIiltT09gIilqaFZXIilKSzxZ 3*(%[3]+%[4]),3*(%[5]+%[6]),%[3]*%[6]-%[4]*%[5]; NiUiKmwjZlRKIiojPUc9RiIiIg== lB:=4; B:=2^lB; # wordsize and base of number system IiIl IiM7 cedmulQM:=proc(Q,M) local i,x,y,u,v,q; x:=M[1]; y:=M[2]; u:=M[3]; v:=M[4]; for i from nops(Q) by -1 while i>0 do q:=Q[i]; if q[1]=0 then q:=q[2]; u:=u+q*x; v:=v+q*y; else q:=q[1]; x:=x+q*u; y:=y+q*v; fi; od; [x,y,u,v]; end; Zio2JEkiUUc2IkkiTUdGJTYoSSJpR0YlSSJ4R0YlSSJ5R0YlSSJ1R0YlSSJ2R0YlSSJxR0YlRiVGJUMoPkYpJkYmNiMiIiI+RiomRiY2IyIiIz5GKyZGJjYjIiIkPkYsJkYmNiMiIiU/KEYoLUklbm9wc0clKnByb3RlY3RlZEc2I0YkISIiRiUyIiIhRihDJD5GLSZGJDYjRihAJS8mRi1GMUZGQyU+Ri0mRi1GNT5GKywmRitGMiomRi1GMkYpRjJGMj5GLCwmRixGMiomRi1GMkYqRjJGMkMlPkYtRk0+RiksJkYpRjIqJkYtRjJGK0YyRjI+RiosJkYqRjIqJkYtRjJGLEYyRjI3JkYpRipGK0YsRiVGJUYl cedmulMQ:=proc(M,Q) local i,x,y,u,v,q; x:=M[1]; y:=M[2]; u:=M[3]; v:=M[4]; for i while i<=nops(Q) do q:=Q[i]; if q[1]=0 then q:=q[2]; x:=x+q*y; u:=u+q*v; else q:=q[1]; y:=y+q*x; v:=v+q*u; fi; od; [x,y,u,v]; end; Zio2JEkiTUc2IkkiUUdGJTYoSSJpR0YlSSJ4R0YlSSJ5R0YlSSJ1R0YlSSJ2R0YlSSJxR0YlRiVGJUMoPkYpJkYkNiMiIiI+RiomRiQ2IyIiIz5GKyZGJDYjIiIkPkYsJkYkNiMiIiU/KEYoRjJGMkYlMUYoLUklbm9wc0clKnByb3RlY3RlZEc2I0YmQyQ+Ri0mRiY2I0YoQCUvJkYtRjEiIiFDJT5GLSZGLUY1PkYpLCZGKUYyKiZGLUYyRipGMkYyPkYrLCZGK0YyKiZGLUYyRixGMkYyQyU+Ri1GSz5GKiwmRipGMiomRi1GMkYpRjJGMj5GLCwmRixGMiomRi1GMkYrRjJGMjcmRilGKkYrRixGJUYlRiU= cedmulMM:=proc(M,MM) local x,y,u,v; x:=M[1]*MM[1]+M[2]*MM[3]; y:=M[1]*MM[2]+M[2]*MM[4]; u:=M[3]*MM[1]+M[4]*MM[3]; v:=M[3]*MM[2]+M[4]*MM[4]; [x,y,u,v]; end; Zio2JEkiTUc2IkkjTU1HRiU2JkkieEdGJUkieUdGJUkidUdGJUkidkdGJUYlRiVDJz5GKCwmKiYmRiQ2IyIiIkYyJkYmRjFGMkYyKiYmRiQ2IyIiI0YyJkYmNiMiIiRGMkYyPkYpLCYqJkYwRjImRiZGNkYyRjIqJkY1RjImRiY2IyIiJUYyRjI+RiosJiomJkYkRjlGMkYzRjJGMiomJkYkRkFGMkY4RjJGMj5GKywmKiZGRkYyRj5GMkYyKiZGSEYyRkBGMkYyNyZGKEYpRipGK0YlRiVGJQ== cedret:=proc(M,L) local x,y,u,v,q,MM,LL; x:=M[1]; y:=M[2]; u:=M[3]; v:=M[4]; if L[4]=0 then q:=L[5]; x:=x+q*y; u:=u+q*v; else q:=L[4]; y:=y+q*x; v:=v+q*u; fi; [L[1],L[2],x,y,u,v]; end; Zio2JEkiTUc2IkkiTEdGJTYpSSJ4R0YlSSJ5R0YlSSJ1R0YlSSJ2R0YlSSJxR0YlSSNNTUdGJUkjTExHRiVGJUYlQyg+RigmRiQ2IyIiIj5GKSZGJDYjIiIjPkYqJkYkNiMiIiQ+RismRiQ2IyIiJUAlLyZGJkY+IiIhQyU+RiwmRiY2IyIiJj5GKCwmRihGMyomRixGM0YpRjNGMz5GKiwmRipGMyomRixGM0YrRjNGM0MlPkYsRkI+RiksJkYpRjMqJkYsRjNGKEYzRjM+RissJkYrRjMqJkYsRjNGKkYzRjM3KCZGJkYyJkYmRjZGKEYpRipGK0YlRiVGJQ== # Set the minimal positive integer l such that u,v<B^l min_l:=proc(u,v) local l,l0,l1; l0:=1; l1:=1; while u>=B^l1 or v>=B^l1 do l0:=l1; l1:=2*l1; od; l:=ceil((l0+l1)/2); while l<l1 do if u<B^l and v<B^l then l1:=l else l0:=l fi; l:=ceil((l0+l1)/2); od; l; end; Zio2JEkidUc2IkkidkdGJTYlSSJsR0YlSSNsMEdGJUkjbDFHRiVGJUYlQyg+RikiIiI+RipGLT8oRiVGLUYtRiU1MSlJIkJHRiVGKkYkMUYyRiZDJD5GKUYqPkYqLCQqJiIiI0YtRipGLUYtPkYoLUklY2VpbEc2JCUqcHJvdGVjdGVkR0koX3N5c2xpYkdGJTYjLCYqJiNGLUY6Ri1GKUYtRi0qJkZERi1GKkYtRi0/KEYlRi1GLUYlMkYoRipDJEAlMzJGJClGM0YoMkYmRkw+RipGKD5GKUYoRjtGKEYlRiVGJQ== min_l(a,b); IiIp ced:=proc(a,b,n,w,e) local nn,np,ep,wp,aa,bb,ap,bp,app,bpp,f,s,L,M,MM,Q,t; s:=w*B^e; if n<=2 then return(sced(a,b,s)) fi; nn:=n; aa:=a; bb:=b; ep:=ceil(nn/4); np:=2*ep; if nn-ep<e then ep:=nn-e; np:=2*ep fi; f:=B^(nn-np); ap:=floor(aa/f); bp:=floor(bb/f); app:=aa-ap*f; bpp:=bb-bp*f; if e+ep=nn then wp:=w+1 else wp:=1; if e>=ep and e>=nn-3*ep then if ap*f+w*B^(e+ep)>B^nn or bp*f+w*B^(e+ep)>B^nn then wp:=2; fi; fi; fi; if ap>=wp*B^ep and bp>=wp*B^ep then L:=ced(ap,bp,np,wp,ep); M:=[L[3],L[4],L[5],L[6]]; aa:=L[1]; bb:=L[2]; if aa<bb then aa:=aa+bb else bb:=bb+aa fi; aa:=aa*f+M[4]*app-M[2]*bpp; bb:=bb*f-M[3]*app+M[1]*bpp; else M:=[1,0,0,1]; fi; t:=M[1]*aa+M[2]*bb; t:=M[3]*aa+M[4]*bb; t:=M[1]*M[4]-M[2]*M[3]; # test Q:=[]; while aa>=f*B^ep or bb>=f*B^ep do L:=qstep([aa,bb,1,0,0,1],s); aa:=L[1]; bb:=L[2]; if aa<s or bb<s then L:=cedret(cedmulMQ(M,Q),L); aa:=L[1]; bb:=L[2]; if aa<bb then aa:=aa+bb else bb:=bb+aa fi; # test t:=L[3]*aa+L[4]*bb;t:=L[5]*aa+L[6]*bb;t:=L[3]*L[6]-L[4]*L[5]; # test return(L); fi; Q:=[op(Q),[L[4],L[5]]]; od; MM:=cedmulMQ(M,Q); #test t:=MM[1]*aa+MM[2]*bb;t:=MM[3]*aa+MM[4]*bb;t:=MM[1]*MM[4]-MM[2]*MM[3]; # test nn:=nn-ep; if nn-ep<e then ep:=nn-e; np:=2*ep fi; f:=B^(nn-np); ap:=floor(aa/f); bp:=floor(bb/f); app:=aa-ap*f; bpp:=bb-bp*f; if e+ep=nn then wp:=w+1 else wp:=1; if e>=ep and e>=nn-3*ep then if ap*f+w*B^(e+ep)>B^nn or bp*f+w*B^(e+ep)>B^nn then wp:=2; fi; fi; fi; if ap>=wp*B^ep and bp>=wp*B^ep then L:=ced(ap,bp,np,wp,ep); MM:=[L[3],L[4],L[5],L[6]]; aa:=L[1]; bb:=L[2]; if aa<bb then aa:=aa+bb else bb:=bb+aa fi; aa:=aa*f+MM[4]*app-MM[2]*bpp; bb:=bb*f-MM[3]*app+MM[1]*bpp; else MM:=[1,0,0,1]; fi; MM:=cedmulQM(Q,MM); M:=cedmulMM(M,MM); t:=M[1]*aa+M[2]*bb; t:=M[3]*aa+M[4]*bb; t:=M[1]*M[4]-M[2]*M[3]; # test Q:=[]; while aa>=f*B^ep or bb>=f*B^ep do L:=qstep([aa,bb,1,0,0,1],s); aa:=L[1]; bb:=L[2]; if aa<s or bb<s then L:=cedret(cedmulMQ(M,Q),L); aa:=L[1]; bb:=L[2]; if aa<bb then aa:=aa+bb else bb:=bb+aa fi; # test t:=L[3]*aa+L[4]*bb;t:=L[5]*aa+L[6]*bb;t:=L[3]*L[6]-L[4]*L[5]; # test return(L); fi; Q:=[op(Q),[L[4],L[5]]]; od; MM:=cedmulMQ(M,Q); #test t:=MM[1]*aa+MM[2]*bb;t:=MM[3]*aa+MM[4]*bb;t:=MM[1]*MM[4]-MM[2]*MM[3]; # test L:=ced(aa,bb,nn-ep,w,e); MM:=[L[3],L[4],L[5],L[6]]; MM:=cedmulQM(Q,MM); M:=cedmulMM(M,MM); aa:=L[1]; bb:=L[2]; if aa<bb then aa:=aa+bb else bb:=bb+aa fi; # test t:=M[1]*aa+M[2]*bb;t:=M[3]*aa+M[4]*bb;t:=M[1]*M[4]-M[2]*M[3]; # test [L[1],L[2],M[1],M[2],M[3],M[4]]; end; Zio2J0kiYUc2IkkiYkdGJUkibkdGJUkid0dGJUkiZUdGJTYzSSNubkdGJUkjbnBHRiVJI2VwR0YlSSN3cEdGJUkjYWFHRiVJI2JiR0YlSSNhcEdGJUkjYnBHRiVJJGFwcEdGJUkkYnBwR0YlSSJmR0YlSSJzR0YlSSJMR0YlSSJNR0YlSSNNTUdGJUkiUUdGJUkidEdGJUYlRiVDWT5GNiomRigiIiIpSSJCR0YlRilGP0AkMUYnIiIjTy1JJXNjZWRHRiU2JUYkRiZGNj5GK0YnPkYvRiQ+RjBGJj5GLS1JJWNlaWxHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2IywkKiYjRj8iIiVGP0YrRj9GPz5GLCwkKiZGREY/Ri1GP0Y/QCQyLCZGK0Y/Ri0hIiJGKUMkPkYtLCZGK0Y/RilGZ25GVz5GNSlGQSwmRitGP0YsRmduPkYxLUkmZmxvb3JHRk82IyomRi9GP0Y1RmduPkYyLUZgbzYjKiZGMEY/RjVGZ24+RjMsJkYvRj8qJkYxRj9GNUY/RmduPkY0LCZGMEY/KiZGMkY/RjVGP0ZnbkAlLywmRilGP0YtRj9GKz5GLiwmRihGP0Y/Rj9DJD5GLkY/QCQzMUYtRikxLCZGK0Y/KiYiIiRGP0YtRj9GZ25GKUAkNTIpRkFGKywmRmlvRj8qJkYoRj8pRkFGX3BGP0Y/MkZecSwmRlxwRj9GYHFGPz5GLkZEQCUzMSomRi5GPylGQUYtRj9GMTFGaHFGMkMpPkY3LUkkY2VkR0YlNidGMUYyRixGLkYtPkY4NyYmRjc2I0ZqcCZGNzYjRlYmRjc2IyIiJiZGNzYjIiInPkYvJkY3NiNGPz5GMCZGNzYjRkRAJTJGL0YwPkYvLCZGL0Y/RjBGPz5GMEZlcz5GLywoKiZGL0Y/RjVGP0Y/KiYmRjhGZXJGP0YzRj9GPyomJkY4RmFzRj9GNEY/RmduPkYwLCgqJkYwRj9GNUY/Rj8qJiZGOEZjckY/RjNGP0ZnbiomJkY4Rl5zRj9GNEY/Rj8+Rjg3JkY/IiIhRmd0Rj8+RjssJiomRmR0Rj9GL0Y/Rj8qJkZddEY/RjBGP0Y/PkY7LCYqJkZidEY/Ri9GP0Y/KiZGW3RGP0YwRj9GPz5GOywmKiZGZHRGP0ZbdEY/Rj8qJkZddEY/RmJ0Rj9GZ24+Rjo3Ij8oRiVGP0Y/RiU1MSomRjVGP0ZpcUY/Ri8xRml1RjBDJz5GNy1JJnFzdGVwR0YlNiQ3KEYvRjBGP0ZndEZndEY/RjZGXHNGX3NAJDUyRi9GNjJGMEY2Qyo+RjctSSdjZWRyZXRHRiU2JC1JKWNlZG11bE1RR0YlNiRGOEY6RjdGXHNGX3NGYnM+RjssJiomRmJyRj9GL0Y/Rj8qJkZkckY/RjBGP0Y/PkY7LCYqJkZmckY/Ri9GP0Y/KiZGaXJGP0YwRj9GPz5GOywmKiZGYnJGP0ZpckY/Rj8qJkZkckY/RmZyRj9GZ25PRjc+Rjo3JC1JI29wR0ZQNiNGOjckRmRyRmZyPkY5Rmp2PkY7LCYqJiZGOUZec0Y/Ri9GP0Y/KiYmRjlGYXNGP0YwRj9GPz5GOywmKiYmRjlGY3JGP0YvRj9GPyomJkY5RmVyRj9GMEY/Rj8+RjssJiomRmR4Rj9GXHlGP0Y/KiZGZnhGP0ZqeEY/RmduPkYrRmZuRlpGW29GXm9GY29GZ29Gam9GXXBAJUZmcUMpRlxyPkY5RmFyRlxzRl9zRmJzPkYvLChGaXNGPyomRlx5Rj9GM0Y/Rj8qJkZmeEY/RjRGP0Znbj5GMCwoRmB0Rj8qJkZqeEY/RjNGP0ZnbiomRmR4Rj9GNEY/Rj8+RjlGZnQ+RjktSSljZWRtdWxRTUdGJTYkRjpGOT5GOC1JKWNlZG11bE1NR0YlNiRGOEY5Rmh0Rlx1RmB1RmR1RmZ1RmB4RmF4Rmd4Rl15PkY3LUZecjYnRi9GMEZmbkYoRilGZHlGXnpGYnpGXHNGX3NGYnNGaHRGXHVGYHU3KEZdc0Zgc0ZkdEZddEZidEZbdEYlRiVGJQ== debug(ced); SSRjZWRHNiI= ced(a,b,min_l(a,b),1,0); {--> enter ced, args = 314159265, 271828182, 8, 1, 0 IiIi IiIp IipsI2ZUSg== IiojPUc9Rg== IiIj IiIl IiZPYic= IiUkeiU= IiVaVA== IiY8XyU= IiYhUl0= IiIi {--> enter ced, args = 4793, 4147, 4, 1, 2 IiRjIw== IiIl IiUkeiU= IiVaVA== IiIi IiIj IiRjIw== IiM9 IiM7 IiQmPQ== IiNe IiIi {--> enter ced, args = 18, 16, 2, 1, 1 IiM7 {--> enter sced, args = 18, 16, 16 NygiIz0iIzsiIiIiIiFGJkYl NygiIiMiIzsiIiIiIiFGJkYl NygiIiMiIzsiIiIiIiFGJkYl <-- exit sced (now in ced) = [2, 16, 1, 0, 0, 1]} <-- exit ced (now in ced) = [2, 16, 1, 0, 0, 1]} NygiIiMiIzsiIiIiIiFGJkYl NyYiIiIiIiFGJEYj IiIj IiM7 IiM9 IiUkeiU= IiVaVA== IiUkeiU= IiVaVA== IiIi NyI= NygiJFknIiVaVCIiIkYlIiIhRiU= IiRZJw== IiVaVA== NyM3JCIiIiIiIQ== NygiJFknIiRyIyIiIiIiISIiJ0Yl IiRZJw== IiRyIw== NyQ3JCIiIiIiITckRiUiIic= NyYiIigiIiIiIidGJA== IiUkeiU= IiVaVA== IiIi IiIk IiM7 IiNT IiM7 IiIn IiM6 IiIj NyYiIiIiIiFGJEYj NyYiIigiIiIiIidGJA== NyYiIigiIiIiIidGJA== IiUkeiU= IiVaVA== IiIi NyI= NygiJC8iIiRyIyIiIkYlIiIhRiU= IiQvIg== IiRyIw== NygiJC8iIiRyIyIiKCIiKSIiJ0Yl IiQvIg== IiRyIw== IiR2JA== IiUkeiU= IiVaVA== IiIi <-- exit ced (now in ced) = [104, 271, 7, 8, 6, 7]} NygiJC8iIiRyIyIiKCIiKSIiJ0Yl NyYiIigiIikiIidGIw== IiQvIg== IiRyIw== IiR2JA== IikqUipbQw== Iiklb1R5Ig== IipsI2ZUSg== IiojPUc9Rg== IiIi NyI= NygiKDp4ayciKSVvVHkiIiIiRiUiIiFGJQ== Iig6eGsn Iiklb1R5Ig== NyM3JCIiIiIiIQ== NygiKDp4ayciKGFpYSUiIiIiIiEiIiNGJQ== Iig6eGsn IihhaWEl NyQ3JCIiIiIiITckRiUiIiM= NyYiI1AiIzoiI0siIzg= IipsI2ZUSg== IiojPUc9Rg== IiIi IiIn IiRjIw== IiZuZiM= IiZleCI= IiRqIg== IiQxIw== IiIi {--> enter ced, args = 25967, 17758, 4, 1, 2 IiRjIw== IiIl IiZuZiM= IiZleCI= IiIi IiIj IiRjIw== IiQsIg== IiNw IiQ2Ig== IiMlKg== IiIi {--> enter ced, args = 101, 69, 2, 1, 1 IiM7 {--> enter sced, args = 101, 69, 16 NygiJCwiIiNwIiIiIiIhRiZGJQ== NygiI0siI3AiIiJGJSIiIUYl NygiI0siIiYiIiMiIiJGJkYm NygiI0siIiYiIiMiIiJGJkYm <-- exit sced (now in ced) = [32, 5, 2, 1, 1, 1]} <-- exit ced (now in ced) = [32, 5, 2, 1, 1, 1]} NygiI0siIiYiIiMiIiJGJkYm NyYiIiMiIiJGJEYk IiNL IiIm IiNQ IiU0Iyk= IiVcJio= IiZuZiM= IiZleCI= IiIi NyI= NygiJTQjKSIlUzgiIiIiIiFGJUYl IiU0Iyk= IiVTOA== NyM3JCIiISIiIg== NygiJHAiIiVTOCIiIiIiJiIiIUYl IiRwIg== IiVTOA== NygiJHAiIiVTOCIiJCIjOyIiIyIjNg== IiRwIg== IiVTOA== IiU0Og== IiZuZiM= IiZleCI= IiIi <-- exit ced (now in ced) = [169, 1340, 3, 16, 2, 11]} NygiJHAiIiVTOCIiJCIjOyIiIyIjNg== NyYiIiQiIzsiIiMiIzY= IiRwIg== IiVTOA== IiU0Og== IicsW1E= IidLTE0= NyYiIzYiI2YiIikiI1Y= NyYiJFQiIiRkKCIkQSIiJGIn IipsI2ZUSg== IiojPUc9Rg== IiIi NyI= NygiJnA5JSInS0xNIiIiRiUiIiFGJQ== IiZwOSU= IidLTE0= NyM3JCIiIiIiIQ== NygiJnA5JSImIWU2IiIiIiIhIiIpRiU= IiZwOSU= IiYhZTY= NyQ3JCIiIiIiITckRiUiIik= NyYiJUR0IiQpKikiJVFqIiR4KA== IipsI2ZUSg== IiojPUc9Rg== IiIi {--> enter ced, args = 41469, 11580, 4, 1, 0 IiIi IiIl IiZwOSU= IiYhZTY= IiIi IiIj IiRjIw== IiRoIg== IiNY IiRgIw== IiNn IiIi {--> enter ced, args = 161, 45, 2, 1, 1 IiM7 {--> enter sced, args = 161, 45, 16 NygiJGgiIiNYIiIiIiIhRiZGJQ== NygiI0UiI1giIiIiIiQiIiFGJQ== NygiI0UiIz4iIiUiIiQiIiJGJw== NygiIigiIz4iIiUiIiQiIiJGJw== NygiIigiIz4iIiUiIiQiIiJGJw== <-- exit sced (now in ced) = [7, 19, 4, 3, 1, 1]} <-- exit ced (now in ced) = [7, 19, 4, 3, 1, 1]} NygiIigiIz4iIiUiIiQiIiJGJw== NyYiIiUiIiQiIiJGJQ== IiIo IiM+ IiNF IiVIbg== IiVeWw== IiZwOSU= IiYhZTY= IiIi NyI= NygiJXk9IiVeWyIiIkYlIiIhRiU= IiV5PQ== IiVeWw== NyM3JCIiIiIiIQ== NygiJXk9IiUmNCIiIiIiIiEiIiNGJQ== IiV5PQ== IiUmNCI= NyQ3JCIiIiIiITckRiUiIiM= NyYiIz0iIigiIiYiIiM= IiZwOSU= IiYhZTY= IiIi IiIk IiM7 IiQ8Ig== IiNv IiIn IiIo IiIi {--> enter ced, args = 117, 68, 2, 1, 1 IiM7 {--> enter sced, args = 117, 68, 16 NygiJDwiIiNvIiIiIiIhRiZGJQ== NygiI1wiI28iIiJGJSIiIUYl NygiI1wiIz4iIiMiIiJGJkYm NygiIzYiIz4iIiMiIiQiIiJGJQ== NygiIzYiIz4iIiMiIiQiIiJGJQ== <-- exit sced (now in ced) = [11, 19, 2, 3, 1, 2]} <-- exit ced (now in ced) = [11, 19, 2, 3, 1, 2]} NygiIzYiIz4iIiMiIiQiIiJGJQ== NyYiIiMiIiQiIiJGIw== IiM2 IiM+ IiNJ IiRyJQ== IiQ3JA== NyYiIigiIzYiIiYiIik= NyYiI1YiI28iIzciIz4= IiZwOSU= IiYhZTY= IiIi NyI= NygiJGYiIiQ3JCIiIkYlIiIhRiU= IiRmIg== IiQ3JA== NyM3JCIiIiIiIQ== NygiJGYiIiRgIiIiIiIiIUYlRiU= IiRmIg== IiRgIg== NyQ3JCIiIiIiITckRiVGJA== NyYiJGEiIiQ2IiIjViIjSg== IiZwOSU= IiYhZTY= IiIi {--> enter ced, args = 159, 153, 2, 1, 0 IiIi {--> enter sced, args = 159, 153, 1 NygiJGYiIiRgIiIiIiIiIUYmRiU= NygiIiciJGAiIiIiRiUiIiFGJQ== NygiIiciIiQiI0UiIiIiI0RGJg== NygiIiEiIiQiI0UiI0YiI0RGJQ== NygiIiEiIiQiI0UiI0YiI0RGJQ== <-- exit sced (now in ced) = [0, 3, 26, 27, 25, 26]} <-- exit ced (now in ced) = [0, 3, 26, 27, 25, 26]} NygiIiEiIiQiI0UiI0YiI0RGJQ== NyYiI0UiI0YiI0RGIw== NyYiI3giIyEpIiNeIiNg NyYiJXpuIiVXcSIlJCo9IiVuPg== IiIh IiIk IiIk IiZwOSU= IiYhZTY= IiIi NygiIiEiIiQiJXpuIiVXcSIlJCo9IiVuPg== <-- exit ced (now in ced) = [0, 3, 6779, 7044, 1893, 1967]} NygiIiEiIiQiJXpuIiVXcSIlJCo9IiVuPg== NyYiJXpuIiVXcSIlJCo9IiVuPg== NyYiJi9IJyImamAnIiZEaCYiJj4kZQ== NyYiKSozYzgmIiltT09gIilqaFZXIilKSzxZ IiIh IiIk IiIk IipsI2ZUSg== IiojPUc9Rg== IiIi NygiIiEiIiQiKSozYzgmIiltT09gIilqaFZXIilKSzxZ <-- exit ced (now at top level) = [0, 3, 51356089, 53363666, 44436163, 46173231]} NygiIiEiIiQiKSozYzgmIiltT09gIilqaFZXIilKSzxZ 3*(%[3]+%[4]),3*(%[5]+%[6]),%[3]*%[6]-%[4]*%[5]; NiUiKmwjZlRKIiojPUc9RiIiIg== ; ; # m is the number of clock cycles used to multiple an n-word number # by a one-word number m:='m'; m1:='m1'; m:=proc(n) m1*n end; # m1:=10; SSJtRzYi SSNtMUc2Ig== Zio2I0kibkc2IkYlRiVGJSomSSNtMUdGJSIiIkYkRihGJUYlRiU= m(2); LCQqJiIiIyIiIkkjbTFHNiJGJUYl # M is the number of clock cycles used to multiple two n-word numbers M:='M'; M1:='M1'; M:=proc(n) if n<=4 then n*n*M1 elif n<=512 then 2*3^log[2](n)*M1 else 15*n*log[2](n)*M1 fi end; # M1:=10; SSJNRzYi SSNNMUc2Ig== Zio2I0kibkc2IkYlRiVGJUAnMUYkIiIlKihGJCIiIkYkRipJI00xR0YlRioxRiQiJDcmLCQqKCIiI0YqKSIiJC0mSSRsb2dHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2I0YwRiNGKkYrRipGKiwkKioiIzpGKkYkRipGM0YqRitGKkYqRiVGJUYl n:=2^13; evalf(log[2](32*n)); evalf(M(n)); evalf(log[2](M(n)/(32*n))); IiUjPik= JCIjPSIiIQ== LCQqJiQiKFN1ZiIiIiEiIiJJI00xRzYiRidGJw== LCQqJiQiK1RdcFU5ISIqIiIiLUkjbG5HNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IywkKiYkIisrK3YkNCdGJkYnSSNNMUdGLUYnRidGJ0Yn # a is the number of clock cycles used to calculate sum or difference # of two n-word numbers a:='a'; a1:='a1'; a:=proc(n) n*a1 end; # a1:=6; SSJhRzYi SSNhMUc2Ig== Zio2I0kibkc2IkYlRiVGJSomRiQiIiJJI2ExR0YlRidGJUYlRiU= a(1024); LCQqJiIlQzUiIiJJI2ExRzYiRiVGJQ== # r is the number of clock cycles used to calculate remainder # by one-word quotient for two n-word numbers r:='r'; r1:='r1'; r:=proc(n) n*r1 end; # r1:=a1+m1; SSJyRzYi SSNyMUc2Ig== Zio2I0kibkc2IkYlRiVGJSomRiQiIiJJI3IxR0YlRidGJUYlRiU= r(1024); LCQqJiIlQzUiIiJJI3IxRzYiRiVGJQ== # q is the number of clock cycles used to calculate a one-word quotient q:='q'; # q:=60; SSJxRzYi # This the number of clock cycles used by ced to reduce a 2^n word # number to the half length C:=proc(n) 2*C(n-1)+8*q+4*m(2^n)+4*m(3*2^(n-2))+24*M(2^(n-2)) +16*a(2^(n-1))+58*c1 end; C(0):=300; C(1):=1000; # c1:=20 # for call Zio2I0kibkc2IkYlRiVGJSwwKiYiIiMiIiItSSJDR0YlNiMsJkYkRilGKSEiIkYpRikqJiIiKUYpSSJxR0YlRilGKSomIiIlRiktSSJtR0YlNiMpRihGJEYpRikqJkYzRiktRjU2IywkKiYiIiRGKSlGKCwmRiRGKUYoRi5GKUYpRilGKSomIiNDRiktSSJNR0YlNiNGPkYpRikqJiIjO0YpLUkiYUdGJTYjKUYoRi1GKUYpKiYiI2VGKUkjYzFHRiVGKUYpRiVGJUYl IiQrJA== IiUrNQ== C(2); LC4iJSs/IiIiKiYiIilGJEkicUc2IkYkRiQqJiIjR0YkSSNtMUdGKEYkRiQqJiIjQ0YkSSNNMUdGKEYkRiQqJiIjS0YkSSNhMUdGKEYkRiQqJiIjZUYkSSNjMUdGKEYkRiQ= C(3); LC4iJStTIiIiKiYiI0NGJEkicUc2IkYkRiQqJiIkNyJGJEkjbTFHRihGJEYkKiYiJFciRiRJI00xR0YoRiRGJComIiRHIkYkSSNhMUdGKEYkRiQqJiIkdSJGJEkjYzFHRihGJEYk C(4); LC4iJSshKSIiIiomIiNjRiRJInFHNiJGJEYkKiYiJE8kRiRJI20xR0YoRiRGJComIiRzJ0YkSSNNMUdGKEYkRiQqJiIkJVFGJEkjYTFHRihGJEYkKiYiJDElRiRJI2MxR0YoRiRGJA== C(5); LC4iJitnIiIiIiomIiQ/IkYkSSJxRzYiRiRGJComIiQnKilGJEkjbTFHRihGJEYkKiYiJVNFRiRJI00xR0YoRiRGJComIiVDNUYkSSNhMUdGKEYkRiQqJiIkcSlGJEkjYzFHRihGJEYk C(6); LC4iJis/JCIiIiomIiRbI0YkSSJxRzYiRiRGJComIiVTQUYkSSNtMUdGKEYkRiQqJiIlbyIqRiRJI00xR0YoRiRGJComIiVnREYkSSNhMUdGKEYkRiQqJiIlKXoiRiRJI2MxR0YoRiRGJA== C(7); LC4iJitTJyIiIiomIiQvJkYkSSJxRzYiRiRGJComIiV3YEYkSSNtMUdGKEYkRiQqJiImKyskRiRJI00xR0YoRiRGJComIiVXaEYkSSNhMUdGKEYkRiQqJiIlYU9GJEkjYzFHRihGJEYk C(8); LC4iJyshRyIiIiIqJiIlOzVGJEkicUc2IkYkRiQqJiImV0QiRiRJI20xR0YoRiRGJComIiYjKlwqRiRJI00xR0YoRiRGJComIiZPViJGJEkjYTFHRihGJEYkKiYiJW10RiRJI2MxR0YoRiRGJA== C(9); LC4iJytnRCIiIiomIiVTP0YkSSJxRzYiRiRGJComIiZzJ0dGJEkjbTFHRihGJEYkKiYiJ2dcSEYkSSNNMUdGKEYkRiQqJiImb0YkRiRJI2ExR0YoRiRGJComIiYhejlGJEkjYzFHRihGJEYk C(10); LC4iJys/XiIiIiomIiUpMyVGJEkicUc2IkYkRiQqJiImN1gnRiRJI20xR0YoRiRGJComIidbWyEqRiRJI00xR0YoRiRGJComIiZHUChGJEkjYTFHRihGJEYkKiYiJlEnSEYkSSNjMUdGKEYkRiQ= C(11); LC4iKCtTLSIiIiIqJiIlJT0pRiRJInFHNiJGJEYkKiYiJ2dMOUYkSSNtMUdGKEYkRiQqJiIoIVthRkYkSSNNMUdGKEYkRiQqJiInU1E7RiRJI2ExR0YoRiRGJComIiZNJGZGJEkjYzFHRihGJEYk C(12); LC4iKCshWz8iIiIqJiImd2oiRiRJInFHNiJGJEYkKiYiJyNSOiRGJEkjbTFHRihGJEYkKiYiKGdgPipGJEkjTTFHRihGJEYkKiYiJ1svT0YkSSNhMUdGKEYkRiQqJiInRSg9IkYkSSNjMUdGKEYkRiQ= C(13); LC4iKCtnNCUiIiIqJiImZ0YkRiRJInFHNiJGJEYkKiYiJ0ciKW9GJEkjbTFHRihGJEYkKiYiKSszXUVGJEkjTTFHRihGJEYkKiYiJ0treUYkSSNhMUdGKEYkRiQqJiInNXZCRiRJI2MxR0YoRiRGJA== C(14); LC4iKCs/PikiIiIqJiImR2InRiRJInFHNiJGJEYkKiYiKFc0XCJGJEkjbTFHRihGJEYkKiYiKT9qcHFGJEkjTTFHRihGJEYkKiYiKE9ScSJGJEkjYTFHRihGJEYkKiYiJ3ldWkYkSSNjMUdGKEYkRiQ= C(15); LC4iKStTUTsiIiIqJiInazU4RiRJInFHNiJGJEYkKiYiKGs3QCRGJEkjbTFHRihGJEYkKiYiKis3dHoiRiRJI00xR0YoRiRGJComIig7K24kRiRJI2ExR0YoRiRGJComIic5LSYqRiRJI2MxR0YoRiRGJA== C(16); LC4iKSshb0YkIiIiKiYiJ09ARUYkSSJxRzYiRiRGJComIighRyIpb0YkSSNtMUdGKEYkRiQqJiIqZ3guVSVGJEkjTTFHRihGJEYkKiYiKD9WJ3lGJEkjYTFHRihGJEYkKiYiKCdbKz5GJEkjYzFHRihGJEYk C(17); LC4iKStnYGwiIiIqJiInIUdDJkYkSSJxRzYiRiRGJComIilrK285RiRJI20xR0YoRiRGJComIis/Ri1oNUYkSSNNMUdGKEYkRiQqJiIpO3N4O0YkSSNhMUdGKEYkRiQqJiIoSTUhUUYkSSNjMUdGKEYkRiQ= interface(verboseproc=3); IiIk ;
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">8. Elliptikus f\303\274ggv\303\251nyek</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">9. Sz\303\241mol\303\241s elliptikus g\303\266rb\303\251ken</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">10. Faktoriz\303\241l\303\241s elliptikus g\303\266rb\303\251kkel</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">11. Pr\303\255mteszt elliptikus g\303\266rb\303\251kkel</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">12. Polinomfaktoriz\303\241l\303\241s</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1">13. Az AKS-teszt</Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">14. A szita m\303\263dszerek alapjai</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1"><Font encoding="UTF-8">15. Sz\303\241mtest szita</Font></Text-field>
<Text-field style="Heading 1" layout="Heading 1">16. Vegyes probl<Font encoding="UTF-8">\303\251</Font>m<Font encoding="UTF-8">\303\241</Font>k</Text-field>
LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEhRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0Yn