コンテンツにスキップ

GNU Multi-Precision Library

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。1yen (会話 | 投稿記録) による 2020年7月18日 (土) 19:23個人設定で未設定ならUTC)時点の版 (top: テンプレートの表記修正)であり、現在の版とは大きく異なる場合があります。

GNU Multiple-Precision Library
開発元 GNUプロジェクト
初版 1991年 (34年前) (1991)
最新版
6.2.0 / 2020年1月18日 (5年前) (2020-01-18) [1]
リポジトリ gmplib.org/repo/gmp
プログラミング
言語
C
プラットフォーム クロスプラットフォーム
種別 任意精度演算ライブラリ
ライセンス LGPLv3GPLv2 のデュアルライセンス [2]
公式サイト gmplib.org
テンプレートを表示

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

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

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

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

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

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

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

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

脚注

  1. ^ GMP 6.2 release notes”. 2020年7月18日閲覧。
  2. ^ 引用エラー: 無効な <ref> タグです。「what」という名前の注釈に対するテキストが指定されていません
  3. ^ Future releases
  4. ^ GCの変更と高速化を盛り込んだRuby 2.1.0 @IT、2014年1月7日(2015年11月11日閲覧)。
  5. ^ Numerical computation features for Mathematica 5.0 Rob Knapp

関連項目

外部リンク