Next: , Previous: , Up: Top   [Index]


1 GNU MPについて

GNU MP (GMP)はさまざまな環境で動作するCライブラリで,整数,有理数,浮動小数点数の任意精度演算 をサポートします。Cが直接サポートする基本的なデータ型よりも高精度な演算を必要とする アプリケーションソフトウェアのために,最高速の計算ルーチンを提供することを目的としています。

大体のアプリケーションはせいぜい数百ビット程度の精度しか使わないのが普通ですが, 何千,何百万ビットの精度を必要とするアプリケーションも,数は少ないにしろ存在しています。 GMPは,そのどちらのアプリケーションに対しても適した計算速度を提供できるよう, オーバーヘッドを最小化する設計がなされています。

GMPの高速さは,これら3つの基本演算型と,定義されたこれらの型に割り当てられたワード全てをフルに使用し, 洗練されたアルゴリズムを選び抜き,様々なCPUに対して注意深く最適化されたアセンブラプログラムを用いて使用頻度の高い 内部ループを記述することで達成されたものです(その反面,コードの記述は分かりづらいです)。

現在は下記のCPU用のアセンブラコードが用意されています。 ARM Cortex-A9, Cortex-A15, 汎用ARM, DEC Alpha 21064, 21164, 21264, AMD K8 と K10 (Athlon64, Phenom, Opteron等々,いろんなブランド名で販売展開されています) BulldozerとBobcat, Intel Pentium, Pentium Pro/II/III, Pentium 4, Core2, Nehalem, Sandy bridge, Haswell, 汎用x86, Intel IA-64, Motorola/IBM PowerPC 32 と 64 (POWER970, POWER5, POWER6, POWER7), MIPS 32-bit と 64-bit, SPARC 32-bit と 全てのUltraSPARC向けサポート付きのSPARC 64-bit。 廃止されてしまったCPU用のアセンブラコードもそのまま残っています。

GMPの最新情報は下記のGMP Webページで確認して下さい。

https://gmplib.org/

GMPライブラリの最新バージョンは下記のところからダウンロードできます。

https://ftp.gnu.org/gnu/gmp/

世界中にある‘ftp.gnu.org’のミラーサイトから,ご自身の近くにあるものを選んで使って下さい。 ミラーサイト一覧はhttps://www.gnu.org/order/ftp.htmlに載っています。

GMPの公開メーリングリストは3つあります。一つはリリース情報アナウンス用,もう一つはGMPに関する 質問や議論を行うためのもの,三つめはバグ報告用のものです。詳細情報は下記をご覧下さい。

https://gmplib.org/mailman/listinfo/.

バグ報告の正式な送り先は gmp-bugs@gmplib.orgです。バグ報告についての情報は Reporting Bugsをご覧下さい。


1.1 このマニュアルの使い方

まずはGMP Basicsを読んで下さい。ライブラリのインストール方法を知りたい時には Installing GMPをご覧下さい。複数ABIに対応したシステムを使う場合は,コンパイラオプション の指定が必要になるので,ABI and ISAを参照して下さい。

後々の参考になると思いますので,これ以降の内容も一通り眺めておくことをお勧めします。