GNU Multi-Precision Library

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
GNU Multiple-Precision Library
開発元 GNUプロジェクト
最新版 6.1.0 / 2015年11月1日(3か月前) (2015-11-01 [1]
プログラミング言語 C
プラットフォーム クロスプラットフォーム
種別 数学ソフト
ライセンス LGPL
公式サイト gmplib.org
テンプレートを表示

GNU Multi-Precision LibraryGMP)は、多倍長整数など任意の精度の算術ライブラリで、フリーソフトウェアである。符号付き整数有理数浮動小数点数を扱う。事実上、動作中のハードウェアが持つメモリ容量以外には精度は制限されない(オペランドの大きさは32ビットマシンでは 231 ビット、64ビットマシンでは 237 ビット[2])。様々な関数があり、それらが一貫したインタフェースで提供されている。基本インタフェースはC言語だが、他の言語用ラッパーを使えば、C++OCamlPerlPythonなどでも使える。また、Ruby 2.1でのように[3]、言語コアに組み込まれている例もある。

GMPの主な用途は暗号(実用と研究)、インターネットセキュリティ、数式処理システムである。

GMPは、どんなオペランドの大きさでも他の多倍長整数ライブラリよりも高速であることを目標としている。このために、以下の点を重視している。

  • 基本算術型としてフルワードを使う。
  • オペランドの大きさによってそれぞれ異なるアルゴリズムを使う。非常に大きな数に有効なアルゴリズムは、小さい数では遅いことが多い。
  • 重要なループには高度に最適化したアセンブリ言語コードを使う。当然、CPUによって異なったものになる。

最初のGMPは1991年にリリースされた。その後継続的に開発と保守が行われている。

公式サイトがgnu.orgにないので混乱する場合があるが、GMPはGNUプロジェクトの一部であり、GNU Lesser General Public License (LGPL) でライセンスされている。

GMPは多くの数式処理システムで整数の算術に使われている。例えばMathematicaがGMPを採用している[4]

GMPはGCCのビルドに必要である。

脚注[編集]

  1. ^ The GNU MP Bignum Library”. 2015年11月1日閲覧。
  2. ^ Future releases
  3. ^ GCの変更と高速化を盛り込んだRuby 2.1.0 @IT、2014年1月7日(2015年11月11日閲覧)。
  4. ^ Numerical computation features for Mathematica 5.0 Rob Knapp

関連項目[編集]

外部リンク[編集]