harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: Float/Double comparison performance
Date Fri, 01 May 2009 22:22:24 GMT
Dan Bornstein wrote:
> On Fri, May 1, 2009 at 4:33 AM, Egor Pasko <egor.pasko@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 :-)

Tim

Mime
View raw message