Boost logo

Geometry :

Subject: Re: [geometry] warning: comparing floating point with == or != is unsafe
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2013-06-06 21:10:23


On 7 June 2013 01:36, Adam Wulkiewicz <adam.wulkiewicz_at_[hidden]> wrote:
> Mateusz Loskot wrote:
>> Adam Wulkiewicz wrote
>>> Mateusz Loskot wrote:
>>>>
>>>> Folks,
>>>>
>>>> What's out approach to float-point comparisons across the library?
>>>> I'm kidding :-)
>>>>
>>>> Just for comparisons with Zero, I wonder if we could stick to absolute
>>>> epsilon comparisons [1].
>>>>
>>>> There are some places, i.e. in the index, with such cases and
>>>> TODO comments too, so perhaps we could decide on it soon.
>>>>
>>>> [1]
>>>>
>>>> http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
>>>>
>>>
>>> Which place in the Index do you have in mind?
>>
>>
>> For example,
>> /trunk/boost/geometry/index/detail/rtree/linear/redistribute_elements.hpp
>> lines 98-106
>>
>
> Ah, I've forgotten to handle this after porting it from the old version.
> Thanks for digging this up. Yes, there should probably be comparison with
> std::numeric_limits<coordinate_type>::epsilon().

You may try GCC/clang with -Wfloat-equal, there is a few more, but those
need to be addressed individually, I think.

So, we may discuss unobvious cases.

Best regards,

--
Mateusz Loskot, http://mateusz.loskot.net

Geometry list run by mateusz at loskot.net