`int signbit(double __x)`

The signbit() function returns a nonzero value if the value of
*__x* has its sign bit set. This is not the same as
`*__x* < 0.0', because IEEE 754 floating point allows zero to be
signed. The comparison `-0.0 < 0.0' is false, but `signbit (-0.0)' will return a
nonzero value.