commit 55f49a7e56fb094e45fa7bfe978cdda7c11f8634
Author: Tomas Hlavaty <tom@logand.com>
Date: Sat, 16 Oct 2010 13:59:32 +0200
Initial commit
Diffstat:
9 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
@@ -0,0 +1,19 @@
+all: fibo40
+
+fibo40: fibo40.c
+ gcc -O2 -o fibo40 fibo40.c
+
+bench:
+ cat fibo25.l | time ~/lisp/picoLisp-3.0.4/bin/picolisp
+ cat fibo30.l | time ~/lisp/picoLisp-3.0.4/bin/picolisp
+ cat fibo40.l | time ~/lisp/picoLisp-3.0.4/bin/picolisp
+ cat fibo25.lua | time lua
+ cat fibo30.lua | time lua
+ cat fibo40.lua | time lua
+ cat fibo25.lua | time luajit-2.0.0-beta2
+ cat fibo30.lua | time luajit-2.0.0-beta2
+ cat fibo40.lua | time luajit-2.0.0-beta2
+ time ./fibo40
+
+clean:
+ rm -f *~ *.o fibo40
diff --git a/README b/README
@@ -0,0 +1,7 @@
+-*- org -*-
+
+| | pil64-3.0.4 | lua-5.1 | luajit-2.0.0 | c -O2 |
+|---------+-------------+---------+--------------+-------|
+| fibo 25 | 0.03 | 0.02 | 0.02 | |
+| fibo 30 | 0.27 | 0.19 | 0.08 | |
+| fibo 40 | 31.08 | 22.70 | 8.82 | 1.31 |
diff --git a/fibo25.l b/fibo25.l
@@ -0,0 +1,6 @@
+(de fibo (N)
+ (if (> 2 N)
+ 1
+ (+ (fibo (dec N)) (fibo (- N 2))) ) )
+(fibo 25)
+(bye)
diff --git a/fibo25.lua b/fibo25.lua
@@ -0,0 +1,9 @@
+fib = function(n)
+ if n < 3 then
+ return n
+ else
+ return fib(n - 1) + fib(n - 2)
+ end
+end
+
+print(fib(25))
diff --git a/fibo30.l b/fibo30.l
@@ -0,0 +1,6 @@
+(de fibo (N)
+ (if (> 2 N)
+ 1
+ (+ (fibo (dec N)) (fibo (- N 2))) ) )
+(fibo 30)
+(bye)
diff --git a/fibo30.lua b/fibo30.lua
@@ -0,0 +1,9 @@
+fib = function(n)
+ if n < 3 then
+ return n
+ else
+ return fib(n - 1) + fib(n - 2)
+ end
+end
+
+print(fib(30))
diff --git a/fibo40.c b/fibo40.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+static int fibo(int n) {
+ if(n < 3) return n;
+ else return fibo(n - 1) + fibo(n - 2);
+}
+
+int main() {
+ printf("%d\n", fibo(40));
+ return 0;
+}
diff --git a/fibo40.l b/fibo40.l
@@ -0,0 +1,6 @@
+(de fibo (N)
+ (if (> 2 N)
+ 1
+ (+ (fibo (dec N)) (fibo (- N 2))) ) )
+(fibo 40)
+(bye)
diff --git a/fibo40.lua b/fibo40.lua
@@ -0,0 +1,9 @@
+fib = function(n)
+ if n < 3 then
+ return n
+ else
+ return fib(n - 1) + fib(n - 2)
+ end
+end
+
+print(fib(40))