PHP マニュアル
前のページ |  | 次のページ

# XXXVII. GMP 関数

# 導入

以下の関数により、GNU MP ライブラリを使用して任 意長の整数を使用することが可能になります。

これらの関数は、PHP 4.0.4 で追加されました。

> 注意: 多くの GMP 関数は、`resource` で定義されたGMP 数 を引数としてとります。しかし、これらの関数の多くは、数値と文字列 の両方を引数として指定可能で、後者は数値に変換することが可能です。 また、整数引数を使用して処理を行うより高速な関数がある場合には、 指定された引数が整数である場合により低速となる関数の代わりに使用 されます。これは透過的に行われるため、結果的にGMP数値を引数とする 全ての関数について整数を使用することが可能です。関数 gmp_init() も参照下さい。

警告
より大きな整数を明示的に指定するには、文字列として指定して下さい。 そうしない場合、PHPは整数リテラルを最初に解釈し、 `GMP` にわたるまでに精度の劣化を生じる可能性が あります。

> 注意: この拡張モジュールはWindows環境 では利用できません。

# 要件

http://www.swox.com/gmp/ から GMP ライブラリをダウンロード可能です。このサイ トでは、GMP のマニュアルも入手可能です。

これらの関数を使用するには、GMP バージョン 2 以降が必要です。いく つかの関数はより新しいバージョンの GMP ライブラリを必要とする可能性 があります。

# インストール手順

これらの関数を利用可能とするには、オプション `--with-gmp` を使用することにより GMPサポートを有効にしてPHPをコンパイルする必要が あります。

# 実行用の設定

この拡張モジュールは設定ディレクティブを全く 定義しません。

# リソース型

この拡張モジュールはリソース型を全く定義し ません。

# 定義済みの定数

これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。

`GMP_ROUND_ZERO` (integer)

`GMP_ROUND_PLUSINF` (integer)

`GMP_ROUND_MINUSINF` (integer)

# 例

例 1. GMP を使用した階乗関数

`<?php function fact ($x) { if ($x <= 1) return 1; else return gmp_mul ($x, fact ($x-1)); } print gmp_strval (fact (1000)) . "\n"; ?>`

この例は、1000の階乗(非常に大きな数です)を非常に高速に計算します。

# 以下も参照下さい:

より数学的な関数は、 BCMath 任意精度関数および 数学関数の節にあります。

前のページ | ホーム | 次のページ
textdomain | 上に戻る | gmp_abs