home | help
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  ex-
     amine 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<dou-
     ble>(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

http://cppreference.com 	   2024.06.10			 std::signbit(3)

home | help