Intro(3M)

名前
Intro, intro - 数学ライブラリ関数や定数の概要

形式
#include <sys/ieeefp.h>

#include <floatingpoint.h>

#include <math.h>

#include <sunmath.h>

機能説明
<sys/ieeefp.h> と <floatingpoint.h> は、 libm や libsunmath の例外処理に使用する型や定数を定義します。これは ANSI/IEEE 標準の 754-1985, IEEE Standard for Binary Floating-Point Arithmetic に準拠しています。

<math.h> は /usr/include 下のオペレーティングシステム領域に置かれています。 <math.h> には、 /usr/man/man3m にあるマニュアルページに記述され、 /usr/lib 下のオペレーティングシステム用数学ライブラリ libm を構成するすべての関数についての宣言が含まれています。 C プログラムでこのライブラリを使用する場合は -lm オプションでリンクする必要があります。

/opt/SUNWspro/prod/include/cc 下にあるコンパイラ製品用インクルードファイル <sunmath.h> には、 /opt/SUNWspro/man/ にあるマニュアルページに記述され、 /opt/SUNWspro/lib 下のコンパイラ製品用数学ライブラリ libsunmath を構成するすべての関数についての宣言が含まれています。 C プログラムでこのライブラリを使用する場合は -lsunmath -lm オプションでリンクする必要があります。 <sunmath.h> および libsunmath の場所がリリースごとに変更される可能性がある ことに注意してください。

IEEE 例外処理
-xlibmieee の C コンパイラフラグは、IEEE754-1985 標準に従って数学ライブラリルーチンの例外処理を行いたい場合に 使用します。

IEEE 標準では、 ceil、 floor、 remainder、 rint、 sqrt に対する例外処理を指定し、 copysign、 fabs、 fmod、 isnan、 ilogb、 ldexp、 logb、 nextafter、 scalb 、 scalbn などに対しては適切な例外処理を推奨していますが、 その他の libm や libsunmath 関数に対しての例外処理は指定していません。

これらの指定されていない関数に関して、 libm や libsunmath では 無効なオペランド、ゼロ除算、オーバーフロー、アンダーフロー例外などを 加算や乗算といった基本的な浮動小数点演算を処理するのと できるだけ同じ方法で処理することによって IEEE の「精神」に 従うようにしています。

これらの指定されていない関数は通常正確には丸められず、 オプションの丸めの指令を認識できなかったり、不正確な例外を正しく 設定できなかったりすることがあります。

IEEE 環境
IEEE 標準では丸めの指令や精度、例外のトラップについてのモードや、 結果として生じた例外のステータスを指定します。 これらのモードやステータスは IEEE の実行時環境を構成します。