approxEqual() has fooled me for a long time...
Walter Bright
newshound2 at digitalmars.com
Wed Oct 20 11:42:32 PDT 2010
Don wrote:
> I'm personally pretty upset about the existence of that function at all.
> My very first contribution to D was a function for floating point
> approximate equality, which I called approxEqual.
> It gives equality in terms of number of bits. It gives correct results
> in all the tricky special cases. Unlike a naive relative equality test
> involving divisions, it doesn't fail for values near zero. (I _think_
> that's the reason why people think you need an absolute equality test as
> well).
> And it's fast. No divisions, no poorly predictable branches.
I totally agree that a precision based on the number of bits, not the magnitude,
is the right approach.
> Unfortunately, somebody on the ng insisted that it should be called
> feqrel(). Stupidly, I listened. And now nobody uses my masterpiece
> because it has a totally sucky name.
Names matter!
More information about the Digitalmars-d
mailing list