Implementation | Time |
---|---|
clang 3.3 | 0.40s |
luajit 2.0.2 | 0.86s |
GHC 7.6.3 | 0.49s |
Node 0.10.22 | 2.43s |
Implementation by Mehul Tikekar.
$ clang -v
clang version 3.3 (tags/RELEASE_33/final)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
$ clang -O3 collatz.c -o collatz
$ time ./collatz 1000000
(329, 837799)
0.40 real 0.39 user 0.00 sys
Written by me, equivalent to Mehul Tikekar's Cython implemenation.
$ luajit -v
LuaJIT 2.0.2 -- Copyright (C) 2005-2013 Mike Pall. http://luajit.org/
$ time luajit collatz.lua 1000000
329 837799
0.86 real 0.85 user 0.00 sys
Mehul Tikekar's second implementation, using lenIterWhile
(combines the three lists into one without generating any intermediate lists).
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
$ ghc -O3 -fllvm collatz1.hs
$ time ./collatz1 1000000
(329,837799)
0.49 real 0.47 user 0.00 sys
Written by me, equivalent to Mehul Tikekar's Cython implemenation.
$ node --version
v0.10.22
$ node -e "console.log(process.versions.v8)"
3.14.5.9
$ time node collatz.js 1000000
[ 329, 837799 ]
2.43 real 2.37 user 0.03 sys