math.h

math.h ヘッダー・ファイルには、浮動小数点計算関数 すべてのための関数宣言が含まれています。

フィーチャー・テスト・マクロは必要ありません。

注 :
  1. nan()nanf()、および nanl() 関数は、IEEE の環境のみでサポートされます。
  2. C99 数学関数の場合、機能を公開するためには、フィーチャー・テスト・マクロ _ISO_C99_SOURCE を定義するか、または C99 をサポートするように設計されたコンパイラーが必要です。
C++ の特殊な動作: C++ アプリケーションの場合、次のリストの各基本関数は、float、double、および long double についても多重定義されます。例えば、次のようになります。
_XOPEN_SOURCE
_XOPEN_SOURCE_EXTENDED 1
__STDC_WANT_DEC_FP__
C++ アプリケーションでは、_Decimal32、_Decimal64、および _Decimal128 について以下の関数が多重定義されています。
例えば、次のようになります。
_TR1_C99: 以下の関数は追加の多重定義を提供します。

オブジェクト類似マクロ: math.h ヘッダーによって提供される追加のオブジェクト類似マクロについて説明します。

注: 浮動小数点マクロ、およびマクロ INFINITY と NAN は、IEEE 環境のみでサポートされます。
DEC_INFINITY
無限大を表す _Decimal32 型の定数式。
DEC_NAN
_Decimal32 型用、静止 10 進数浮動 NaN。
HUGE_VAL_D32
+ 無限大を表す _Decimal32 型の定数式。
HUGE_VAL_D64
+ 無限大を表す _Decimal64 型の定数式。
HUGE_VAL_D128
+ 無限大を表す _Decimal128 型の定数式。
HUGE_VALF
float の式に展開される、非常に大きな正数。
HUGE_VALL
long double の式に展開される、非常に大きな正数。
INFINITY
正の無限大を表す float 型の定数式。
NAN
静止 NaN を表す float 型の定数式。
FP_INFINITE
正または負の無限大である引数に対するマクロ fpclassify の値。これは、整数定数式に展開されます。
FP_NAN
非数値 (NaN) である引数に対するマクロ fpclassify の値。これは、整数定数式に展開されます。
FP_NORMAL
有限の正規化された引数に対するマクロ fpclassify の値。これは、整数定数式に展開されます。
FP_SUBNORMAL
有限の非正規化された引数に対するマクロ fpclassify の値。これは、整数定数式に展開されます。
FP_ZERO
正または負の引数に対するマクロ fpclassify の値。これは、整数定数式に展開されます。
FP_FAST_FMA
一般に double オペランドの乗算および加算とおよそ同じ速度、またはそれを超える速度で fma 関数を実行するように指示します。
FP_FAST_FMAF
float の場合の FP_FAST_FMA。
FP_FAST_FMAL
long double の場合の FP_FAST_FMA。
注: 10 進数浮動小数点は、FP_FAST_FMAD32、FP_FAST_FMAD64、および FP_FAST_FMAD128 をサポートしません。
FP_ILOGB0
引数がゼロの場合に ilogb() から戻される値。
FP_ILOGBNAN
引数が NaN の場合に ilogb() から戻される値。
MATH_ERRNO
これは値 1 として定義されます。この値は、数学関数が errno にゼロ以外の値を格納してエラーを報告しているかどうか判別するために、マクロ math_errhandling の値のテストに使用されます。
MATH_ERREXCEPT
これは値 2 として定義されます。この値は、数学関数が無効浮動小数点例外を出してエラーを報告しているかどうか判別するために、マクロ math_errhandling の値のテストに使用されます。
math_errhandling
このマクロは、MATH_ERRNO、MATH_ERREXCEPT、またはこれら両方のビット単位 OR の値をもつ、int 型の式に展開されます。このインプリメンテーションでは、このマクロを MATH_ERRNO として定義しています。

関数類似マクロまたは C++ 関数テンプレート: <math.h> ヘッダーによって提供される追加の関数類似マクロまたは C++ 関数テンプレートをリストしています。

ヘッダー・ファイルには、組み込み関数 abs() と fabs() の 宣言がインクルードされています。組み込み関数について詳しくは、組み込み関数を参照してください。

math.h ヘッダー・ファイルは、正の double 定数式 (必ずしも float として表現可能とは限らない) に展開されるマクロ HUGE_VAL を宣言します。同様に、マクロ HUGE_VALF および HUGE_VALL は、それぞれ HUGE_VAL の float および long double の類似マクロです。

すべての数学関数の場合、入力引数がその関数に 許容される値の範囲外で あると、ドメイン・エラー が起こります。ドメイン・エラーが起こると、errno が EDOM の 値に設定されます。

関数の結果が float、double、long double、_Decimal32、_Decimal64、または _Decimal128 値で表せない場合、範囲エラーが発生します。結果の絶対値が大きすぎる (オーバーフローしている) 場合、その関数は HUGE_VAL、 HUGE_VALF、HUGE_VALL、HUGE_VAL_D32、HUGE_VAL_D64、また HUGE_VAL_D128 のうち該当するマクロの正または負の 値を戻し、errno を ERANGE に設定します。結果が小さすぎる (アンダーフローしている) 場合、その 関数は 0 を戻します。

この関数の結果が確実に無限である場合、限度内の有限の入力引数に近づくため (例えば、log(0.0))、極エラーが発生します。極エラーが発生した場合、関数は errno に ERANGE を設定します。

float_t と double_t は、FLT_EVAL_METHOD の値によって異なる型をもつ浮動小数点型です。FLT_EVAL_METHOD は 1 で、これは float_t と double_t が両方とも double であることを意味します。

注: 10 進数浮動小数点は、FP_FAST_FMAD32、FP_FAST_FMAD64、および FP_FAST_FMAD128 をサポートしません。