名前空間
変種
操作

std::isfinite

From cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C++11)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
指数関数
(C++11)
(C++11)

(C++11)
(C++11)
べき乗関数
(C++11)
(C++11)
三角関数と
双曲線関数
(C++11)
(C++11)
(C++11)

誤差関数とガンマ関数
(C++11)
(C++11)
(C++11)
(C++11)
最近接整数への浮動小数点数操作
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮動小数点数の操作関数
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類と比較
(C++11)
isfinite
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
マクロ定数
分類
(C++11)(C++11)(C++11)(C++11)(C++11)


 
ヘッダー <cmath> で定義
(1)
bool isfinite( float num );

bool isfinite( double num );

bool isfinite( long double num );
(C++11以降)
(C++23まで)
constexpr bool isfinite( /*floating-point-type*/ num );
(C++23から)
ヘッダー <simd> で定義
template< /*math-floating-point*/ V >

constexpr typename /*deduced-simd-t*/<V>::mask_type

  isfinite ( const V& v_num );
(S) (C++26以降)
ヘッダー <cmath> で定義
template< class Integer >
bool isfinite( Integer num );
(A) (C++11以降)
(C++23 以降 constexpr)
1) 与えられた浮動小数点数 num が有限値(正規化数、非正規化数、またはゼロであり、無限大またはNaNではない)であるかどうかを判定します。ライブラリは、パラメータ num の型として、すべての cv-修飾されていない浮動小数点型に対するオーバーロードを提供します。(since C++23)
S) SIMD オーバーロードは、v_num に対して要素ごとのstd::isfiniteを実行します。
(定義については、math-floating-point および deduced-simd-t を参照してください。)
(C++26以降)
A) すべての整数型に対する追加のオーバーロードが提供されます。これらは double として扱われます。

目次

[編集] パラメータ

num - 浮動小数点数または整数値
v_num - 要素型が浮動小数点型である std::basic_simd の特殊化のデータ並列オブジェクト

[編集] 戻り値

1) true は、num が有限値である場合。false は、そうでなければ。
S) i番目の要素が、範囲 [0v_num.size()) のすべての i について、v_num[i] が有限値であれば true、そうでなければ false となるデータ並列マスクオブジェクト。

[編集] 注記

追加のオーバーロードは、(A) とまったく同じように提供される必要はありません。整数型の引数 num に対して、std::isfinite(num)std::isfinite(static_cast<double>(num)) と同じ効果を持つことを保証するだけで十分です。

[編集]

#include <cfloat>
#include <cmath>
#include <iostream>
 
int main()
{
    std::cout << std::boolalpha
              << "isfinite(NaN) = " << std::isfinite(NAN) << '\n'
              << "isfinite(Inf) = " << std::isfinite(INFINITY) << '\n'
              << "isfinite(-Inf) = " << std::isfinite(-INFINITY) << '\n'
              << "isfinite(HUGE_VAL) = " << std::isfinite(HUGE_VAL) << '\n'
              << "isfinite(0.0) = " << std::isfinite(0.0) << '\n'
              << "isfinite(exp(800)) = " << std::isfinite(std::exp(800)) << '\n'
              << "isfinite(DBL_MIN/2.0) = " << std::isfinite(DBL_MIN / 2.0) << '\n';
}

出力

isfinite(NaN) = false
isfinite(Inf) = false
isfinite(-Inf) = false
isfinite(HUGE_VAL) = false
isfinite(0.0) = true
isfinite(exp(800)) = false
isfinite(DBL_MIN/2.0) = true

[編集] 関連項目

与えられた浮動小数点数値を分類する
(関数) [編集]
(C++11)
与えられた数値が無限大かチェックする
(関数) [編集]
(C++11)
与えられた数値が NaN かチェックする
(関数) [編集]
(C++11)
与えられた数値が正規化数かチェックする
(関数) [編集]
C言語のドキュメントisfinite について)
English 日本語 中文(简体) 中文(繁體)