型総称数学関数 (Type-Generic Mathematics)
ヘッダ ファイル |
tgmath.h |
---|---|
規格 | C99 |
概要 | ヘッダ math.h 及び complex.h を取り込み、幾つかの型総称マクロを定義する。 |
...つまり tgmath.h
をインクルードする場合、math.h
や complex.h
のインクルードは不要です。
プラグマ
型
マクロ
引数付きマクロ
型総称 (ジェネリック) マクロです。引数を判断して math.h
や complex.h
で定義されている末尾に f
l
の付く関数に自動で展開します (modf()
, nan()
を除く)。
complex.h
で定義されている先頭に c
の付く関数も c
が不要になります (carg()
, cimag()
, cproj()
, creal()
を除く)。
名前 | 機能 |
---|---|
acos() | 逆余弦を求めます。 |
acosh() | 逆双曲線余弦を求めます。 |
asin() | 逆正弦を求めます。 |
asinh() | 逆双曲線正弦を求めます。 |
atan() | 逆正接を求めます。 |
atan2() | 逆正接を求めます。 |
atanh() | 逆双曲線正接を求めます。 |
carg() | 複素数偏角。 |
cbrt() | 立方根を計算します。 |
ceil() | 小数点以下を切り上げます。 |
cimag() | 複素数虚部。 |
conj() | 共役複素数。 |
copysign() | x の絶対値で y の符号を持つ値を生成します。 |
cos() | 余弦を求めます。 |
cosh() | 双曲線余弦を求めます。 |
cproj() | リーマン射影。 |
creal() | 複素数実部。 |
erf() | 誤差関数を計算します。 |
erfc() | 余誤差関数を計算します。 |
exp() | e(自然対数の底)の x 乗を計算します。 |
exp2() | 2 の x 乗を計算します。 |
expm1() | 自然対数の底 e の x 乗から 1 を引いた値を計算します。 |
fabs() | 浮動小数点数の絶対値を返します。 |
fdim() | x と y の正の差を求めます。 |
floor() | 小数点以下を切り捨てます。 |
fma() | (x*y)+z を 1 個の 3 項演算としてまとめて計算します (FMA)。 |
fmax() | x と y のうち、大きい方の値を求めます。 |
fmin() | x と y のうち、小さい方の値を求めます。 |
fmod() | x を y で割った剰余を計算します。 |
frexp() | 数値を仮数部と指数部に分割します。 |
hypot() | 直角三角形の斜辺 (x2 + y2 の平方根) を計算します。 |
ilogb() | 符号付き整数の値として x の指数を抽出します。 |
ldexp() | x * 2^exp を計算します。 |
lgamma() | ガンマ関数の絶対値の自然対数を計算します。 |
llround() | 最も近い整数値に丸めます。戻り値の型は long long int です。 |
log() | x の自然対数を計算します。 |
log10() | 10 を底とする x の対数を計算します。 |
log1p() | 1 を加えた値の e を底とする (自然) 対数を計算します。 |
log2() | 2 を底とする x の対数を計算します。 |
logb() | 浮動小数点形式における符号付き整数の値として x の指数を抽出します。 |
lrint() | その時点の丸め方向に従って最も近い整数値に丸めます。 |
lround() | 最も近い整数値に丸めます。戻り値の型は long int です。 |
nearbyint() | "不正確結果" 浮動小数点例外を生成することなく、丸め方向に従って浮動小数点形式の整数値に丸めます。 |
nextafter() | x と y を関数の型に変換し、実軸上で x から見て y の方向にある x の次に表現可能な値を求めます。 |
nexttoward() | 2 番目の引数の型が long double に固定され、x が y と等しい場合に y をその関数の型に変換して返す事を除いて nextafter() と同じです。 |
pow() | x の y 乗を計算します。 |
remainder() | IEEE 60559 が要求する x と y の剰余 (REM) を計算します。 |
remquo() | 符号と商の近似値を持つ値を、*quo に格納する事を除いて remainder() と同じです。 |
rint() | 結果が実引数の値と異なる場合、"不正確結果" 浮動小数点例外を生成することがある事を除いて nearbyint() と同じです。 |
round() | 浮動小数点形式の最も近い整数値に丸めます。 |
scalbln() | 効率よく x * FLT_RADIX ^ n を計算します。戻り値の型は long int です。 |
scalbn() | 効率よく x * FLT_RADIX ^ n を計算します。戻り値の型は int です。 |
sin() | 正弦を求めます。 |
sinh() | 双曲線正弦を求めます。 |
sqrt() | 正の平方根を計算します。 |
tan() | 正接を求めます。 |
tanh() | 双曲線正接を求めます。 |
tgamma() | x のガンマ関数を計算します。 |
trunc() | 浮動小数点形式の最も近い整数値に丸めます。 |
型総称マクロを C 言語で記述する事はできないため、C99 では自分で書いた関数を型総称化する事はできません。C11 以降の総称選択 (_Generic
) を使えば型総称マクロを記述可能です。
関数
資料
- C 言語 / 標準ライブラリ / tgmath.h (Wikibooks)
- z/OS C/C++ ランタイム・ライブラリー・リファレンス tgmath.h — 数学および複合データ型 (IBM)
- C 言語の標準ヘッダ一覧 tgmath.h (C 言語)