MPCインストール

2024/12/24

MPCのインストール

MPCとは、任意精度で複素数の演算を行うためのライブラリです。
以降、GMPとMPFRは導入済みとし、MPCをソースからインストールします。実行環境は以下の通りです。

OS : Ubuntu 22.04.3 LTS
GMP : 6.3.0
MPFR : 4.2.1

インストール

2024年12月24日時点ではバージョン1.3.1が最新のようです。下記HPからダウンロードし、解凍します。
https://www.multiprecision.org/mpc/download.html

$ tar xzf mpc-1.3.1.tar.gz
$ cd mpc-1.3.1/

筆者の環境では$HOME/mylocalにGMPとMPFRをインストールしているので、configureの際にディレクトリを指定します。

$ ./configure --prefix=$HOME/mylocal --with-gmp=$HOME/mylocal --with-mpfr=$HOME/mylocal
$ make
$ make check
$ make install

サンプルプログラム

インストールが終わったら、単純なプログラム sample.c で動作を確かめます。

#include <stdio.h>
#include <mpc.h>

int main (void)
{
  unsigned int i;
  mpc_t s, t;

  mpc_init2 (t, 30);
  mpc_init2 (s, 50);
  mpc_set_ui (t, 1234, MPFR_RNDD);
  mpc_set_ui (s, 5678, MPFR_RNDD);

  printf ("t = ");
  mpc_out_str (stdout, 10, 0, t, MPFR_RNDD);
  putchar ('\n');

  printf ("s = ");
  mpc_out_str (stdout, 10, 0, s, MPFR_RNDD);
  putchar ('\n');

  mpc_clear (s);
  mpc_clear (t);
  return 0;
}

Makefileを一応つくります。

run: sample
        ./sample

sample.o: sample.c
        gcc -I$(HOME)/mylocal/include -c -o sample.o sample.c

sample: sample.o
        gcc -o sample sample.o $(HOME)/mylocal/lib/libmpc.so

サンプルプログラムを実行します。

$ make
(省略)
./sample
t = (1.2340000000e3 0)
s = (5.6780000000000000e3 0)

問題なさそうです。MPCのインストールは以上です。

参考文献

https://www.multiprecision.org/