diff options
author | Volker Lendecke <vl@samba.org> | 2008-09-19 08:01:23 +0200 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2008-12-17 12:57:18 +0100 |
commit | 390f19b649b85a8f8ab762c6a4e9d1a3d23d3f47 (patch) | |
tree | 9f9506e36222640d23b086d62b32de940c526a98 /source3/lua-5.1.4/test/fib.lua | |
parent | 081f8883bafc11ca7c08f868ec19f1ea32071837 (diff) | |
download | samba-390f19b649b85a8f8ab762c6a4e9d1a3d23d3f47.tar.gz samba-390f19b649b85a8f8ab762c6a4e9d1a3d23d3f47.tar.bz2 samba-390f19b649b85a8f8ab762c6a4e9d1a3d23d3f47.zip |
Add the Lua distibution from http://www.lua.org/ftp/lua-5.1.4.tar.gz
Available under the MIT license.
Adding it to see how the build farm likes it. They claim to be 100% pure
ANSI C and compile everywhere. Lets see. If it breaks badly, we can remove
it again.
Diffstat (limited to 'source3/lua-5.1.4/test/fib.lua')
-rw-r--r-- | source3/lua-5.1.4/test/fib.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/source3/lua-5.1.4/test/fib.lua b/source3/lua-5.1.4/test/fib.lua new file mode 100644 index 0000000000..97a921b132 --- /dev/null +++ b/source3/lua-5.1.4/test/fib.lua @@ -0,0 +1,40 @@ +-- fibonacci function with cache + +-- very inefficient fibonacci function +function fib(n) + N=N+1 + if n<2 then + return n + else + return fib(n-1)+fib(n-2) + end +end + +-- a general-purpose value cache +function cache(f) + local c={} + return function (x) + local y=c[x] + if not y then + y=f(x) + c[x]=y + end + return y + end +end + +-- run and time it +function test(s,f) + N=0 + local c=os.clock() + local v=f(n) + local t=os.clock()-c + print(s,n,v,t,N) +end + +n=arg[1] or 24 -- for other values, do lua fib.lua XX +n=tonumber(n) +print("","n","value","time","evals") +test("plain",fib) +fib=cache(fib) +test("cached",fib) |