Scroll to navigation

std::signbit(3) C++ Standard Libary std::signbit(3)

NAME

std::signbit - std::signbit

Synopsis


Defined in header <cmath>
bool signbit( float num );
(since C++11)
bool signbit( double num ); (until C++23)


bool signbit( long double num );
constexpr bool signbit( /* floating-point-type */ (1) (since C++23)
num );
Additional overloads
Defined in header <cmath>
template< class Integer > (A) (since C++11)
bool signbit( Integer num ); (constexpr since C++23)


1) Determines if the given floating point number num is negative.
The library provides overloads for all cv-unqualified floating-point types as the
type of the parameter num.
(since C++23)
A) Additional overloads are provided for all integer types, which are treated as
double.

Parameters


num - floating-point or integer value

Return value


true if num is negative, false otherwise.

Notes


This function detects the sign bit of zeroes, infinities, and NaNs. Along with
std::copysign, std::signbit is one of the only two portable ways to examine the sign
of a NaN.


The additional overloads are not required to be provided exactly as (A). They only
need to be sufficient to ensure that for their argument num of integer type,
std::signbit(num) has the same effect as std::signbit(static_cast<double>(num)).

Example

// Run this code


#include <cmath>
#include <iostream>


int main()
{
std::cout << std::boolalpha
<< "signbit(+0.0) = " << std::signbit(+0.0) << '\n'
<< "signbit(-0.0) = " << std::signbit(-0.0) << '\n'
<< "signbit(+nan) = " << std::signbit(+NAN) << '\n'
<< "signbit(-nan) = " << std::signbit(-NAN) << '\n'
<< "signbit(+inf) = " << std::signbit(+INFINITY) << '\n'
<< "signbit(-inf) = " << std::signbit(-INFINITY) << '\n';
}

Output:


signbit(+0.0) = false
signbit(-0.0) = true
signbit(+nan) = false
signbit(-nan) = true
signbit(+inf) = false
signbit(-inf) = true

See also


abs(float)
fabs
fabsf absolute value of a floating point value (\(\small{|x|}\)|x|)
fabsl (function)
(C++11)
(C++11)
copysign
copysignf
copysignl copies the sign of a floating point value
(C++11) (function)
(C++11)
(C++11)
C documentation for
signbit

2024.06.10 http://cppreference.com