I haven't touched this in a while.
[frac.git] / pi.c
blobeaf467f2d956f7b01da80afcb6a39d402b0bb655
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <gmp.h>
5 #include "cf.h"
7 int main(int argc, char **argv) {
8 mpz_t z;
9 mpz_init(z);
10 cf_t pi, conv;
11 pi = cf_new_pi();
12 int n = 2037 + 1; // To outdo Metropolis, Reitwieser and von Neumann's
13 // 1949 ENIAC record.
14 if (argc > 1) {
15 n = atoi(argv[1]);
16 if (n <= 0) n = 100;
19 conv = cf_new_cf_to_decimal(pi);
20 for (int i = 0; i <= n; i++) {
21 cf_get(z, conv);
22 gmp_printf("%Zd", z);
23 if (!(i % 5)) putchar(' ');
24 if (!(i % 50)) putchar('\n');
26 if (n % 50) putchar('\n');
27 cf_free(conv);
28 cf_free(pi);
29 mpz_clear(z);
30 return 0;