MATH(3) |
FreeBSD Library Functions Manual |
MATH(3) |
名称
math —
浮動小数点数学ライブラリ
ライブラリ
Math Library (libm, -lm)
関数のリスト
次の
double (倍精度浮動小数点数) 関数の各々は、名前の最後に‘
f
’が付いた
float (単精度浮動小数点数) の対応物と、‘
l
’が付いた
long double (長い倍精度浮動小数点数) の対応物があります。例として
double
acos(
double x) の
float と
long double の対応物は、それぞれ
float
acosf(
float x) と
long double
acosl(
long double x) です。分類マクロとサイレント順序プレディケート (述語) は、タイプジェネリックであり、‘
f
’または‘
l
’で接尾辞をつけられるべきではありません。
代数関数
名称 |
解説 |
cbrt |
立方根 |
fma |
融合多重加算 (fused multiply-add) |
hypot |
ユークリッド距離 |
sqrt |
平方根 |
分類マクロ
名称 |
解説 |
fpclassify |
浮動小数点値の分類 |
isfinite |
値が有限であるかどうか決定 |
isinf |
値が無限であるかどうか決定 |
isnan |
値が NaN であるかどうか決定 |
isnormal |
値が正規化されているかどうか決定 |
指数操作関数
名称 |
解説 |
frexp |
指数部と仮数部の抽出 |
ilogb |
指数部の抽出 |
ldexp |
2 の冪乗との積 |
logb |
指数部の抽出 |
scalbln |
指数調整 |
scalbn |
指数調整 |
極値関連と符号関連関数
名称 |
解説 |
copysign |
符号ビットのコピー |
fabs |
絶対値 |
fdim |
正差 |
fmax |
最大関数 |
fmin |
最小関数 |
signbit |
サインビットを抽出 |
非数値関数
名称 |
解説 |
nan |
静かな (quiet) NaN を生成する |
剰余と丸め関数
名称 |
解説 |
ceil |
より小さくない整数 |
floor |
より大きくない整数 |
fmod |
剰余関数 |
llrint |
固定小数点形式で整数に丸める |
llround |
固定小数点形式で最近整数に丸める |
lrint |
固定小数点形式で整数に丸める |
lround |
固定小数点形式で最近整数に丸める |
modf |
整数部と小数部の抽出 |
nearbyint |
整数に丸める (サイレント) |
nextafter |
次の表現可能な値 |
nexttoward |
次の表現可能な値 |
remainder |
剰余 |
remquo |
部分的な商がある剰余 |
rint |
整数に丸める |
round |
最も近い整数に丸める |
trunc |
大きさが大きくない整数 |
ceil(), floor(), llround(), lround(), round(), と trunc() 関数は、あらかじめ定められた方向に丸めますが、一方、 llrint(), lrint(), と rint() は、現在の (動的な) 丸めモードに従って丸めます。動的な丸めモードを制御する詳しい情報に関しては、 fenv(3) と fesetround(3) を参照してください。
サイレント順序プレディケート (述語)
名称 |
解説 |
isgreater |
より大きい関係 |
isgreaterequal |
以上関係 |
isless |
より小さい関係 |
islessequal |
以下関係 |
islessgreater |
より大きいまたはより小さい関係 |
isunordered |
不規則関係 |
超越関数
名称 |
解説 |
acos |
逆余弦 |
acosh |
逆双曲線余弦 |
asin |
逆正弦 |
asinh |
逆双曲線正弦 |
atan |
逆正接 |
atanh |
逆双曲線正接 |
atan2 |
atan(y/x);複合引数 |
cos |
余弦 |
cosh |
双曲線余弦 |
erf |
誤差関数 |
erfc |
誤差関数の補関数 |
exp |
e を底とする指数 |
exp2 |
2 を底とする指数 |
expm1 |
exp(x)-1 |
j0 |
オーダ 0 の第一種のベッセル関数 |
j1 |
オーダ 1 の第一種のベッセル関数 |
jn |
オーダ n の第一種のベッセル関数 |
lgamma |
対数ガンマ関数 |
log |
自然対数 |
log10 |
底が 10 の対数 |
log1p |
log(1+x) |
log2 |
2 を底とする対数 |
pow |
指数 x**y |
sin |
三角関数 |
sinh |
双曲線関数 |
tan |
三角関数 |
tanh |
双曲線関数 |
tgamma |
ガンマ関数 |
y0 |
オーダ 0 の第二種のベッセル関数 |
y1 |
オーダ 1 の第二種のベッセル関数 |
yn |
オーダ n の第二種のベッセル関数 |
このセクションのルーチンは、正しく丸める結果を生じないかもしれないので、再現可能な結果は、プラットフォームに渡って保証することができません。しかしながら、これらの関数の大部分にとって、不正確な丸めは、途中の非常に近い場合だけでまれに起こります。
歴史
現在の関数の多くを備えた数学ライブラリは、 Version 7 AT&T UNIX で登場しました。 VAX もしくは IEEE 754 浮動小数点数をサポートするマシンでより良い正確さと速度を提供するため、ライブラリは、
4.3BSD 向けに相当書き直されました。このライブラリのほとんどは、
FreeBSD 1.1.5 で、Sun Microsystems で開発された FDLIBM に置き換えられました。
float と
long double 値を含む追加ルーチンは、FreeBSD のその後のバージョンで書かれたか、または取り込まれました。
バグ
ISO/IEC 9899:1999 (“ISO C99”) の
long double 数学関数のいくつかは、利用可能ではありません。
デフォルトの丸めモードを除いて、超越関数を計算する多くのルーチンは、不正確な結果を生成します。
i386 プラットフォームでは、三角引数減少は、巨大な引数のために正確に実行されません、 cos(), sin() と tan() へのそのような引数に対して大きな誤差の結果となります。