sunspider-math-partial-sums.js 685 B

123456789101112131415161718192021222324252627282930313233343536
  1. // The Computer Language Shootout
  2. // http://shootout.alioth.debian.org/
  3. // contributed by Isaac Gouy
  4. function partial(n){
  5. var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
  6. var twothirds = 2.0/3.0;
  7. var alt = -1.0;
  8. var k2 = k3 = sk = ck = 0.0;
  9. for (var k = 1; k <= n; k++){
  10. k2 = k*k;
  11. k3 = k2*k;
  12. sk = Math.sin(k);
  13. ck = Math.cos(k);
  14. alt = -alt;
  15. a1 += Math.pow(twothirds,k-1);
  16. a2 += Math.pow(k,-0.5);
  17. a3 += 1.0/(k*(k+1.0));
  18. a4 += 1.0/(k3 * sk*sk);
  19. a5 += 1.0/(k3 * ck*ck);
  20. a6 += 1.0/k;
  21. a7 += 1.0/k2;
  22. a8 += alt/k;
  23. a9 += alt/(2*k -1);
  24. }
  25. }
  26. startTest("sunspider-math-partial-sums");
  27. test( "Partial Sums", function(){
  28. partial(2048);
  29. });
  30. endTest();