summaryrefslogtreecommitdiffstats
path: root/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js
diff options
context:
space:
mode:
Diffstat (limited to 'PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js')
-rw-r--r--PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js
new file mode 100644
index 0000000..d082d79
--- /dev/null
+++ b/PerformanceTests/SunSpider/tests/sunspider-0.9.1/math-partial-sums.js
@@ -0,0 +1,33 @@
+// The Computer Language Shootout
+// http://shootout.alioth.debian.org/
+// contributed by Isaac Gouy
+
+function partial(n){
+ var a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0.0;
+ var twothirds = 2.0/3.0;
+ var alt = -1.0;
+ var k2 = k3 = sk = ck = 0.0;
+
+ for (var k = 1; k <= n; k++){
+ k2 = k*k;
+ k3 = k2*k;
+ sk = Math.sin(k);
+ ck = Math.cos(k);
+ alt = -alt;
+
+ a1 += Math.pow(twothirds,k-1);
+ a2 += Math.pow(k,-0.5);
+ a3 += 1.0/(k*(k+1.0));
+ a4 += 1.0/(k3 * sk*sk);
+ a5 += 1.0/(k3 * ck*ck);
+ a6 += 1.0/k;
+ a7 += 1.0/k2;
+ a8 += alt/k;
+ a9 += alt/(2*k -1);
+ }
+}
+
+for (var i = 1024; i <= 16384; i *= 2) {
+ partial(i);
+}
+