| .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) |
| .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk |
| .\" <mtk.manpages@gmail.com> |
| .\" |
| .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) |
| .\" Distributed under GPL |
| .\" %%%LICENSE_END |
| .\" |
| .\" Based on glibc infopages, copyright Free Software Foundation |
| .\" |
| .TH SIGNBIT 3 2021-03-22 "GNU" "Linux Programmer's Manual" |
| .SH NAME |
| signbit \- test sign of a real floating-point number |
| .SH SYNOPSIS |
| .nf |
| .B "#include <math.h>" |
| .PP |
| .BI "int signbit(" x ");" |
| .fi |
| .PP |
| Link with \fI\-lm\fP. |
| .PP |
| .RS -4 |
| Feature Test Macro Requirements for glibc (see |
| .BR feature_test_macros (7)): |
| .RE |
| .PP |
| .BR signbit (): |
| .nf |
| _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L |
| .fi |
| .SH DESCRIPTION |
| .BR signbit () |
| is a generic macro which can work on all real floating-point types. |
| It returns a nonzero value if the value of |
| .I x |
| has its sign bit set. |
| .PP |
| This is not the same as |
| .IR "x < 0.0" , |
| because IEEE 754 floating point allows zero to be signed. |
| The comparison |
| .IR "\-0.0 < 0.0" |
| is false, but |
| .IR "signbit(\-0.0)" |
| will return a nonzero value. |
| .PP |
| NaNs and infinities have a sign bit. |
| .SH RETURN VALUE |
| The |
| .BR signbit () |
| macro returns nonzero if the sign of |
| .I x |
| is negative; otherwise it returns zero. |
| .SH ERRORS |
| No errors occur. |
| .SH ATTRIBUTES |
| For an explanation of the terms used in this section, see |
| .BR attributes (7). |
| .ad l |
| .nh |
| .TS |
| allbox; |
| lbx lb lb |
| l l l. |
| Interface Attribute Value |
| T{ |
| .BR signbit () |
| T} Thread safety MT-Safe |
| .TE |
| .hy |
| .ad |
| .sp 1 |
| .SH CONFORMING TO |
| POSIX.1-2001, POSIX.1-2008, C99. |
| This function is defined in IEC 559 (and the appendix with |
| recommended functions in IEEE 754/IEEE 854). |
| .SH SEE ALSO |
| .BR copysign (3) |