1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/sunspider/check-bitops-nsieve-bits.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,40 @@ 1.4 +// The Great Computer Language Shootout 1.5 +// http://shootout.alioth.debian.org 1.6 +// 1.7 +// Contributed by Ian Osgood 1.8 + 1.9 +var result = []; 1.10 + 1.11 +function pad(n,width) { 1.12 + var s = n.toString(); 1.13 + while (s.length < width) s = ' ' + s; 1.14 + return s; 1.15 +} 1.16 + 1.17 +function primes(isPrime, n) { 1.18 + var i, count = 0, m = 10000<<n, size = m+31>>5; 1.19 + 1.20 + for (i=0; i<size; i++) isPrime[i] = 0xffffffff; 1.21 + 1.22 + for (i=2; i<m; i++) 1.23 + if (isPrime[i>>5] & 1<<(i&31)) { 1.24 + for (var j=i+i; j<m; j+=i) 1.25 + result.push(isPrime[j>>5] &= ~(1<<(j&31))); 1.26 + count++; 1.27 + } 1.28 +} 1.29 + 1.30 +function sieve() { 1.31 + for (var i = 4; i <= 4; i++) { 1.32 + var isPrime = new Array((10000<<i)+31>>5); 1.33 + primes(isPrime, i); 1.34 + } 1.35 +} 1.36 + 1.37 +sieve(); 1.38 + 1.39 +var ret = 0; 1.40 +for (var i = 0; i < result.length; ++i) 1.41 + ret += result[i]; 1.42 + 1.43 +assertEq(ret, -211235557404919)