15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// The Computer Language Shootout
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// http://shootout.alioth.debian.org/
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// contributed by Isaac Gouy
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)function partial(n){
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    var twothirds = 2.0/3.0;
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    var alt = -1.0;
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    var k2 = k3 = sk = ck = 0.0;
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    for (var k = 1; k <= n; k++){
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        k2 = k*k;
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        k3 = k2*k;
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        sk = Math.sin(k);
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        ck = Math.cos(k);
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        alt = -alt;
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a1 += Math.pow(twothirds,k-1);
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a2 += Math.pow(k,-0.5);
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a3 += 1.0/(k*(k+1.0));
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a4 += 1.0/(k3 * sk*sk);
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a5 += 1.0/(k3 * ck*ck);
235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a6 += 1.0/k;
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a7 += 1.0/k2;
255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a8 += alt/k;
265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a9 += alt/(2*k -1);
275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    }
285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)for (var i = 1024; i <= 16384; i *= 2) {
315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    partial(i);
325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
34