Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       isgreater,  isgreaterequal,  isless,  islessequal,  islessgreater, isunordered - сравнение
       чисел с плавающей запятой с учётом NaN

LIBRARY

       Math library (libm, -lm)

СИНТАКСИС

       #include <math.h>

       int isgreater(x, y);
       int isgreaterequal(x, y);
       int isless(x, y);
       int islessequal(x, y);
       int islessgreater(x, y);
       int isunordered(x, y);

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

           All functions described here:
               _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

ОПИСАНИЕ

       Обычные операции сравнения (такие как < — «меньше чем») завершаются ошибкой, если одним из
       операндов  является  NaN. При этом возникает исключение. Для избежания подобной ситуации в
       C99 определены макросы, описанные ниже.

       В данных макросах гарантируется однократное вычисление операндов. Аргументами  могут  быть
       любые  типы  с  плавающей  запятой  (примечание: не передавайте в аргументах целочисленные
       значения, так как они не будут приведены к типу с плавающей запятой).

       isgreater()
              Вычисляет (x) > (y) даже, если значение x или y равно NaN.

       isgreaterequal()
              Вычисляет (x) >= (y) даже, если значение x или y равно NaN.

       isless()
              Вычисляет (x) < (y) даже, если значение x или y равно NaN.

       islessequal()
              Вычисляет (x) <= (y) даже, если значение x или y равно NaN.

       islessgreater()
              Вычисляет (x) < (y) || (x) > (y) даже, если значение x или y равно NaN. Этот макрос
              не  эквивалентен x != y, так как это выражение правдиво (true), если значение x или
              y равно NaN.

       isunordered()
              Вычисляет, являются ли аргументы неупорядоченными (unordered), то есть не равен  ли
              один из аргументов NaN.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Все  макросы,  кроме isunordered(), возвращают результат сравнения; они возвращают 0, если
       один из аргументов равен NaN.

       Макрос isunordered() возвращает 1, если значение x или  y  равно  NaN,  и  0  в  противном
       случае.

ОШИБКИ

       Ошибки не возникают.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌───────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ИнтерфейсАтрибутЗначение │
       ├───────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │isgreater(), isgreaterequal(), isless(),               │ Безвредность в нитях │ MT-Safe  │
       │islessequal(), islessgreater(), isunordered()          │                      │          │
       └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008, C99.

ЗАМЕЧАНИЯ

       Не всё оборудование имеет эти возможности, и там, где  их  нет,  они  будут  эмулироваться
       макросами.  Это  приведёт  к  небольшим  потерям  производительности.  Не  используйте эти
       макросы, если значения NaN для вас не существенны.

СМ. ТАКЖЕ

       fpclassify(3), isnan(3)

ПЕРЕВОД

       Русский   перевод   этой    страницы    руководства    был    сделан    Azamat    Hackimov
       <azamat.hackimov@gmail.com>,    Dmitriy   S.   Seregin   <dseregin@59.ru>,   Yuri   Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.