This module shouldn't need to exist. It exists because
GHC's implementation of floor
is currently (6.10.3)
very slow. See the following tickets:
- fast_floor :: Double -> Word8
Documentation
fast_floor :: Double -> Word8Source
This is a special version of the regular floor
function.
It works by directly calling the low-level internal GHC
primitives, and thus is as fast as you'd expect for such
a trivial operation.
(The standard floor
function does something crazy like
converting a Double
to a numerator/denominator Integer
pair and then computing the integer part of the quotient as
an Integer
, then truncating that to a Word8
. Which,
obviously, is ludicrously slow.)
Hopefully one day the need for this low-level hackery will disappear.