Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Clojure vs Java speed

0 views
Skip to first unread message

bugbear

unread,
Jul 29, 2009, 10:21:46 AM7/29/09
to
Oxide Scrubber wrote:
>
> And of course, the savings from using a smart algorithm beat a
> few-percent or even a few-tens-of-percent difference in raw execution
> speed anyday.
>
> (defn fib[n]
> (nth (map second (iterate (fn [[a b]] [b (+ a b)]) [0 1])) n))
>
> in clojure will be hugely faster than
>
> int fib (int n) {
> if (n == 0 || n == 1) return 1;
> return fib(n - 1) + fib(n - 2);
> }

void fibLogSlave(int n, int *Fn1, int *Fn)
{ int a, b, c, d;
if( n==1 )
{ *Fn1 = 0; *Fn = 1; }
else
{ fibLogSlave(n/2, &a, &b);
c = a*a+b*b;
d = b*(b+2*a);
if( n % 2 )/*n odd*/
{ *Fn1 = d; *Fn = c+d; }
else/*n even*/
{ *Fn1 = c; *Fn = d; }
} }


int fibonacciVF(int n)
{ int Fn1, Fn;
fibLogSlave(n, &Fn1, &Fn);
return Fn;
}

/* O(log(n)) time Fibonacci Function */

BugBear

0 new messages