.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\" This was done with the help of the glibc manual. .\" .\" 2004-10-31, aeb, corrected .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH fpclassify 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ fpclassify, isfinite, isnormal, isnan, isinf \- макросы классификации чисел с плавающей запятой .SH LIBRARY Math library (\fIlibm\fP, \fI\-lm\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint fpclassify(\fP\fIx\fP\fB);\fP \fBint isfinite(\fP\fIx\fP\fB);\fP \fBint isnormal(\fP\fIx\fP\fB);\fP \fBint isnan(\fP\fIx\fP\fB);\fP \fBint isinf(\fP\fIx\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP .\" I haven't fully grokked the source to determine the FTM requirements; .\" in part, the following has been tested by experiment. \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP(): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L .fi .PP \fBisnan\fP(): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .PP \fBisinf\fP(): .nf _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH ОПИСАНИЕ У чисел с плавающей запятой есть специальные значения, например для бесконечности или NaN. С помощью макроса \fBfpclassify(\fP\fIx\fP\fB)\fP вы можете выяснить тип \fIx\fP. В качестве аргумента макрос принимает любое выражение с плавающей запятой. Результатом будет одно из следующих значений: .TP 14 \fBFP_NAN\fP Значение \fIx\fP не является числом («Not a Number»). .TP \fBFP_INFINITE\fP Значение \fIx\fP стремится к плюс или минус бесконечности. .TP \fBFP_ZERO\fP Значение \fIx\fP равно нулю. .TP \fBFP_SUBNORMAL\fP Значение \fIx\fP слишком мало для представления в нормализованном формате. .TP \fBFP_NORMAL\fP Если значение не равно ни одному из вышеперечисленных, то это обычное число с плавающей запятой. .PP Остальные макросы предоставляют короткие ответы на некоторые стандартные вопросы. .TP 14 \fBisfinite(\fP\fIx\fP\fB)\fP возвращает ненулевое значение, если .br (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) .TP \fBisnormal(\fP\fIx\fP\fB)\fP возвращает ненулевое значение, если (fpclassify(x) == FP_NORMAL) .TP \fBisnan(\fP\fIx\fP\fB)\fP возвращает ненулевое значение, если (fpclassify(x) == FP_NAN) .TP \fBisinf(\fP\fIx\fP\fB)\fP возвращает 1, если \fIx\fP равно положительной бесконечности и \-1, если \fIx\fP равно отрицательной бесконечности. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBfpclassify\fP(), \fBisfinite\fP(), \fBisnormal\fP(), \fBisnan\fP(), \fBisinf\fP() T} Безвредность в нитях MT\-Safe .TE .sp 1 .SH СТАНДАРТЫ C11, POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, C99. .PP В glibc 2.01 и более ранних \fBisinf\fP() возвращает ненулевое значение (а именно 1), если \fIx\fP равно положительной или отрицательной бесконечности (это всё, что требует C99). .SH ЗАМЕЧАНИЯ Про \fBisinf\fP() в стандартах лишь сказано, что этот макрос возвращает ненулевое значение, если только аргумент равен бесконечности. .SH "СМ. ТАКЖЕ" \fBfinite\fP(3), \fBINFINITY\fP(3), \fBisgreater\fP(3), \fBsignbit\fP(3) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .