mpz_t
GMP ライブラリの数をすばやくファイルに書き込む方法を知りたいです。たとえば、次の C コードがあります。
#include <stdio.h>
#include <gmp.h>
#include <time.h>
#include <stdlib.h>
int main(){
mpz_t p, q, inter1, inter2, tmp;
int i;
double t;
FILE* fichier;
mpz_inits(p, q, inter1, inter2, tmp, NULL);
mpz_set_ui(p, 1);
mpz_set_ui(q, 1);
t = (double) clock();
for (i = 0; i < 25; i++) {
mpz_set(tmp, p);
mpz_mul(inter1, q, q);
mpz_mul_ui(inter1, inter1, 2);
mpz_mul(inter2, p, p);
mpz_add(p, inter1, inter2);
mpz_mul(q, tmp, q);
mpz_mul_ui(q, q, 2);
}
printf("%lf\n", ((double) clock() - t)/CLOCKS_PER_SEC);
t = (double) clock();
fichier = fopen("num.txt", "w");
mpz_out_str(fichier, 10, p);
fclose(fichier);
printf("%lf\n", ((double) clock() - t)/CLOCKS_PER_SEC);
mpz_clears(p, q, inter1, inter2, tmp, NULL);
}
また、変数の値を計算するのに 6 秒しかかからないのp
に対し、この変数の値をファイルに書き込むには 22 秒かかります。
ファイルへの書き込み時間を改善するにはどうすればよいですか?