Re:An example of fast numerical computation using Haskell
by xdenser on Saturday November 30, 2013 @10:54AM
(#6823433)
my 2 cents to defend NodeJs
329 837799
naive 3.06 sec
329 837799
decompozed 3.03 sec
329 837799
memoized decompozed 0.52 sec
The program
https://gist.github.com/xdenser/7722083
Re:An example of fast numerical computation using Haskell
by dbaupp on Saturday November 30, 2013 @05:46PM
(#6825023)
Presumably the Lua, c and Haskell programs would also be 6× faster if you use the memoised algorithm, so that's a pretty meaningless comparison.
Re:An example of fast numerical computation using Haskell
by xdenser on Sunday December 01, 2013 @10:49AM
(#6827700)
Ok
this intArithm variant (w/o memoization) for NodeJS is 6 times faster (0.54 sec)
comparing to naive
function intArithm(){
var
max_a0 = +process.argv[2],
longest = 0,
max_len = 0, a0,len, a,z;
for(a0=1;a0<=max_a0;++a0){
a = a0;
len = 0;
while( a != 1){
len++;
z = a >>> 1;
a = (!(a&1))?z:(a+z+1);
}
if(len>max_len){
max_len = len;
longest = a0;
}
}
console.log(max_len,longest);
}
the problem was with division by 2 operation which is not integer in js. So replacing it with shift >>> makes the trick.
Formula optimization gives additional 200 ms.And I doubt memoized c or lua variant will be 6 times faster than non-memoized. As it is not that linear.
Then, I implemented it in Lua and JS and compared their performance to C and Haskell. It's not meant to be a (good) benchmark. Here you go: https://gist.github.com/killercup/7718804
tl;dr