ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
標準Cライブラリのうち、数学関数を定義するためのヘッダーファイル。C++ではcmathが対応する。
C
#inluce <math.h>
C++
#inluce <cmath>
C標準としては、引数や戻り値の型の違う同機能の関数がそれぞれfloat用、double用、long double用で計3種類ずつ定義されている。また関数だけでなく、様々なマクロも定義されている。
代表関数はdouble型用であり、この他に代表関数名の最後にfを付けた名称を持つものがfloat型用、代表関数名の最後にlを付けた名称を持つものがlong double型用である。
内容は実装方法により様々で、このファイルの中で直接関数をexternしていたり、他のファイルを複雑にincludeしながらマクロを用いて間接的にexternしていたりする。
GCCの場合、3種類を定義するため、通常、fで終わるもの、lで終わるもので計3回、bits/mathcalls.hをincludeすることで定義するということをしている。
ISO/IEC 9899:1999(いわゆるC99、JIS X 3010:2003)で規定される関数を以下に一覧する。分類方法はJIS X 3010による。
C99はC99以降対応、GCCは非標準の関数を意味する。
標準化後に廃止された実装依存の関数については、一部例外を除き記載していない。
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
acos | acosf | acosl | 逆余弦(arccos)を求める | |
asin | asinf | asinl | 逆正弦(arcsin)を求める | |
atan | atanf | atanl | 逆正接(arctan)を求める | |
atan2 | atan2f | atan2l | y/xの逆正接(arctan)を求める | |
cos | cosf | cosl | 余弦(arccos)を求める | |
sin | sinf | sinl | 正弦(arcsin)を求める | |
tan | tanf | tanl | 正接(arctan)を求める | |
sincos | sincosf | sincosl | sinとcosの同時計算 | GCC |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
acosh | acoshf | acoshl | 双曲線逆余弦(arccosh)を求める | C99 |
asinh | asinhf | asinhl | 双曲線逆正弦(arcsinh)を求める | C99 |
atanh | atanhf | atanhl | 双曲線逆正接(arctanh)を求める | C99 |
cosh | coshf | coshl | 双曲線余弦(cosh)を求める | |
sinh | sinhf | sinhl | 双曲線正弦(sinh)を求める | |
tanh | tanhf | tanhl | 双曲線正接(tanh)を求める |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
exp | expf | expl | 底をネイピア数eとする指数関数(exp)を求める | |
exp10 | exp10f | exp10l | 10の引数乗を求める | GCC |
exp2 | exp2f | exp2l | 2の引数乗を求める | C99 |
expm1 | expm1f | expm1l | 底をネイピア数eとする指数関数(exp)-1を求める | C99 |
frexp | frexpf | frexpl | 正規化小数と2を基数とする指数に分解する | |
ilogb | ilogbf | ilogbl | 浮動小数点数の指数部を整数として求める | C99 |
ldexp | ldexpf | ldexpl | 浮動小数点数と整数の2の冪乗との積を求める | |
log | logf | logl | 自然対数(loge)を求める | |
log10 | log10f | log10l | 常用対数(log10)を求める | |
log1p | log1pf | log1pl | 引数に1を加えた自然対数(loge)を求める | C99 |
log2 | log2f | log2l | 2を底とする対数(log2)を求める | C99 |
logb | logbf | logbl | 浮動小数点数の指数部を求める | C99 |
modf | modff | modfl | 引数を整数部と小数部に分解する | |
scalbn | scalbnf | scalbnl | 浮動小数点数と整数の基数(FLT_RADIX)の冪乗との積を求める | C99 |
scalbln | scalblnf | scalblnl | 浮動小数点数と整数の基数(FLT_RADIX)の冪乗との積を求める | C99 |
significand | significandf | significandl | 浮動小数点数の仮数(mantissa)を取得する | GCC |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
cbrt | cbrtf | cbrtl | 立方根を求める | C99 |
fabs | fabsf | fabsl | 絶対値を求める | |
hypot | hypotf | hypotl | xの2乗とyの2乗の和の平方根を求める | C99 |
pow | powf | powl | 冪乗を求める | |
pow10 | pow10f | pow10l | 10のx乗を求める | GNU |
sqrt | sqrtf | sqrtl | 平方根を求める |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
erf | erff | erfl | 誤差関数を求める | C99 |
erfc | erfcf | erfcl | 相補誤差関数を求める | C99 |
lgamma | lgammaf | lgammal | ガンマ関数の絶対値の自然対数(loge)を求める | C99 |
lgamma_r | lgammaf_r | lgammal_r | ガンマ関数の絶対値の自然対数(loge)を求める(スレッドセーフ) | GCC |
tgamma | tgammaf | tgammal | 本当のガンマ関数を求める | C99 |
gamma | gammaf | gammal | ガンマ関数の絶対値の自然対数(loge)を求める | 廃止 |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
ceil | ceilf | ceill | 引き数を下回らない最小整数を求める天井関数 | |
floor | floorf | floorl | 引き数を越えない最大整数値を求める床関数 | |
nearbyint | nearbyintf | nearbyintl | 浮動小数点数を整数値に丸める | C99 |
rint | rintf | rintl | 浮動小数点数を整数値に丸める(例外生成あり) | C99 |
lrint | lrintf | lrintl | 最も近い整数値に丸める | C99 |
llrint | llrintf | llrintl | 最も近い整数値に丸める | C99 |
round | roundf | roundl | 四捨五入を求める | C99 |
lround | lroundf | lroundl | 四捨五入を求める | C99 |
llround | llroundf | llroundl | 四捨五入を求める | C99 |
trunc | truncf | truncl | 絶対値を超えない最も近い整数値に丸める | C99 |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
fmod | fmodf | fmodl | 剰余を求める | |
remainder | remainderf | remainderl | 浮動小数点の剰余を求める | C99 |
remquo | remquof | remquol | 商の一部と剰余を求める | C99 |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
copysign | copysignf | copysignl | xの絶対値にyの符号を複写する | C99 |
nan | nanf | nanl | NaN(非数)を求める | C99 |
nextafter | nextafterf | nextafterl | y方向にあるxの次の値を求める | C99 |
nexttoward | nexttowardf | nexttowardl | y方向にあるxの次の値を求める(long double) | C99 |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
fdim | fdimf | fdiml | 2つの引数の正の差を求める | C99 |
fmax | fmaxf | fmaxl | 2つの引数のうち大きいほうを求める | C99 |
fmin | fminf | fminl | 2つの引数のうち小さいほうを求める | C99 |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
fma | fmaf | fmal | 積和演算の解を求める | C99 |
関数名 | 機能 | 標準 | ||
---|---|---|---|---|
double | float | long double | ||
j0 | j0f | j0l | xの0次第一種ベッセル関数 | BSD |
j1 | j1f | j1l | xの1次第一種ベッセル関数 | BSD |
jn | jnf | jnl | xのn次第一種ベッセル関数 | BSD |
y0 | y0f | y0l | xの0次第二種ベッセル関数 | BSD |
y1 | y1f | y1l | xの1次第二種ベッセル関数 | BSD |
yn | ynf | ynl | xのn次第二種ベッセル関数 | BSD |
マクロ名 | 機能 | 標準 |
---|---|---|
fpclassify | 浮動小数点数の種類を求める | C99 |
isfinite | 浮動小数点数が有限の値かを判定する | C99 |
isinf | 浮動小数点数が無限大かどうかを判定する | C99 |
isnan | 浮動小数点数がNaN(非数)かどうかを判定する | C99 |
isnormal | 浮動小数点数が正規化数かどうかを判定する | C99 |
signbit | 浮動小数点数の符号を判定する | C99 |
浮動小数点数のxまたはyがNaNでも例外を発生しない。
マクロ名 | 機能 | 標準 |
---|---|---|
isgreater | 引数1番目が2番目より大きいかを判定する | C99 |
isgreaterequal | 引数1番目が2番目より大きいまたは等しいかを判定する | C99 |
isless | 引数1番目が2番目より小さいかを判定する | C99 |
islessequal | 引数1番目が2番目より小さいまたは等しいかを判定する | C99 |
islessgreater | 引数1番目が2番目より小さいまたは大きいかを判定する | C99 |
isunordered | 引数のいずれかがNaNかを判定する | C99 |
コメントなどを投稿するフォームは、日本語対応時のみ表示されます