高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1143
The Gamma function in the Mac OS X 10.2 Math Library


Q: /usr/include/math.h には、ガンマ関数に関係のある関数が多数記述されています。どの関数を使用したらよいでしょうか?

A: 今後は、tgamma 関数と lgamma 関数が、C99 規格が要求する近似値を提供します。新しいコードの中では、これらを使用すべきでしょう。gamma という名前の関数は、MacOS 9 および CarbonLib のプログラムに対する上位互換性を提供します。

これまでは、Mac OS 9 の数学ライブラリ(およびCarbonLib)が、ガンマ関数を近似する gamma() という名前のルーチンをエクスポートしていました。BSD や Posix などの多くの Unix 互換のシステムは、ガンマ関数の自然数の値ではなくガンマ関数の絶対値の対数に近似する lgammagamma という名前のルーチンを提供してきました。

Mac OS X では、次の 3 つのガンマ関数の実装があります。

  1. ガンマ関数の自然数の値に近似する tgamma 関数。

  2. ln( | Gamma | ) に近似する BSD の lgamma 関数。

  3. ガンマ関数を近似する Mac OS 9 の gamma 関数(使用廃止)。 この関数は、MacOS9/CarbonLib の gamma のセマンティックスを維持していますが、使用は廃止されています。新しいアプリケーションでは、最新の tgamma 関数を呼び出すようにするべきです。


注意:
gamma 関数を参照し、ln( | Gamma | ) の値を取得することを想定している Unix アプリケーションは、BSD の lgamma 関数を参照するように修正する必要があります。




[2002 年 8 月 27 日]