js/src/devtools/jint/sunspider/bitops-nsieve-bits.js

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:10d4835071d4
1 // The Great Computer Language Shootout
2 // http://shootout.alioth.debian.org
3 //
4 // Contributed by Ian Osgood
5
6 function pad(n,width) {
7 var s = n.toString();
8 /* BEGIN LOOP */
9 while (s.length < width) s = ' ' + s;
10 /* END LOOP */
11 return s;
12 }
13
14 function primes(isPrime, n) {
15 var i, count = 0, m = 10000<<n, size = m+31>>5;
16
17 /* BEGIN LOOP */
18 for (i=0; i<size; i++) isPrime[i] = 0xffffffff;
19 /* END LOOP */
20
21 /* BEGIN LOOP */
22 for (i=2; i<m; i++)
23 if (isPrime[i>>5] & 1<<(i&31)) {
24 /* BEGIN LOOP */
25 for (var j=i+i; j<m; j+=i)
26 isPrime[j>>5] &= ~(1<<(j&31));
27 /* END LOOP */
28 count++;
29 }
30 /* END LOOP */
31 }
32
33 function sieve() {
34 /* BEGIN LOOP */
35 for (var i = 4; i <= 4; i++) {
36 var isPrime = new Array((10000<<i)+31>>5);
37 primes(isPrime, i);
38 }
39 /* END LOOP */
40 }
41
42 sieve();

mercurial