[Haskell-cafe] [ANN] FloatingHex: Hexadecimal floats (quasiquoter and pretty-printer)

Iavor Diatchki iavor.diatchki at gmail.com
Tue Jan 17 19:38:29 UTC 2017


Nicely done!  I agree that this would be much nicer to just implement
directly in GHC (and eventually add to the standard). Would you like to
write it up as GHC proposal?

Here is info on how to do that:
https://github.com/ghc-proposals/ghc-proposals

-Iavor

On Sat, Jan 14, 2017 at 3:06 PM, Levent Erkok <erkokl at gmail.com> wrote:

> Quick update: version 0.2 of FloatingHex is now on hackage (
> http://hackage.haskell.org/package/FloatingHex) which fixes a few
> glitches and makes the pretty-printer compatible with C's %a modifier. This
> brings the support on par with that in C/C++. The quasi-quoter is called
> qf, and the pretty-printer is called showHFloat, following the naming of
> other float-printers already available.
>
> On Sat, Jan 14, 2017 at 1:10 AM, Levent Erkok <erkokl at gmail.com> wrote:
>
>> FloatingHex (http://hackage.haskell.org/package/FloatingHex) is a simple
>> package that implement hexadecimal notation for floating point numbers, as
>> described in p57-58 of http://www.open-std.org/jtc
>> 1/sc22/wg14/www/docs/n1256.pdf
>>
>> The package provides a quasi-quoter for hexadecimal floats: hf, and a
>> pretty-printer for floats to show them in this notation: showFFloat. (Note
>> that the latter is not 100% compatible with C's %a modifier for printf, but
>> it does render a faithful representation of its input.)
>>
>> Hex-floats are useful as they allow writing floating-point constants
>> without any loss of precision, while remaining human readable. For
>> instance, the float 2 is written as 0x1p1. (With the quasiquoter, the
>> syntax is [hf|0x1p1|].) This representation is to be preferred over decimal
>> rendering where loss of precision can be a problem: Note that not all
>> floating point numbers have a terminating decimal representation as
>> currently required by the Haskell syntax.
>>
>> It would be nice if Haskell itself allowed for such literals in the
>> language specs itself, following the recent changes to other language
>> standards. (Again, see p57-58 of http://www.open-std.org/jtc
>> 1/sc22/wg14/www/docs/n1256.pdf for the new C standard.) In the mean
>> time, I hope FloatingHex library will provide a workaround for
>> the numerophilias amongst us.
>>
>> Bug reports and improvements always welcome!
>>
>> Cheers,
>>
>> -Levent.
>>
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170117/c3664513/attachment.html>


More information about the Haskell-Cafe mailing list