| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| 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 |
コメントなどを投稿するフォームは、日本語対応時のみ表示されます