Nikolay Aleksandrovich Pavlov <[email protected]> wrote:

> 2016-02-27 23:08 GMT+03:00 Dominique Pellé <[email protected]>:
>> Nikolay Aleksandrovich Pavlov <[email protected]> wrote:
>>
>>
>>>> + #if defined(FEAT_EVAL) && defined(FEAT_FLOAT)
>>>> + # include <float.h>
>>>> + # if defined(HAVE_MATH_H)
>>>> +    /* for isnan() and isinf() */
>>>> + #  include <math.h>
>>>> + # endif
>>>> + # if defined(WIN32) && !defined(isnan)
>>>> + #  define isnan(x) _isnan(x)
>>>> + #  define isinf(x) (!_finite(x) && !_isnan(x))
>>>
>>> This really should also be
>>>
>>>     static inline isinf(double x) { return !_finite(x) && !_isnan(x); }
>>>
>>> Such functions are superior to macros because expressions like
>>> `isinf(x += 10)` or `isinf((x = function_with_side_effects()))`, and
>>> if below functions are used, then here it should also be function. Or
>>> below should be two macros.
>>
>>
>> Simpler would be...
>>
>> static int isinf(double x) { return x != x; }
>>
>> The function looks surprising, but it should work
>> as nan is not equal to any number, including itself.
>
> isinf function should not return true for NaN.

Oh sorry, this was about infinity. I though it was about isnan(...).

Dominique

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui