js/src/devtools/jint/sunspider/math-partial-sums.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/devtools/jint/sunspider/math-partial-sums.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,37 @@
     1.4 +// The Computer Language Shootout
     1.5 +// http://shootout.alioth.debian.org/
     1.6 +// contributed by Isaac Gouy
     1.7 +
     1.8 +function partial(n){
     1.9 +    var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
    1.10 +    var twothirds = 2.0/3.0;
    1.11 +    var alt = -1.0;
    1.12 +    var k2 = k3 = sk = ck = 0.0;
    1.13 +    
    1.14 +  /* BEGIN LOOP */
    1.15 +    for (var k = 1; k <= n; k++){
    1.16 +        k2 = k*k;
    1.17 +        k3 = k2*k;
    1.18 +        sk = Math.sin(k);
    1.19 +        ck = Math.cos(k);
    1.20 +        alt = -alt;
    1.21 +        
    1.22 +        a1 += Math.pow(twothirds,k-1);
    1.23 +        a2 += Math.pow(k,-0.5);
    1.24 +        a3 += 1.0/(k*(k+1.0));
    1.25 +        a4 += 1.0/(k3 * sk*sk);
    1.26 +        a5 += 1.0/(k3 * ck*ck);
    1.27 +        a6 += 1.0/k;
    1.28 +        a7 += 1.0/k2;
    1.29 +        a8 += alt/k;
    1.30 +        a9 += alt/(2*k -1);
    1.31 +    }
    1.32 +  /* END LOOP */
    1.33 +}
    1.34 +
    1.35 +  /* BEGIN LOOP */
    1.36 +for (var i = 1024; i <= 16384; i *= 2) {
    1.37 +    partial(i);
    1.38 +}
    1.39 +  /* END LOOP */
    1.40 +

mercurial