GNU Multi-Precision Library
表示
開発元 | The GNU Project |
---|---|
最新版 |
5.0.1
/ 2010年2月6日 |
リポジトリ | |
プログラミング 言語 | C |
プラットフォーム | クロスプラットフォーム |
種別 | 数学ソフト |
ライセンス | LGPL |
公式サイト | gmplib.org |
GNU Multi-Precision Library(GMP)は、多倍長整数など任意の精度の算術ライブラリで、フリーソフトウェアである。符号付き整数、有理数、浮動小数点数を扱う。事実上、動作中のハードウェアが持つメモリ容量以外には精度は制限されない(オペランドの大きさは32ビットマシンでは 231 ビット、64ビットマシンでは 237 ビット[1])。様々な関数があり、それらが一貫したインタフェースで提供されている。基本インタフェースはC言語だが、他の言語用ラッパーを使えば、C++、OCaml、Perl、Pythonなどでも使える。
GMPの主な用途は暗号(実用と研究)、インターネットセキュリティ、数式処理システムである。
GMPは、どんなオペランドの大きさでも他の多倍長整数ライブラリよりも高速であることを目標としている。このために、以下の点を重視している。
- 基本算術型としてフルワードを使う。
- オペランドの大きさによってそれぞれ異なるアルゴリズムを使う。非常に大きな数に有効なアルゴリズムは、小さい数では遅いことが多い。
- 重要なループには高度に最適化したアセンブリ言語コードを使う。当然、CPUによって異なったものになる。
最初のGMPは1991年にリリースされた。その後継続的に開発と保守が行われている。
公式サイトが gnu.org にないので混乱する場合があるが、GMPはGNUプロジェクトの一部であり、GNU LGPL でライセンスされている。
GMPは多くの数式処理システムで整数の算術に使われている。例えばMathematicaがGMPを採用している[2]。
GMPはGCCのビルドに必要である。