Sha256: 46a8dd3ea30d7740654740264304f8be320b6c9aeaf7c9100c1051e3d1733d67

Contents?: true

Size: 605 Bytes

Versions: 23

Compression:

Stored size: 605 Bytes

Contents

-- 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)

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
dub-1.0.0 test/fixtures/app/vendor/lua/test/fib.lua
dub-0.7.0 test/fixtures/app/vendor/lua/test/fib.lua
Tamar-0.7.18 src/lua/test/fib.lua
Tamar-0.7.17 src/lua/test/fib.lua
Tamar-0.7.16 src/lua/test/fib.lua
Tamar-0.7.14 src/lua/test/fib.lua
Tamar-0.7.13 src/lua/test/fib.lua
Tamar-0.7.12 src/lua/test/fib.lua
Tamar-0.7.11 src/lua/test/fib.lua
Tamar-0.7.10 src/lua/test/fib.lua
Tamar-0.7.9 src/lua/test/fib.lua
Tamar-0.7.8 src/lua/test/fib.lua
Tamar-0.7.7 src/lua/test/fib.lua
Tamar-0.7.6 src/lua/test/fib.lua
dub-0.6.6 test/fixtures/app/vendor/lua/test/fib.lua
dub-0.6.5 test/fixtures/app/vendor/lua/test/fib.lua
dub-0.6.4 test/fixtures/app/vendor/lua/test/fib.lua
dub-0.6.3 test/fixtures/app/vendor/lua/test/fib.lua
dub-0.6.2 test/fixtures/app/vendor/lua/test/fib.lua
dub-0.6.1 test/fixtures/app/vendor/lua/test/fib.lua