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