EN JA
MATH(3)
MATH(3) FreeBSD Library Functions Manual MATH(3)

名称

math浮動小数点数学ライブラリ

ライブラリ

Math Library (libm, -lm)

書式

#include < math.h>

解説

訳注: 数学用語の翻訳が間違っているかもしれません。
 
数学ライブラリは、次の構成要素を含んでいます:
< math.h> 基本的なルーチンと実数値の関数
< complex.h> 複素数のサポート
< tgmath.h> 関数の多様性のある (一般的タイプ) バージョン
< fenv.h> 丸めと例外を制御するルーチン
このマニュアルページの残りは、 < math.h> によって提供される関数について説明します。他の構成要素の情報については、 complex(3), tgmath(3)fenv(3) を調べてください。

関数のリスト

次の double (倍精度浮動小数点数) 関数の各々は、名前の最後に‘ f’が付いた float (単精度浮動小数点数) の対応物と、‘ l’が付いた long double (長い倍精度浮動小数点数) の対応物があります。例として double acos( double x) の floatlong 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 に置き換えられました。 floatlong double 値を含む追加ルーチンは、FreeBSD のその後のバージョンで書かれたか、または取り込まれました。

バグ

ISO/IEC 9899:1999 (“ISO C99”) の long double 数学関数のいくつかは、利用可能ではありません。

デフォルトの丸めモードを除いて、超越関数を計算する多くのルーチンは、不正確な結果を生成します。

i386 プラットフォームでは、三角引数減少は、巨大な引数のために正確に実行されません、 cos(), sin() と tan() へのそのような引数に対して大きな誤差の結果となります。

December 5, 2010 FreeBSD