名前空間
変種
操作

std::isnormal

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)
(C++11)
(C++11)
(C++11)
isnormal
(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 isnormal( float num );

bool isnormal( double num );

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

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

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

目次

[編集] パラメータ

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

[編集] 戻り値

1) truenum が正規数の場合。それ以外の場合は false
S) データ並列マスクオブジェクト。ここで、i 番目の要素は、範囲 [0v_num.size()) のすべての i について、v_num[i] が正規数であれば true、そうでなければ false となります。

[編集] 注記

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

[編集]

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

出力

isnormal(NaN) = false
isnormal(Inf) = false
isnormal(0.0) = false
isnormal(DBL_MIN/2.0) = false
isnormal(1.0) = true

[編集] 関連項目

与えられた浮動小数点数値を分類する
(関数) [編集]
(C++11)
与えられた数値が有限値かチェックする
(関数) [編集]
(C++11)
与えられた数値が無限大かチェックする
(関数) [編集]
(C++11)
与えられた数値が NaN かチェックする
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)