# Differences

This shows you the differences between two versions of the page.

 — wiki:scripting_portal:lsl_partial_sums_benchmark [2018/11/04 00:32] (current)Royale Mobian created 2018/11/04 00:32 Royale Mobian created 2018/11/04 00:32 Royale Mobian created Line 1: Line 1: + ====== LSL Partial Sums Benchmark ====== + + // + //   The Computer Language Shootout + //   ​http://​shootout.alioth.debian.org/​ + // + //   ​contributed by Isaac Gouy + //   ​modified by Babbage Linden + // + + test() + { + integer n = 250; + + float twothirds = 2.0/3.0; + + float a1 = 0.0; + float a2 = 0.0; + float a3 = 0.0; + float a4 = 0.0; + float a5 = 0.0; + float a6 = 0.0; + float a7 = 0.0; + float a8 = 0.0; + float a9 = 0.0; + float alt = -1.0; + + integer k=0; + while (n >= (++k)) + { + float k2 = llPow(k,2); + float k3 = k2*k; + float sk = llSin(k); + float ck = llCos(k); + alt = -alt; + + a1 += llPow(twothirds,​k-1);​ + a2 += llPow(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.0*k -1.0); + } + + llSay(0, (string)a1 + " (2/​3)^k"​);​ + llSay(0, (string)a2 + " k^-0.5"​);​ + llSay(0, (string)a3 + " 1/​k(k+1)"​);​ + llSay(0, (string)a4 + " Flint Hills"​);​ + llSay(0, (string)a5 + " Cookson Hills"​);​ + llSay(0, (string)a6 + " Harmonic"​);​ + llSay(0, (string)a7 + " Riemann Zeta"​);​ + llSay(0, (string)a8 + " Alternating Harmonic"​);​ + llSay(0, (string)a9 + " Gregory"​);​ + } + + time() + { + llResetTime();​ + llSay(0, "​Starting tests..."​);​ + test(); + llSay(0, "​Finished tests in " + (string)llGetTime() + "​s"​);​ + + } + + default + { + state_entry() + { + time(); + } + + touch_start(integer num) + { + time(); + } + } +