Doug Quale <[EMAIL PROTECTED]> writes: > Mathew Mills <[EMAIL PROTECTED]> writes: > > > Is there anything that can be done (easily) to reduce the rounding errors? > > The hint that I gave before is one easy way. > > > fib :: Integer -> Integer > > fib x = let phi = ( 1 + sqrt 5 ) / 2 > > in truncate( ( 1 / sqrt 5 ) * ( phi ^ x + 0.5) ) > > You run out of precision eventually. IEEE Double's give you about 15 > decimal digits, so the results become approximate for x > 75.
Sorry, I suffered brain lock. The correct expression is parenthesized differently: > fib n = truncate(phi^n/sqrt 5 + 0.5) > where phi = (1 + sqrt 5)/2 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe