Hello all. I am writing a simple program to compute pi, using the well-known and inefficient series: pi ~= 4(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ... and the program is: pie :: Int -> Double pie n | n==1 = 4 | n==1005 = 2/fromInt n - 4/(fromInt n - 2) + pie(n-4) | otherwise = pie(n-4) + 4/fromInt n - 4/(fromInt n - 2) and this gives, using Hugs Version November 2002, Main> pie 1005 3.14159 Now, if I change the number of terms to be about 10 times as many, by changing the program to: pie :: Int -> Double pie n | n==1 = 4 | n==10005 = 2/fromInt n - 4/(fromInt n - 2) + pie(n-4) | otherwise = pie(n-4) + 4/fromInt n - 4/(fromInt n - 2) I get the LESS-accurate result: Main> pie 10005 3.1416 This would seem to be a bug, but I am not sending it to the bug list in case I'm doing something wrong with Haskell or Hugs, or am mistaken with my program. Any comments? Thanks. John Mann ===== "I'd rather be debugging...." - Anon __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com