packages feed

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 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