The GNU MP Bignum Library

オイラー見てたら、多倍長演算ライブラリ発見。

The GNU MP Bignum Library

#include <gmp.h>

int main(void)
{
    mpz_t a, b, c;

    mpz_init_set_str(a, "1234567890123456789012345678901234567890", 0);
    mpz_init_set_str(b, "1234567890123456789012345678901234567890", 0);
    mpz_init(c);

    mpz_mul(c, a, b);
    gmp_printf("%Zd\n", c);

    mpz_clear(a);
    mpz_clear(b);
    mpz_clear(c);

    return 0;
}

ちょっと面倒だけど、コンパイルは簡単。

% gcc mpz.c -lgmp
% ./a.out
1524157875323883675049535156256668194500533455762536198787501905199875019052100

おぉぉぉぉぉぉぉぉスゲ〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜


気に入った。


海外では結構使われてるみたいだけど、日本語の情報が殆ど無いな・・・。

マニュアルを見ると、mpz_が整数、mpf_が浮動小数、mpq_が複素数gmp_がユーティリティ系。ま、こんだけ解れば充分か。