On Fri, 25 Jun 2004 17:38:24 -0500
Jan Depner <eviltwin69(a)cableone.net> wrote:
On Fri, 2004-06-25 at 13:49, Tim Blechmann wrote:
I have a
denormal fix without a branch but you probably don't want
to see it ;-)
It's pretty simple, just OR the bits of the exponent together
which gives either
0 (denormal) or 1, typecast that to float, and then multiply the
original float by that (0.0 or 1.0). Voila, no branch, but it is
messy looking ;-)
there is one problem ... if you multiply the denormal number with
the 1 or 0, you will probably have one denormal operation on the cpu
instead of a branch ... i don't know, that's worse ...
but definitely, some benchmarks would be useful for any denormal
flushing algorithm...
The definition of denormal is that the exponent is 0 so you will
never
multiply a denormal by 1, only by 0. I'm not sure whether that would
be a denormal operation or not. It depends on the compiler.
hm ... someone should write a test for all these algorithms ... i'm
curious, how different compilers / different algorithms actually affect
the speed of the code ...
cheers.... tim
--
mailto:TimBlechmann@gmx.de ICQ: 96771783
After one look at this planet any visitor from outer space
would say "I want to see the manager."
William S. Burroughs