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

Reply via email to