packages feed

exact-real-0.8.0.0: bench/Bench.hs

module Main where

import Criterion.Main
import Data.CReal.Internal

main :: IO ()
main = defaultMain [ bgroup "pi" [ bench "0"    $ whnf (pi `atPrecision`) 0
                                 , bench "4"    $ whnf (pi `atPrecision`) 4
                                 , bench "16"   $ whnf (pi `atPrecision`) 16
                                 , bench "64"   $ whnf (pi `atPrecision`) 64
                                 , bench "256"  $ whnf (pi `atPrecision`) 256
                                 , bench "1024" $ whnf (pi `atPrecision`) 1024
                                 ]
                   , bgroup "sin 1" [ bench "0"    $ whnf (sin 1 `atPrecision`) 0
                                    , bench "4"    $ whnf (sin 1 `atPrecision`) 4
                                    , bench "16"   $ whnf (sin 1 `atPrecision`) 16
                                    , bench "64"   $ whnf (sin 1 `atPrecision`) 64
                                    , bench "256"  $ whnf (sin 1 `atPrecision`) 256
                                    , bench "1024" $ whnf (sin 1 `atPrecision`) 1024
                                 ]
                   , bgroup "sin (π/4)" [ bench "0"    $ whnf (sin (pi/4) `atPrecision`) 0
                                        , bench "4"    $ whnf (sin (pi/4) `atPrecision`) 4
                                        , bench "16"   $ whnf (sin (pi/4) `atPrecision`) 16
                                        , bench "64"   $ whnf (sin (pi/4) `atPrecision`) 64
                                        , bench "256"  $ whnf (sin (pi/4) `atPrecision`) 256
                                        , bench "1024" $ whnf (sin (pi/4) `atPrecision`) 1024
                                 ]
                   , bgroup "asin (π/4)" [ bench "0"    $ whnf (asin (pi/4) `atPrecision`) 0
                                         , bench "4"    $ whnf (asin (pi/4) `atPrecision`) 4
                                         , bench "16"   $ whnf (asin (pi/4) `atPrecision`) 16
                                         , bench "64"   $ whnf (asin (pi/4) `atPrecision`) 64
                                         , bench "256"  $ whnf (asin (pi/4) `atPrecision`) 256
                                         , bench "1024" $ whnf (asin (pi/4) `atPrecision`) 1024
                                 ]
                                 ]