[Haskell] for large x, log (x::Integer) :: Double
Jan-Willem Maessen - Sun Labs East
Janwillem.Maessen at Sun.COM
Thu Jul 1 10:49:46 EDT 2004
Steve Schafer wrote:
> 4) Use your CPU's built-in floating-point unit to compute g, the base-2
> log of q. (For an Intel CPU, see the FYL2X instruction. If q is very
> close to 1, you may want to use the FYL2XP1 instruction instead to
> preserve more significant bits; in that case, pass it q - 1 rather than
> q.)
My colleague from the Java-for-x86 world reminds me that the
floating-point transcendentals on x86 are chock full of little
infelicities which limit the conditions under which they may be used.
My feeling is you want to understand these infelicities before you
start using the instructions in your code. (For example, you should
be able to explain, and correct, Mr. Shafer's explanation of FYL2X
versus FYL2XP1 above when 0.5 <= q <= 1.0. I haven't quite figured it
out myself...)
Here be dragons. For the rest of us, there are very nice
floating-point libraries. If you're lucky, their authors actually did
the above work... :-)
-Jan
More information about the Haskell
mailing list