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