# scientific: Numbers represented using scientific notation

`Data.Scientific`

provides a space efficient and arbitrary precision
scientific number type.

`Scientific`

numbers are represented using
scientific notation. It
uses a coefficient `c :: `

and a base-10 exponent `Integer`

`e :: `

(do
note that since we're using an `Int`

`Int`

to represent the exponent these numbers
aren't truly arbitrary precision). A scientific number corresponds to the
`Fractional`

number:

.`fromInteger`

c * 10 `^^`

e

The main application of `Scientific`

is to be used as the target of parsing
arbitrary precision numbers coming from an untrusted source. The advantages
over using `Rational`

for this are that:

A

`Scientific`

is more efficient to construct. Rational numbers need to be constructed using`%`

which has to compute the`gcd`

of the`numerator`

and`denominator`

. Scientific numbers only need to be normalized, i.e.`10000000`

to`1e7`

.`Scientific`

is safe against numbers with huge exponents. For example:`1e1000000000 ::`

will fill up all space and crash your program. Scientific works as expected:`Rational`

> read "1e1000000000" :: Scientific 1.0e1000000000

Also, the space usage of converting scientific numbers with huge exponents to

(like:`Integral`

s`Int`

) or

(like:`RealFloat`

s`Double`

or`Float`

) will always be bounded by the target type.

Versions | 0.0.0.0, 0.0.0.1, 0.0.0.2, 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.3.0.0, 0.3.0.1, 0.3.0.2, 0.3.1.0, 0.3.2.0, 0.3.2.1, 0.3.2.2, 0.3.3.0, 0.3.3.1, 0.3.3.2, 0.3.3.3, 0.3.3.4, 0.3.3.5, 0.3.3.6, 0.3.3.7, 0.3.3.8, 0.3.4.0, 0.3.4.1, 0.3.4.2, 0.3.4.3, 0.3.4.4, 0.3.4.5, 0.3.4.6, 0.3.4.7, 0.3.4.8, 0.3.4.9, 0.3.4.10, 0.3.4.11, 0.3.4.12, 0.3.4.13, 0.3.4.14, 0.3.4.15, 0.3.5.0, 0.3.5.1, 0.3.5.2, 0.3.5.3, 0.3.6.0, 0.3.6.1, 0.3.6.2 |
---|---|

Dependencies | arithmoi (>=0.4.1 && <0.5), array (>=0.1 && <0.6), base (>=4.3 && <4.8), bytestring (>=0.10.2 && <0.11), deepseq (==1.3.*), hashable (>=1.1.2 && <1.3), text (>=0.8 && <1.3) [details] |

License | BSD-3-Clause |

Author | Bas van Dijk |

Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> |

Revised | Revision 1 made by HerbertValerioRiedel at Tue Dec 30 08:55:58 UTC 2014 |

Category | Data |

Home page | https://github.com/basvandijk/scientific |

Bug tracker | https://github.com/basvandijk/scientific/issues |

Source repo | head: git clone git://github.com/basvandijk/scientific.git |

Uploaded | by BasVanDijk at Tue May 13 22:36:45 UTC 2014 |

Distributions | Arch:0.3.6.2, Debian:0.3.4.4, Fedora:0.3.5.2, FreeBSD:0.3.3.8, LTSHaskell:0.3.6.2, NixOS:0.3.6.2, Stackage:0.3.6.2, openSUSE:0.3.5.3 |

Downloads | 331473 total (651 in the last 30 days) |

Rating | 1.75 (votes: 2) [estimated by rule of succession] |

Your Rating | |

Status | Docs uploaded by user [build log] All reported builds failed [all 1 reports] Hackage Matrix CI |

## Downloads

- scientific-0.3.0.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.