Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::isinf

      From cppreference.com
      <cpp‎ |numeric‎ |math
       
       
       
      Common mathematical functions
      Nearest integer floating point operations
      (C++11)(C++11)(C++11)
      (C++11)
      (C++11)
      (C++11)(C++11)(C++11)
      Floating point manipulation functions
      (C++11)(C++11)
      (C++11)
      (C++11)
      Classification and comparison
      (C++11)
      (C++11)
      isinf
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      Types
      (C++11)
      (C++11)
      (C++11)
      Macro constants
       
      Defined in header<cmath>
      (1)
      bool isinf(float num);

      bool isinf(double num);

      bool isinf(longdouble num);
      (since C++11)
      (until C++23)
      constexprbool isinf(/*floating-point-type*/ num);
      (since C++23)
      SIMD overload(since C++26)
      Defined in header<simd>
      template</*math-floating-point*/ V>

      constexprtypename/*deduced-simd-t*/<V>::mask_type

        isinf(const V& v_num);
      (S)(since C++26)
      Defined in header<cmath>
      template<class Integer>
      bool isinf( Integer num);
      (A)(since C++11)
      (constexpr since C++23)
      1) Determines if the given floating-point numbernum is a positive or negative infinity. The library provides overloads for all cv-unqualified floating-point types as the type of the parameternum.(since C++23)
      S) The SIMD overload performs an element-wisestd::isinf onv_num.
      (Seemath-floating-point anddeduced-simd-t for their definitions.)
      (since C++26)
      A) Additional overloads are provided for all integer types, which are treated asdouble.

      Contents

      [edit]Parameters

      num - floating-point or integer value
      v_num - a data-parallel object ofstd::basic_simd specialization where its element type is a floating-point type

      [edit]Return value

      1)true ifnum is infinite,false otherwise.
      S) A data-parallel mask object where the ith element equalstrue ifv_num[i] is infinite orfalse otherwise for alli in the range[0v_num.size()).

      [edit]Notes

      GCC andClang support a-ffinite-math option (additionally implied by-ffast-math), which allows the respective compiler to assume the nonexistence of special IEEE-754 floating point values such as NaN, infinity, or negative zero. In other words,std::isinf is assumed to always returnfalse under this option.

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

      [edit]Example

      Run this code
      #include <cfloat>#include <cmath>#include <iostream>#include <limits> int main(){constdouble max=std::numeric_limits<double>::max();constdouble inf=std::numeric_limits<double>::infinity(); std::cout<<std::boolalpha<<"isinf(NaN) = "<< std::isinf(NAN)<<'\n'<<"isinf(Inf) = "<< std::isinf(INFINITY)<<'\n'<<"isinf(max) = "<< std::isinf(max)<<'\n'<<"isinf(inf) = "<< std::isinf(inf)<<'\n'<<"isinf(0.0) = "<< std::isinf(0.0)<<'\n'<<"isinf(exp(800)) = "<< std::isinf(std::exp(800))<<'\n'<<"isinf(DBL_MIN/2.0) = "<< std::isinf(DBL_MIN/2.0)<<'\n';}

      Output:

      isinf(NaN) = falseisinf(Inf) = trueisinf(max) = falseisinf(inf) = trueisinf(0.0) = falseisinf(exp(800)) = trueisinf(DBL_MIN/2.0) = false

      [edit]See also

      (C++11)
      categorizes the given floating-point value
      (function)[edit]
      (C++11)
      checks if the given number has finite value
      (function)[edit]
      (C++11)
      checks if the given number is NaN
      (function)[edit]
      (C++11)
      checks if the given number is normal
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/isinf&oldid=156453"

      [8]ページ先頭

      ©2009-2025 Movatter.jp