GMP(GNU Multi-Precision Library)をUbuntuにインストール

任意精度演算を行うためのライブラリにGNU Multi-Precision Library(GMP)というものが有ります。このライブラリをUbuntu(14.04)にインストールする方法をまとめます。

GMP公式サイト https://gmplib.org/

そもそも、任意精度演算とは、数値の桁の精度をメモリの容量が許す限り確保する計算技法であります。たとえば、結果が何千桁にも及ぶ巨大な数値になる場合や、円周率などの延々と続く無理数を求める場合などに使われています。
即ち、C言語で言うlong型やdouble型で扱いきれない精度がほしいならこのような技法が必要となってくるわけですね。

GMPをインストール

さて、本題です。

今回は、現時点で最新版の6.1.1をインストールします。

まずはじめにGMPに必要なソフトapt-getでをインストールします。

sudo apt-get install m4

次に、公式サイトよりソースコードをダウンロードして解凍し、できたディレクトリに移動します。

wget https://gmplib.org/download/gmp/gmp-6.1.1.tar.bz2
tar xjvf gmp-6.1..tar.bz2
cd gmp-6.1.1

次に、configureを実行します。この時インストール先の指定と、ついでにC++のサポートも追加しました。

sudo ./configure --prefix=/usr/local --enable-cxx

ここまでできたらあとはmakeして、エラーがないことを確認しインストールするだけです。

sudo make -j4
sudo make check
sudo make install

これでインストールは完了です。
試しに123の456乗を計算してみます。

#include <stdio.h>
#include <gmp.h>

int main()
{
	mpz_t a;
	mpz_init(a);
	mpz_ui_pow_ui(a, 123, 456);
	mpz_out_str (stdout, 10, a); 
	printf("\n");
	mpz_clear(a);
	return 0;
}
gcc test.c -lgmp -o GMPTest
./GMPTest
99250068772098856700831462057469632637295940819886900519816298881382867104749399077921128661426144638055424236936271872492800352741649902118143819672601569998100120790496759517636465445895625741609866209900500198407153244604778968016963028050310261417615914468729918240685487878617645976939063464357986165711730976399478507649228686341466967167910126653342134942744851463899927487092486610977146112763567101672645953132196481439339873017088140414661271198500333255713096142335151414630651683065518784081203678487703002802082091236603519026256880624499681781387227574035484831271515683123742149095569260463609655977700938844580611931246495166208695540313698140011638027322566252689780838136351828795314272162111222231170901715612355701347552371530013693855379834865667060014643302459100429783653966913783002290784283455628283355470529932956051484477129333881159930212758687602795088579230431661696010232187390436601614145603241902386663442520160735566561

無事動きました(結果が正しいかわからないけど)。一体何桁あるんでしょうか。

以上でGMPをUbuntuにインストールする方法のまとめは終わりです。
GMPの詳しい使い方は後日まとめられたらいいなと。

追記 2016/11/7
使い方まとめました
GMP(GNU Multi-Precision Library)の使い方1 変数編
GMP(GNU Multi-Precision Library)の使い方2 四則演算編
GMP(GNU Multi-Precision Library)の使い方3 その他演算編

カテゴリー: C, Ubuntu, ソフトウェア パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です