[Haskell-cafe] slow code
Ketil Malde
ketil at malde.org
Wed Jun 17 03:38:56 EDT 2009
brian <briand at aracnet.com> writes:
> However, I would like to reiterate that it's the double -> string
> which is really the time/memory sink. I verified this by printing a
> simple string based on the value (to make sure the value was
> evaluated) and it runs fast enough for me.
>
> Is there an efficient way to output double -> binary ?
Not as far as I know. I had the same problem, and ended up building a
array of float representations:
farray :: Array Int ByteString
farray = listArray (0,9999) [B.pack (showFFloat (Just 2) i "") | i <- [0,0.01..99.99::Double]]
and using a lookup function to show the floats:
fi :: Int -> ByteString
fi f | f <= 9999 && f >= 0 = farray!f
| otherwise = error ("Can't show a value of "++show f)
This works for me, since I have a very limited range of Doubles to
deal with (stored as fixed-precision Ints).
Still, a fast and general way to output primitive data types would be
quite welcome.
-k
--
If I haven't seen further, it is by standing in the footprints of giants
More information about the Haskell-Cafe
mailing list