On the 0x5A5 day of Apache Harmony Tim Ellison wrote: > Dan Bornstein wrote: >> On Fri, May 1, 2009 at 4:33 AM, Egor Pasko <egor.pa...@gmail.com> wrote: >>> // Non-zero and non-NaN equality checking. >>> if (float1 == float2 && (0.0f != float1 || 0.0f != float2)) { >>> return 0; >>> } >> >> Would the following be a useful and safe improvement over the above?: >> >> if (float1 == float2 && 0.0f != (float1 + float2)) { >> >> I think this would save at least one test and branch. I'm not an >> IEEE754 expert, but I think that, given that the two floats are ==, >> the second test could only be true if they are both zeroes. > > In fact, since you have the ==, why is it not sufficient to say > > (float1 == float2 && 0.0f != float1) > > Discuss :-)
agreed! -- Egor Pasko