deka: Decimal floating point arithmetic

[ bsd3, library, math ] [ Propose Tags ] [ Report a vulnerability ]

deka provides decimal floating point arithmetic. It is based on mpdecimal, the C library used to provide support for the Decimal module in Python 3.

You will need to install mpdecimal to use deka; otherwise your executables will not link. It is available at

http://www.bytereef.org/mpdecimal/

mpdecimal has also been packaged for some Linux distributions, such as Debian (libmpdec-dev - available in Jessie and later) and Arch (mpdecimal).

mpdecimal, in turn, implements the General Decimal Arithmetic Specification, which is available at

http://speleotrove.com/decimal/

For more on deka, please see the Github home page at

https://github.com/massysett/deka

Tests are packaged separately in the deka-tests package.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.2.0.0, 0.2.0.2, 0.4.0.0, 0.4.0.2, 0.4.0.4, 0.6.0.0, 0.6.0.2
Change log ChangeLog
Dependencies base (>=4.5.0.0 && <4.8), bytestring (>=0.9.2.1 && <0.11), parsec (>=3.1.2 && <3.2), transformers (>=0.3.0.0 && <0.5) [details]
Tested with ghc ==7.4.1, ghc ==7.6.3, ghc ==7.8.3
License BSD-3-Clause
Copyright Copyright 2014 Omari Norman
Author Omari Norman
Maintainer Omari Norman, omari@smileystation.com
Category Math
Home page https://github.com/massysett/deka
Bug tracker https://github.com/massysett/deka/issues
Source repo head: git clone https://github.com/massysett/deka.git
Uploaded by OmariNorman at 2014-07-16T13:12:44Z
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 5591 total (18 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for deka-0.6.0.2

[back to package description]

deka

deka provides correctly rounded decimal arithmetic for Haskell.

The core of deka is a binding to the C library mpdecimal. You need to install mpdecimal; otherwise, your executables will not link. mpdecimal is available here:

http://www.bytereef.org/mpdecimal/index.html

mpdecimal has also been packaged for some Linux distributions, such as Debian (libmpdec-dev) and Arch (mpdecimal). deka has been tested with mpdecimal version 2.4.0.

As the author of deka, I have no association with the author of mpdecimal, and any errors in this library are mine and should be reported to omari@smileystation.com or to the Github tracker at

http://www.github.com/massysett/deka

You will want to understand the General Decimal Arithmetic Specification in order to fully understand deka. The specification is at

http://speleotrove.com/decimal/decarith.html

and more about decimal arithmetic generally at

http://speleotrove.com/decimal/

Dependencies

The main deka library depends only on base, bytestring, and parsec, so it shouldn't be difficult to build. The tests use tasty and QuickCheck.

Test status

deka is tested using the tests available on the General Decimal Arithmetic website:

http://speleotrove.com/decimal/dectest.html

Some of these tests currently fail. The failures are in edge cases that should not affect most usage. Diagnosing these failures is on the TODO list.

More documentation

Much more documentation is available in the Haddock comments in the source files. There is also a file of examples to get you started. It has copious comments. It is written in literate Haskell, so the compiler keeps me honest with the example code. Unfortunately Haddock does not play very nice with literate Haskell. However, the file is easy to view on Github:

Examples

License

deka is licensed under the BSD license, see the LICENSE file.