floatshow 0.2.1 → 0.2.2
raw patch · 2 files changed
+53/−2 lines, 2 filesdep ~arrayPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: array
API changes (from Hackage documentation)
+ Text.FShow.RealFloat: FD :: Double -> FullDouble
+ Text.FShow.RealFloat: FF :: Float -> FullFloat
+ Text.FShow.RealFloat: instance DispFloat FullDouble
+ Text.FShow.RealFloat: instance DispFloat FullFloat
+ Text.FShow.RealFloat: instance Eq FullDouble
+ Text.FShow.RealFloat: instance Eq FullFloat
+ Text.FShow.RealFloat: instance FShow FullDouble
+ Text.FShow.RealFloat: instance FShow FullFloat
+ Text.FShow.RealFloat: instance Floating FullDouble
+ Text.FShow.RealFloat: instance Floating FullFloat
+ Text.FShow.RealFloat: instance Fractional FullDouble
+ Text.FShow.RealFloat: instance Fractional FullFloat
+ Text.FShow.RealFloat: instance Num FullDouble
+ Text.FShow.RealFloat: instance Num FullFloat
+ Text.FShow.RealFloat: instance Ord FullDouble
+ Text.FShow.RealFloat: instance Ord FullFloat
+ Text.FShow.RealFloat: instance Read FullDouble
+ Text.FShow.RealFloat: instance Read FullFloat
+ Text.FShow.RealFloat: instance Real FullDouble
+ Text.FShow.RealFloat: instance Real FullFloat
+ Text.FShow.RealFloat: instance RealFloat FullDouble
+ Text.FShow.RealFloat: instance RealFloat FullFloat
+ Text.FShow.RealFloat: instance RealFrac FullDouble
+ Text.FShow.RealFloat: instance RealFrac FullFloat
+ Text.FShow.RealFloat: instance Show FullDouble
+ Text.FShow.RealFloat: instance Show FullFloat
+ Text.FShow.RealFloat: newtype FullDouble
+ Text.FShow.RealFloat: newtype FullFloat
+ Text.FShow.RealFloat: unFD :: FullDouble -> Double
+ Text.FShow.RealFloat: unFF :: FullFloat -> Float
Files
- Text/FShow/RealFloat.hs +51/−0
- floatshow.cabal +2/−2
Text/FShow/RealFloat.hs view
@@ -19,10 +19,13 @@ , fshowFFloat , fshowGFloat , Double7(..)+ , FullDouble(..) , Float7(..)+ , FullFloat(..) ) where import GHC.Show+import GHC.Read import GHC.Float (showSignedFloat) import Text.FShow.RealFloat.Internals @@ -89,6 +92,30 @@ fshowsPrec p = showSignedFloat fshowFloat p fshowList = showList__ (fshowsPrec 0) +-- | newtype wrapper for 'Double'. The 'Show' (and 'FShow') instance+-- displays all significant digits.+newtype FullDouble = FD { unFD :: Double }+ deriving (Eq, Ord, Num, Fractional, Real, RealFrac, Floating, RealFloat)++instance DispFloat FullDouble where+ decDigits (FD x) = case decodeFloat x of+ (_,e) -> case ((53+e)*8651) `quot` 28738 of+ q | e >= 0 -> q+2+ | e > (-53) -> q+1-e+ | otherwise -> q-e+ binExp _ = 52++instance Show FullDouble where+ showsPrec p = showSignedFloat fshowFloat p++instance FShow FullDouble where+ fshowsPrec p = showSignedFloat fshowFloat p+ fshowList = showList__ (fshowsPrec 0)++instance Read FullDouble where+ readPrec = fmap FD readPrec+ readListPrec = readListPrecDefault+ -- | newtype wrapper for 'Float'. The 'Show' (and 'FShow') instance -- displays numbers rounded to seven significant digits. newtype Float7 = F7 Float@@ -104,6 +131,30 @@ instance FShow Float7 where fshowsPrec p = showSignedFloat fshowFloat p fshowList = showList__ (fshowsPrec 0)++-- | newtype wrapper for 'Double'. The 'Show' (and 'FShow') instance+-- displays all significant digits.+newtype FullFloat = FF { unFF :: Float }+ deriving (Eq, Ord, Num, Fractional, Real, RealFrac, Floating, RealFloat)++instance DispFloat FullFloat where+ decDigits (FF x) = case decodeFloat x of+ (_,e) -> case ((24+e)*8651) `quot` 28738 of+ q | e >= 0 -> q+2+ | e > (-24) -> q+1-e+ | otherwise -> q-e+ binExp _ = 23++instance Show FullFloat where+ showsPrec p = showSignedFloat fshowFloat p++instance FShow FullFloat where+ fshowsPrec p = showSignedFloat fshowFloat p+ fshowList = showList__ (fshowsPrec 0)++instance Read FullFloat where+ readPrec = fmap FF readPrec+ readListPrec = readListPrecDefault {- The code below is a minor modification of code from GHC.Float
floatshow.cabal view
@@ -7,7 +7,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version: 0.2.1+Version: 0.2.2 -- Constraint on the version of Cabal needed to build this package. Cabal-version: >=1.6@@ -75,7 +75,7 @@ Text.FShow.Raw -- Packages needed in order to build this package.- Build-depends: base >= 4 && < 5, array >= 0.1 && < 0.4+ Build-depends: base >= 4 && < 5, array >= 0.1 && < 0.5 if flag(gmp) Build-depends: integer-gmp else