blob: b8ce1ba83edb064b9175c2c162084b989f730e88 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
main = do
-- NOTE: the `abs` is to compensate for WAY=optllvm
-- having a positive sign for 0/0
putStrLn "## Double ##"
print $ idRational ( 1/0 :: Double)
print $ idRational (-1/0 :: Double)
print $ abs $ idRational ( 0/0 :: Double)
print $ idReencode ( 1/0 :: Double)
print $ idReencode (-1/0 :: Double)
print $ abs $ idReencode ( 0/0 :: Double)
putStrLn "## Float ##"
print $ idRational ( 1/0 :: Float)
print $ idRational (-1/0 :: Float)
print $ abs $ idRational ( 0/0 :: Float)
print $ idReencode ( 1/0 :: Float)
print $ idReencode (-1/0 :: Float)
print $ abs $ idReencode ( 0/0 :: Float)
where
idRational :: (Real a, Fractional a) => a -> a
idRational = fromRational . toRational
idReencode :: (RealFloat a) => a -> a
idReencode = uncurry encodeFloat . decodeFloat
|