hmpfr 0.4.1 → 0.4.2
raw patch · 6 files changed
+70/−1 lines, 6 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Number.MPFR.Instances.Down: instance GHC.Float.RealFloat Data.Number.MPFR.FFIhelper.MPFR
+ Data.Number.MPFR.Instances.Near: instance GHC.Float.RealFloat Data.Number.MPFR.FFIhelper.MPFR
+ Data.Number.MPFR.Instances.Up: instance GHC.Float.RealFloat Data.Number.MPFR.FFIhelper.MPFR
+ Data.Number.MPFR.Instances.Zero: instance GHC.Float.RealFloat Data.Number.MPFR.FFIhelper.MPFR
Files
- ChangeLog +1/−0
- hmpfr.cabal +1/−1
- src/Data/Number/MPFR/Instances/Down.hs +17/−0
- src/Data/Number/MPFR/Instances/Near.hs +17/−0
- src/Data/Number/MPFR/Instances/Up.hs +17/−0
- src/Data/Number/MPFR/Instances/Zero.hs +17/−0
ChangeLog view
@@ -1,3 +1,4 @@+0.4.2: 2nd Sep 2016: Added RealFloat instances 0.4.1: 2nd Aug 2016: Added support for digamma 0.4.: 11th Jul 2016: Compiles only with ghc 7.10 or newer 0.3.3: 22 Dec 2011: Compiles with both integer-simple and integer-gmp (but mis-behaves with standard integer-gmp).
hmpfr.cabal view
@@ -1,5 +1,5 @@ name: hmpfr-version: 0.4.1+version: 0.4.2 synopsis: Haskell binding to the MPFR library description: Haskell binding to the MPFR library.
src/Data/Number/MPFR/Instances/Down.hs view
@@ -98,3 +98,20 @@ e = denominator r n = quot m e f = frac Down (getPrec d) d++instance RealFloat MPFR where+ floatRadix _ = 2+ floatDigits = fromInteger . toInteger . getPrec+ floatRange _ = error "floatRange is not defined for MPFR numbers"+ decodeFloat x = (d,e)+ where+ (d,eE) = decompose x+ e = fromInteger (toInteger eE)+ encodeFloat d e =+ (fromInteger d) / ((fromInteger 2)^e) -- TODO: construct it directly+ isNaN (MP _ _ e _) = (e == expNaN)+ isInfinite (MP _ _ e _) = (e == expInf)+ isDenormalized _ = False+ isNegativeZero d@(MP _ _ e _) = (e == expZero && signbit d)+ isIEEE _ = False+ atan2 d1 d2 = S.atan2 Near (maxPrec d1 d2) d1 d2
src/Data/Number/MPFR/Instances/Near.hs view
@@ -96,3 +96,20 @@ e = denominator r n = quot m e f = frac Near (getPrec d) d++instance RealFloat MPFR where+ floatRadix _ = 2+ floatDigits = fromInteger . toInteger . getPrec+ floatRange _ = error "floatRange is not defined for MPFR numbers"+ decodeFloat x = (d,e)+ where+ (d,eE) = decompose x+ e = fromInteger (toInteger eE)+ encodeFloat d e =+ (fromInteger d) / ((fromInteger 2)^e) -- TODO: construct it directly+ isNaN (MP _ _ e _) = (e == expNaN)+ isInfinite (MP _ _ e _) = (e == expInf)+ isDenormalized _ = False+ isNegativeZero d@(MP _ _ e _) = (e == expZero && signbit d)+ isIEEE _ = False+ atan2 d1 d2 = S.atan2 Near (maxPrec d1 d2) d1 d2
src/Data/Number/MPFR/Instances/Up.hs view
@@ -98,3 +98,20 @@ e = denominator r n = quot m e f = frac Up (getPrec d) d++instance RealFloat MPFR where+ floatRadix _ = 2+ floatDigits = fromInteger . toInteger . getPrec+ floatRange _ = error "floatRange is not defined for MPFR numbers"+ decodeFloat x = (d,e)+ where+ (d,eE) = decompose x+ e = fromInteger (toInteger eE)+ encodeFloat d e =+ (fromInteger d) / ((fromInteger 2)^e) -- TODO: construct it directly+ isNaN (MP _ _ e _) = (e == expNaN)+ isInfinite (MP _ _ e _) = (e == expInf)+ isDenormalized _ = False+ isNegativeZero d@(MP _ _ e _) = (e == expZero && signbit d)+ isIEEE _ = False+ atan2 d1 d2 = S.atan2 Near (maxPrec d1 d2) d1 d2
src/Data/Number/MPFR/Instances/Zero.hs view
@@ -97,3 +97,20 @@ e = denominator r n = quot m e f = frac Zero (getPrec d) d++instance RealFloat MPFR where+ floatRadix _ = 2+ floatDigits = fromInteger . toInteger . getPrec+ floatRange _ = error "floatRange is not defined for MPFR numbers"+ decodeFloat x = (d,e)+ where+ (d,eE) = decompose x+ e = fromInteger (toInteger eE)+ encodeFloat d e =+ (fromInteger d) / ((fromInteger 2)^e) -- TODO: construct it directly+ isNaN (MP _ _ e _) = (e == expNaN)+ isInfinite (MP _ _ e _) = (e == expInf)+ isDenormalized _ = False+ isNegativeZero d@(MP _ _ e _) = (e == expZero && signbit d)+ isIEEE _ = False+ atan2 d1 d2 = S.atan2 Near (maxPrec d1 d2) d1 d2