From 798c6feac22d94019e1247ec57c17fe3bc29fdb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Wed, 17 Feb 2021 23:10:32 +0100 Subject: add fibonacci benchmark --- progs/bench/fib.sy | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 progs/bench/fib.sy (limited to 'progs/bench/fib.sy') diff --git a/progs/bench/fib.sy b/progs/bench/fib.sy new file mode 100644 index 0000000..a6504bf --- /dev/null +++ b/progs/bench/fib.sy @@ -0,0 +1,10 @@ +// The worst implementation of fibonacci calculations +// possible. FYI, it can be done in constant time. +fib :: fn a:int -> int { + if a < 2 { + ret a + } + ret fib(a - 1) + fib(a - 2) +} +// 23 is around where things start getting slow. +fib(28) <=> 317811 -- cgit v1.2.1 From 51949c9a917385cff9925830a45bd78385930686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Wed, 17 Feb 2021 23:48:32 +0100 Subject: lower the times to something more maintainable --- progs/bench/fib.sy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'progs/bench/fib.sy') diff --git a/progs/bench/fib.sy b/progs/bench/fib.sy index a6504bf..bd1aaa4 100644 --- a/progs/bench/fib.sy +++ b/progs/bench/fib.sy @@ -7,4 +7,4 @@ fib :: fn a:int -> int { ret fib(a - 1) + fib(a - 2) } // 23 is around where things start getting slow. -fib(28) <=> 317811 +fib(23) <=> 28657 -- cgit v1.2.1 From 367d7b32a2825f6e4c8ef3b5423ceb1cd2b62bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Thu, 18 Feb 2021 20:12:06 +0100 Subject: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gustav Sörnäs --- progs/bench/fib.sy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'progs/bench/fib.sy') diff --git a/progs/bench/fib.sy b/progs/bench/fib.sy index bd1aaa4..de68f5c 100644 --- a/progs/bench/fib.sy +++ b/progs/bench/fib.sy @@ -1,4 +1,4 @@ -// The worst implementation of fibonacci calculations +// The worst implementation of Fibonacci calculations // possible. FYI, it can be done in constant time. fib :: fn a:int -> int { if a < 2 { -- cgit v1.2.1