Changelog for scientific- * Remove unused ghc-prim dependency. * Added unit tests for read and scientificP * Replace use of Vector from vector with Array from primitive. * Export scientificP :: ReadP Scientific (Courtesy of Shlok Datye @shlok) * Fix build for base < 4.8. * Some minor performance improvements. * Support criterion-1.2 * Support base-4.10 * Support tasty-ant-xml-1.1.0 * Tighten lower bound on vector from 0.5 to 0.7 because building with vector < 0.7 results in a build error. * Move the internal modules Math.NumberTheory.Logarithms and GHC.Integer.Logarithms.Compat to their own package integer-logarithms so other people can share that code. * Support QuickCheck-2.9. * Make bytestring-builder's installation conditional based on a Cabal flag. * Unconditionally export Data.ByteString.Builder.Scientific. The bytestring-builder cabal flag has been removed. Depend on bytestring-builder for backwards compatibility for GHC < 7.8. * Made toDecimalDigits more similar to floatToDigits Previously: toDecimalDigits 0 == ([0],1) Now: toDecimalDigits 0 == ([0],0) Because: Numeric.floatToDigits 10 (0 :: Double) == ([0],0) * Introduce a special case for 0 in fromFloatDigits fromFloatDigits 0 = 0 This should fix The following are all a courtesy of Oleg Grenrus (phadej): * Support GHC-8.0.1 * Support binary-0.8 * Enable Travis continuous integration * Improved performance of toDecimalDigits by 13%. * Fix build with integer-simple. * Fix build on GHC-7.4. Courtesy of Adam Bergmark.. * Fix build on GHC-7.0.4 * Added fromRationalRepetend & toRationalRepetend for safely converting from and to rationals which have a repeating decimal representation like: 1 % 28 = 0.03(571428). * Added a Binary instance. * Various performance improvements. * Support vector-0.11 * Support tasty-0.11 * Support criterion- * Support QuickCheck-2.8. * Fixed both the Prelude Data.Scientific> reads "0.0" :: [(Data.Scientific.Scientific,String)] [(0.0,".0"),(0.0,"")] problem and the read " 8" :: Scientific fails, while read " 8" :: Double succeeds problem. Courtesy of neongreen. * Fixed bug in the x / y method for Scientific. Since I was using the default implementation: `x * recip y` the operation would diverge when `recip y` had an infinite decimal output. This shouldn't happen when the result of / is finite again. For example: 0.6 / 0.3 should yield 2.0. This is now fixed by using the following implementation: `x / y = fromRational $ toRational x / toRational y` * Fixed bug when converting the Scientific: `scientific 0 someBigExponent` to a bounded Integral using toBoundedInteger or to a bounded RealFloat using toBoundedRealFloat. If someBigExponent was big enough to trigger the big-exponent protection the beforementioned functions didn't return 0. This is fixed by explicitly handling a coefficient of 0. * Relax upper version bounds of base and deepseq for the test suite and benchmarks. * Add support for `deepseq-1.4`. * Fix parsing of empty digit string (#21). * Allow newer tasty, tasty-hunit and criterion. * Add the isFloating or isInteger predicates. Courtesy of Zejun Wu (@watashi). * Add the toRealFloat' and toBoundedInteger functions. Courtesy of Fujimura Daisuke (@fujimura). * Enable package to link with integer-simple instead of integer-gmp using the -finteger-simple cabal flag. Courtesy of @k0ral. * Parameterize inclusion of the Data.ByteString.Builder.Scientific module using the bytestring-builder flag. Disabling this flag allows building on GHC-7.0.4 which has bytestring-0.9 installed by default. * Add the floatingOrInteger function * Fix build on GHC-7.0.4 * More efficient and better behaving magnitude computation * Lower the number of cached magnitudes to 324 (same as GHC.Float) * Don't normalize on construction but do it when pretty-printing instead. Also provide a manual normalize function. * Improve efficiency of toRealFloat * Added note about caching magnitudes * Dropped dependency on arithmoi * Make benchmark easier to build * Add junit XML output support (for Jenkins) * Lower the minimal QuickCheck version. * Make sure sized exponents are generated in the QuickCheck tests. * Fix build for bytestring-0.10.0.* * Fix a DoS vulnerability that allowed an attacker to crash the process by sending a scientific with a huge exponent like 1e1000000000. * Fix various RealFrac methods. * Cache some powers of 10 to speed up the magnitude computation. * Normalize scientific numbers on construction. * Move the Text Builder to its own module & provide a ByteString builder * Added more documentation * Widen the dreaded pointlessly tight upper bounds * Support the latest versions of smallcheck and tasty * added deriving data * Loosen upper bounds on package versions * Fixed bugs & Changed API * Support building the library on GHC >= 7.0.1 * Simplification in the Show instance * Optimization in fromRealFloat * Initial commit