卒研メモ:PHPスクリプトにおけるGMP関数の利用

 GNU MP(GMP)という多倍長演算ライブラリがあります。様々なCPUに対応したアセンブラルーチンを使って高速な多倍長自然数演算を実現しており,これを土台にして長い桁の整数,有理数,浮動小数点数演算が可能になっています。ここ十数年間,自分の研究のベースとなってきたライブラリですので,この度,マニュアルの日本語訳を行って公開しました。

 というのも,PHPはGMPの整数関数を利用できるようになっており,何か使い道はないかと考え続けているからです。まぁそのうち卒研テーマにしてやろうかと思っているので,そのための準備として,gmp_gcd関数を使って最大公約数を計算するフォームを作ってみました。実行結果は下記のようになります。

 但し,XAMPP for WindowsではデフォルトでGMP関数が使えなくなっています。実際,XAMPPのトップメニューからphpinfo.phpに飛ぶと

となり,”GMP”ライブラリの表示が出てきません。

 但し,調べてみると,新しいXAMPPではGNU MP互換(ほとんど同一視できる多倍長演算ライブラリ)のMPIRが入っており,下記のように,php.iniを修正するだけで使用できるようになります。

 実際,一旦Apacheをストップしてphp.iniをGMP関数が使えるように編集し,再度Apacheを起動してもう一度phpinfo.phpを見ると,今度は

のように表示され,GMPが使えるようになっていることが分かります。

 フォームのソースコードを下記に張りつけておきますので,好きに使ってみて下さい。GMP関数が使えるようになったXAMPP for Windows環境でも実行可能です。