The GNU MP Home Page

むにむに。有理数の四則演算は出来るらしい。例の同じ生年月日問題とかにはヨサゲな感じ。

* 同じ生年月日問題

を GMP でやってみた。が、遅い、遅すぎる。ループの中身を実行するのに、手元のK6で0.9msもかかる。まぁ、こんなものなのかなぁ。

ちなみにソースはこんな感じ。

#include<stdio.h>
#include<gmp.h>
main()
{
        int n = 86400000;
        int r =  3000000;
        int i;
        mpq_t sum;
        mpq_t mpq;
        mpq_init(sum);
        mpq_init(mpq);
        mpq_set_si(sum, 1, 1);
        for(i = 0; i < r; i++){
                mpq_set_si(mpq, n - i, n);
                mpq_mul(sum, sum, mpq);
        }
        printf("result> %f\n", 1.0 - mpq_get_d(sum));
}