Almkvist-Giullera formula for pi: Difference between revisions
m
→{{header|Haskell}}: Formatting; switch from mapM_ to forM_ for legibility
m (→{{header|Haskell}}: Fix names.) |
m (→{{header|Haskell}}: Formatting; switch from mapM_ to forM_ for legibility) |
||
Line 580:
{{libheader|numbers}}
{{trans|Common Lisp}}
<lang haskell>import
import Data.Number.CReal
import GHC.Integer
import Text.Printf
Line 597 ⟶ 598:
-- The almkvistGiulleraIntegral part of the Nth term in the Almkvist-Giullera series
almkvistGiulleraIntegral :: Integer -> Integer
almkvistGiulleraIntegral n =
let polynomial = (532 `timesInteger` n `timesInteger` n) `plusInteger` (126 `timesInteger` n) `plusInteger` 9
numerator = 32 `timesInteger` (facInteger (6 `timesInteger` n)) `timesInteger` polynomial
Line 622 ⟶ 623:
iterations = 52
main :: IO ()
main = do
"Integral part of Nth term" "×10^" "=Actual value of Nth term"
forM_ [0..9] $ \n ->
printf "%d. %44d %4d %s\n" n
(almkvistGiulleraIntegral n)
(tenExponent n)
(showCReal 50 (almkvistGiullera n))
printf "\nPi after %d iterations:\n" iterations
putStrLn $ showCReal 70 $ almkvistGiulleraPi iterations</lang>
{{Out}}
|