[Haskell-cafe] ANN: logfloat

wren ng thornton wren at freegeek.org
Sun Aug 17 01:30:55 EDT 2008


--------------------------------------------
-- Announcing: logfloat 0.8.5
--------------------------------------------

New official release of the logfloat package for manipulating log-domain 
floating numbers. This is primarily a maintenance release updating the 
documentation and with minor tweaks on typeclass-restricted polymorphism.

Substantively, I also broke out a new type class for numbers which can 
represent transfinite values. This is primarily to deal with issues 
about Rationals and other Fractional types which cannot represent them.

I also decided to switch the code over to *.hs format so that the 
Hackage build bot can generate the documentation more reliably.

--------------------------------------------
-- Description
--------------------------------------------

The main reason for casting numbers into the log-domain is to prevent
underflow when multiplying many small probabilities as is done in Hidden
Markov Models and other statistical models often used for natural
language processing. The log-domain also helps prevent overflow when
multiplying many large numbers. In rare cases it can speed up numerical
computation (since addition is faster than multiplication, though
logarithms are exceptionally slow), but the primary goal is to improve
accuracy of results. A secondary goal has been to maximize efficiency
since these computations are frequently done within a /O(n^3)/ loop.

The Data.Numeric.LogFloat module provides a new data type LogFloat which
handles all the conversions and optimizations and can be treated as any
other number thanks to type classes.

--------------------------------------------
-- Links
--------------------------------------------

Homepage:
     http://code.haskell.org/~wren/

Hackage:
     http://hackage.haskell.org/cgi-bin/hackage-scripts/package/logfloat

Darcs:
     http://code.haskell.org/~wren/logfloat

Haddock (Darcs version):
     http://code.haskell.org/~wren/logfloat/dist/doc/html/logfloat/

-- 
Live well,
~wren


More information about the Haskell-Cafe mailing list