Module documentation for 0.2.4

The Show instances for RealFloat types provided in base are very elegant,as they produce the shortest string which 'read' converts back to theoriginal number. That, however, involves a check after each digit has beendetermined and arithmetic of usually fairly large Integers, which makes theseShow instances rather slow.

For cases where having the conversion fast is more important than having itproduce elegant output, this package provides alternative conversions, whichavoid the checks and reduce the occurrences of large Integers by just producinga sufficiently long output string.

The speed gain can be substantial if the numbers have exponents of largeabsolute modulus, but for the more common case of numbers whose exponentshave small absolute modulus, the difference is (although still significantfor Double) too small in my opinion to seriously consider replacing theShow instances.

Some benchmarks produced with criterion (http://hackage.haskell.org/package/criterion)show a considerable speedup, or example, converting 10,000 numbers to Stringand calculating the length produced:

Another benchmark, calculating d*sin(d^2) for d = 1, ..., 200000and writing their string representations to a file, timed 'show'at 4.26s, 'fshow' at 1.08s and 'show' for the newtype wrapperDouble7 (rounds to seven significant digits) around Double at 0.55s.A corresponding C programme ran in 0.26s with the default precisionand in 0.32s with a precision of 17 digits.

Changes

0.2.4: Adjust to base-4.7, type of comparison primops changed0.2.3: Adjust to base-4.6, location of quotRemInt changed0.2.2: Full precision showing types0.2.1: Typos in haddocks corrected0.2.0: Raw interface for non-RealFloat types Back to the old integerToDigits because we may now deal with larger Integers, the performance loss for Double/Float is small enough to accept.0.1.1: Leaner integerToDigits0.1: First release