[Haskell-cafe] floating point operations and representation

Henning Thielemann lemming at henning-thielemann.de
Thu Mar 13 02:54:10 EDT 2008

On Wed, 12 Mar 2008, Don Stewart wrote:

>> I am under the restriction that I need to write Haskell programs using
>> Double which mimic existing C/C++ programs or generated data sets, and
>> get the same answers.  (It's silly, but take it as a given
>> requirement.)  If the C programs are using "log2", then I need "log2"
>> in the Haskell, or else I run the risk of not producing the same
>> answers.
> Hey Jacob,
> Just to make life super simple, I packaged up a binding to the basic
> math.h library for Doubles. You can find the library here:
>    http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cmath
> For example,
>    Prelude> Foreign.C.Math.Double.log10 5
>    0.6989700043360189
>    Prelude> log 5 / log 10
>    0.6989700043360187

You may want to write a RULES pragma which replaces occurences of 'logBase 
2' and 'logBase 10' by their specialised counterparts.

More information about the Haskell-Cafe mailing list