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

FreeBSD Manual Pages

  
 
  

home | help
std::fpclassify(3)	      C++ Standard Libary	    std::fpclassify(3)

NAME
       std::fpclassify - std::fpclassify

Synopsis
	  Defined in header <cmath>
	  int fpclassify( float	arg );	      (1) (since C++11)
						  (constexpr since C++23)
	  int fpclassify( double arg );	      (2) (since C++11)
						  (constexpr since C++23)
	  int fpclassify( long double arg );  (3) (since C++11)
						  (constexpr since C++23)
	  int fpclassify( IntegralType arg ); (4) (since C++11)
						  (constexpr since C++23)

	  1-3)	Categorizes  floating point value arg into the following cate-
       gories: zero,
	  subnormal, normal, infinite, NAN,  or	 implementation-defined	 cate-
       gory.
	  4) A set of overloads	or a function template accepting the arg argu-
       ment of any
	  integral type. Equivalent to (2) (the	argument is cast to double).

Parameters
	  arg -	floating point value

Return value
	  one of FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO or
	  implementation-defined type, specifying the category of arg.

Example
       // Run this code

	#include <iostream>
	#include <cmath>
	#include <cfloat>

	const char* show_classification(double x) {
	    switch(std::fpclassify(x)) {
		case FP_INFINITE:  return "Inf";
		case FP_NAN:	   return "NaN";
		case FP_NORMAL:	   return "normal";
		case FP_SUBNORMAL: return "subnormal";
		case FP_ZERO:	   return "zero";
		default:	   return "unknown";
	    }
	}
	int main()
	{
	    std::cout << "1.0/0.0 is " << show_classification(1/0.0) <<	'\n'
		      << "0.0/0.0 is " << show_classification(0.0/0.0) << '\n'
		      <<  "DBL_MIN/2 is	" << show_classification(DBL_MIN/2) <<
       '\n'
		      << "-0.0 is " << show_classification(-0.0) << '\n'
		      << "1.0 is " << show_classification(1.0) << '\n';
	}

Output:
	1.0/0.0	is Inf
	0.0/0.0	is NaN
	DBL_MIN/2 is subnormal
	-0.0 is	zero
	1.0 is normal

See also
	  isfinite	 checks	if the given number has	finite value
	  (C++11)	 (function)
	  isinf		 checks	if the given number is infinite
	  (C++11)	 (function)
	  isnan		 checks	if the given number is NaN
	  (C++11)	 (function)
	  isnormal	 checks	if the given number is normal
	  (C++11)	 (function)
			 provides an interface to query	properties of all fun-
       damental	numeric
	  numeric_limits types.
			 (class	template)

http://cppreference.com		  2022.07.31		    std::fpclassify(3)

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

home | help