#include #include #include #include int main (void) { mpfr_t x[2]; mpfr_rnd_t r[2] = { MPFR_RNDD, MPFR_RNDU }; char s[2][32]; mpfr_exp_t e; int i; mpfr_inits2 (64, x[0], x[1], (mpfr_ptr) 0); for (i = 0; i < 2; i++) { mpfr_sqrt_ui (x[i], 2, r[i]); mpfr_get_str (s[i], &e, 8, 17, x[i], MPFR_RNDZ); assert (e == 1); } assert (strcmp (s[0], s[1]) == 0); printf ("sqrt(2) = %c.%s...\n", s[0][0], s[0] + 1); for (i = 0; i < 2; i++) { mpfr_sqrt_ui (x[i], 3, r[i]); mpfr_get_str (s[i], &e, 8, 17, x[i], MPFR_RNDZ); assert (e == 1); } assert (strcmp (s[0], s[1]) == 0); printf ("sqrt(3) = %c.%s...\n", s[0][0], s[0] + 1); for (i = 0; i < 2; i++) { mpfr_sqrt_ui (x[i], 5, r[i]); mpfr_get_str (s[i], &e, 8, 17, x[i], MPFR_RNDZ); assert (e == 1); } assert (strcmp (s[0], s[1]) == 0); printf ("sqrt(5) = %c.%s...\n", s[0][0], s[0] + 1); for (i = 0; i < 2; i++) { mpfr_add_ui (x[i], x[i], 1, r[i]); mpfr_div_2ui (x[i], x[i], 1, r[i]); mpfr_get_str (s[i], &e, 8, 17, x[i], MPFR_RNDZ); assert (e == 1); } assert (strcmp (s[0], s[1]) == 0); printf ("phi = %c.%s...\n", s[0][0], s[0] + 1); for (i = 0; i < 2; i++) { mpfr_const_pi (x[i], r[i]); mpfr_get_str (s[i], &e, 8, 17, x[i], MPFR_RNDZ); assert (e == 1); } assert (strcmp (s[0], s[1]) == 0); printf ("pi = %c.%s...\n", s[0][0], s[0] + 1); for (i = 0; i < 2; i++) { mpfr_set_ui (x[i], 1, r[i]); mpfr_exp (x[i], x[i], r[i]); mpfr_get_str (s[i], &e, 8, 17, x[i], MPFR_RNDZ); assert (e == 1); } assert (strcmp (s[0], s[1]) == 0); printf ("e = %c.%s...\n", s[0][0], s[0] + 1); mpfr_clears (x[0], x[1], (mpfr_ptr) 0); return 0; } /* To check https://en.wikipedia.org/wiki/Octal#Irrational_numbers * * $Id: octal.c 112045 2018-10-04 22:29:43Z vinc17/zira $ */