Changeset 0610f0e in git for Singular/LIB/aksaka.lib
- Timestamp:
- May 14, 2010, 6:55:39 PM (14 years ago)
- Branches:
- (u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
- Children:
- c6a37e587b929939b8736b96653178b2f7a6aef9
- Parents:
- f55c950f86cfcb5fbb7d28e7ef4ab01c06dcd337
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/aksaka.lib
rf55c95 r0610f0e 148 148 //bringen x zunaechst zwischen 1/sqrt(2) und sqrt(2), so dass Reihe schnell 149 149 //konvergiert, berechnen dann Reihe bis 30. Summanden und letztendlich 150 //log2(x)=log(x)/log(2)=(log(x/2^j)+j*log(2))/log(2) f ür große x151 //log2(x)=log(x)/log(2)=(log(x*2^j)-j*log(2))/log(2) f ür kleine x150 //log2(x)=log(x)/log(2)=(log(x/2^j)+j*log(2))/log(2) fuer grosse x 151 //log2(x)=log(x)/log(2)=(log(x*2^j)-j*log(2))/log(2) fuer kleine x 152 152 153 153 number j=0; … … 198 198 { 199 199 poly f=var(1)^2-r; //Wurzel wird als Nullstelle eines Polys 200 //mit proc nt_solve gen ähert200 //mit proc nt_solve genaehert 201 201 def B=basering; 202 202 ring R=(real,40),var(1),dp; … … 332 332 return(c); 333 333 } 334 if(r==n-1) // falls diese Bedingung erf üllt ist, ist335 // ggT(a,n)=1 f ür 0<a<=r, schritt 4 des ASK-Alg.334 if(r==n-1) // falls diese Bedingung erfuellt ist, ist 335 // ggT(a,n)=1 fuer 0<a<=r, schritt 4 des ASK-Alg. 336 336 { 337 337 if(printlevel>=1){"ggt(r,n)=1 fuer alle 1<r<n";pause();} … … 341 341 b=1; 342 342 343 while(k<=M2) //Beginn des Ordnungstests f ür aktuelles r343 while(k<=M2) //Beginn des Ordnungstests fuer aktuelles r 344 344 { 345 345 b=((b*n) mod r); 346 if(b==1) //tritt Bedingung ein so gilt f ür aktuelles r,k:346 if(b==1) //tritt Bedingung ein so gilt fuer aktuelles r,k: 347 347 //n^k=1 mod r 348 348 //tritt Bedingung ein, wird wegen k<=M2=intPart(log2(n)^2) 349 //r erh öht,k=0 gesetzt und Ordnung erneut untersucht350 //tritt diese Bedingung beim gr ößten k=intPart(log2(n)^2)349 //r erhoeht,k=0 gesetzt und Ordnung erneut untersucht 350 //tritt diese Bedingung beim groessten k=intPart(log2(n)^2) 351 351 //nicht ein, so ist ord_r_(n)>log2(n)^2 und Schleife 352 //wird nicht mehr ausgef ührt352 //wird nicht mehr ausgefuehrt 353 353 { 354 354 if(r==2147483647) 355 355 { 356 string e="error: r überschreitet integer Bereich und darf356 string e="error: r ueberschreitet integer Bereich und darf 357 357 nicht als Grad eines Polynoms verwendet werden"; 358 358 return(e); … … 360 360 r=r+1; 361 361 if(gcdN(n,r)!=1) //falls ggt ungleich eins, Teiler von n gefunden, 362 //wird aufgrund von Schritt 3 des ASK-Alg. f ür362 //wird aufgrund von Schritt 3 des ASK-Alg. fuer 363 363 //jeden Kandidaten r getestet 364 364 { … … 366 366 return(c); 367 367 } 368 if(r==n-1) //falls diese Bedingung erf üllt ist,368 if(r==n-1) //falls diese Bedingung erfuellt ist, 369 369 //ist n wegen Zeile 571 prim 370 //wird aufgrund von Schritt 4 des ASK-Alg. f ür370 //wird aufgrund von Schritt 4 des ASK-Alg. fuer 371 371 //jeden Kandidaten r getestet 372 372 { … … 375 375 } 376 376 377 k=0; //f ür neuen Kandidaten r, muss k für den378 //Ordnungstest zur ückgesetzt werden377 k=0; //fuer neuen Kandidaten r, muss k fuer den 378 //Ordnungstest zurueckgesetzt werden 379 379 } 380 380 k=k+1; … … 386 386 } 387 387 number l=1; // Zeile 603-628: Schritt 5 388 poly f,g; // Zeile 618 überprüft Gleichungen für388 poly f,g; // Zeile 618 ueberprueft Gleichungen fuer 389 389 // das jeweilige a 390 390 g=var(1)^r-1;
Note: See TracChangeset
for help on using the changeset viewer.