GMP 入門

はじめに

ヘッダファイルとライブラリ

C や C++ で GMP を使いたければ,

#include <gmp.h>

としておけば良い. FILE * 型が出てくるときは,

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

にする. 同様に, 可変長引数を使うときは stdarg.h または varargs.h を, struct obstack を使う場合は obstack.h をインクルードする.

ライブラリのリンクは,

gcc myprogram.c -lgmp

とする. C++ のときは -lgmpxx も加える.

-I でヘッダファイルの場所を指定したり, -L でライブラリの場所を指定したりする必要があるかも.

関数の分類

関数には以下の6種類がある.

  1. mpz_ から始まるもの. 150 個ある. 整数(Zahlen)に関する関数. 整数型は mpz_t.
  2. mpq_ から始まるもの. 40 個ある. 有理数(quotient)に関する関数. 有理数型は mpq_t.
  3. mpf_ から始まるもの. 60 個ある. 浮動小数点(floating-point)に関する関数. 浮動小数点型は mpf_t.
  4. MINT 型がらみのもの. Berkeley MP と互換性がある.
  5. mpn_ から始まるもの. 30 個ほどある. 高速な低レベルの自然数(natural)に関する関数. 型は mp_limb_t.
  6. 雑多な関数. メモリ確保や乱数の関数など.