|  | Home | Libraries | People | FAQ | More | 
        The header <boost/core/cmath.hpp>
        defines, in a portable way, the floating point classification and sign manipulation
        functions from C++11.
      
namespace boost { namespace core { // fpclassify return values int const fp_zero = /*unspecified*/; int const fp_subnormal = /*unspecified*/; int const fp_normal = /*unspecified*/; int const fp_infinite = /*unspecified*/; int const fp_nan = /*unspecified*/; // Classification functions template<class T> bool isfinite( T x ); template<class T> bool isnan( T x ); template<class T> bool isinf( T x ); template<class T> bool isnormal( T x ); template<class T> int fpclassify( T x ); // Sign manipulation functions template<class T> bool signbit( T x ); template<class T> T copysign( T x, T y ); } // namespace core } // namespace boost
T
                must be float, double, or long
                double.
              true
                when x is finite
                (not infinity or NaN), false
                otherwise.
              T
                must be float, double, or long
                double.
              true
                when x is NaN, false otherwise.
              T
                must be float, double, or long
                double.
              true
                when x is infinity,
                false otherwise.
              T
                must be float, double, or long
                double.
              true
                when x is a normal
                number (not zero, subnormal, infinity, or NaN), false
                otherwise.
              T
                must be float, double, or long
                double.
              fp_zero when
                      x is zero;
                    fp_subnormal
                      when x is subnormal;
                    fp_infinite
                      when x is infinity;
                    fp_nan when
                      x is NaN;
                    fp_normal otherwise.
                    T
                must be float, double, or long
                double.
              true
                when x is negative,
                false otherwise.
              T
                must be float, double, or long
                double.
              x
                with the sign copied from y.