libimf.a は、インテルが提供する数値演算ライブラリで libm.a は、gcc* により提供される数値演算ライブラリです。
いずれのライブラリもデフォルトにより、IA-32 および Itanium® コンパイラ上でリンクされます。いずれのライブラリもリンクされるのは、インテルの数値演算ライブラリではない GNU 数値演算ライブラリによりサポートされる数値演算関数のためです。このリンクの処理により GNU ユーザは ifort の使用時にすべての関数を利用でき、サポートされている場合にはインテルの最適化バージョンが有効になります。
libimf.a は、libm.a の前にリンクされます。最初に libm.a をリンクすると、使用される数値演算関数のバージョンが変更されます。
libimf.a は LD_LIBRARY_PATH 変数内で指定した最初のディレクトリに配置することをお勧めします。libimf.a、libm.a ライブラリは、常に Fortran プログラムとリンクされます。
例えば、ライブラリを /perform/ ディレクトリに配置する場合は、他のすべてのライブラリを含むディレクトリの並びをセミコロンで区切って指定するように、LD_LIBRARY_PATH 変数を設定します。
IA-32 コンパイラでの libimf.a
IA-32 コンパイラの場合、libmf.a は汎用数値演算ルーチンおよびインテル® Pentium® 4 プロセッサおよびインテル® Xeon™ プロセッサで特別な使用のために最適化される数値演算ルーチンのバージョンの両方を含みます。
Itanium コンパイラでの libimf.a
Itanium コンパイラ の場合、libimf.a は Itanium アーキテクチャで使用するために最適化されます。コンパイラは、インライン化された数値演算ライブラリ・プリミティブを提供し、生成されたコードをスケジューリングします。これにより、一般的な浮動小数点アプリケーションのパフォーマンスを向上することが可能です。