Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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 );				       (const-
       expr 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 inte-
       ger type,
	  std::signbit(num)  has  the	same   effect	as   std::signbit(sta-
       tic_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

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::signbit&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help