Provided by: manpages-ru-dev_4.21.0-2_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(), islessequal(),             │ Безвредность в нитях │ MT-Safe  │
       │ 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
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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

Linux man-pages 6.03                           15 декабря 2022 г.                                   isgreater(3)