外部インタフェース/API | ![]() ![]() |
エンジンプログラムの実行可能バージョンを生成するには、コンパイルして適切なライブラリとリンクしなければなりません。この節では、UNIXおよびWindowsシステムでエンジンプログラムをコンパイル、リンクするために必要な処理について記述します。浮動小数点の例外をマスクしないコンパイラに対して考慮すべき事柄から始めます。以下のトピックスを説明します。
浮動小数点の例外のマスク
数学演算の中には、結果が不定値になるものがあります。たとえば、ゼロ割はIEEEの不定値inf
になります。浮動小数点の例外は、そのような演算が実行されるときに発生します。MATLABは、inf
やNaN
のような不定値をサポートするIEEEモデルを使うので、MATLABは浮動小数点の例外を利用不可能にしたり、マスクすることができます。
コンパイラの中には、デフォルトで浮動小数点の例外をマスクしないものがあります。これにより、そのようなコンパイラを使って構築されたエンジンプログラムは、浮動小数点の例外が発生したときに停止します。その結果、エンジンアプリケーションが適切に実行されるためには、これらのコンパイラを使って浮動小数点の例外をマスクする際には予防策をとることが必要です。
注意 MATLABベースのアプリケーションは、浮動小数点の例外が生じません。浮動小数点の例外が発生した場合は、リンクしているサードパーティのライブラリが浮動小数点の例外ハンドリングが不可能でないかを確認してください。 |
浮動小数点の例外をマスクするプラットフォームおよびコンパイラは、以下の通りです。
DEC Alphaプラットフォームで浮動小数点の例外をマスクするには、-fpe3
コンパイルフラグを使います。たとえば、
f77 -fpe3
WindowsプラットフォームでBorland C++ compilerを利用時に浮動小数点の例外をマスクするには、ユーザプログラムにコードを追加する必要があります。MATLAB API関数の呼び出し前に、main()
またはWinMain()
関数の先頭につぎのコードを追加してください。
#include <float.h> . . . _control87(MCW_EM,MCW_EM); . . .
![]() | オープンされているMATLABの利用 | UNIXでのコンパイルとリンク | ![]() |