X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Flib%2Fstd%2FPrelFloat.lhs;h=34d7e3f89386d824f51fe2ba078470fe1af8ed92;hb=c75dc9b327e279f94a43c17683136818e307df75;hp=250da00527eab360b36d671f10c7b8b53fcb1404;hpb=c516bab3ab96bfae58c5530ed3e4dd9424c3c5ac;p=ghc-hetmet.git diff --git a/ghc/lib/std/PrelFloat.lhs b/ghc/lib/std/PrelFloat.lhs index 250da00..34d7e3f 100644 --- a/ghc/lib/std/PrelFloat.lhs +++ b/ghc/lib/std/PrelFloat.lhs @@ -163,10 +163,10 @@ instance Fractional Float where fromRational x = fromRat x recip x = 1.0 / x +{-# RULES "truncate/Float->Int" truncate = float2Int #-} instance RealFrac Float where {-# SPECIALIZE properFraction :: Float -> (Int, Float) #-} - {-# SPECIALIZE truncate :: Float -> Int #-} {-# SPECIALIZE round :: Float -> Int #-} {-# SPECIALIZE ceiling :: Float -> Int #-} {-# SPECIALIZE floor :: Float -> Int #-} @@ -326,10 +326,10 @@ instance Floating Double where acosh x = log (x + (x+1.0) * sqrt ((x-1.0)/(x+1.0))) atanh x = log ((x+1.0) / sqrt (1.0-x*x)) +{-# RULES "truncate/Double->Int" truncate = double2Int #-} instance RealFrac Double where {-# SPECIALIZE properFraction :: Double -> (Int, Double) #-} - {-# SPECIALIZE truncate :: Double -> Int #-} {-# SPECIALIZE round :: Double -> Int #-} {-# SPECIALIZE ceiling :: Double -> Int #-} {-# SPECIALIZE floor :: Double -> Int #-} @@ -827,6 +827,7 @@ int2Double (I# x) = D# (int2Double# x) double2Float :: Double -> Float double2Float (D# x) = F# (double2Float# x) + float2Double :: Float -> Double float2Double (F# x) = D# (float2Double# x)