int main (int argc, char *argv[]) { #ifdef WITH_FPU_CONTROL fpu_control_t cw; /* cw=895 (0x037f): round to double extended precision cw=639 (0x027f): round to double precision cw=127 (0x007f): round to single precision */ if (argc > 1) { cw = strtol(argv[1], NULL, 0); printf ("FPU control word: 0x%x\n", (unsigned int) cw); _FPU_SETCW (cw); } #endif tests_start_mpfr (); check_special (); check_large (); check_small (); tests_end_mpfr (); return 0; }
int main (int argc, char *argv[]) { mpfr_t x; mpfr_prec_t p; mpfr_rnd_t rnd; tests_start_mpfr (); p = 53; if (argc > 1) { long a = atol (argv[1]); if (MPFR_PREC_COND (a)) p = a; } rnd = (argc > 2) ? (mpfr_rnd_t) atoi(argv[2]) : MPFR_RNDZ; mpfr_init2 (x, p); mpfr_const_pi (x, rnd); if (argc >= 2) { if (argc < 4 || atoi (argv[3]) != 0) { printf ("Pi="); mpfr_out_str (stdout, 10, 0, x, rnd); puts (""); } } else if (mpfr_cmp_str1 (x, "3.141592653589793116") ) { printf ("mpfr_const_pi failed for prec=53\n"); mpfr_out_str (stdout, 10, 0, x, MPFR_RNDN); putchar('\n'); exit (1); } mpfr_set_prec (x, 32); mpfr_const_pi (x, MPFR_RNDN); if (mpfr_cmp_str1 (x, "3.141592653468251") ) { printf ("mpfr_const_pi failed for prec=32\n"); exit (1); } mpfr_clear (x); bug20091030 (); check_large (); test_generic (MPFR_PREC_MIN, 200, 1); RUN_PTHREAD_TEST(); tests_end_mpfr (); return 0; }
int main (int argc, char *argv[]) { tests_start_mpfr (); check_large (); check_zero (); test_generic (2, 100, 5); tests_end_mpfr (); return 0; }
int main (int argc, char *argv[]) { long j; tests_start_mpfr (); check_large (); check (0, MPFR_RNDN); for (j = 0; j < 200000; j++) check (randlimb () & LONG_MAX, RND_RAND ()); check0 (); tests_end_mpfr (); return 0; }
int main (int argc, char* argv[]) { tests_start_mpfr (); check_special (); check_large (); check4 ("2.0", "1.0", MPFR_RNDN, "1.456791031046906869", -1); check4 ("6.0", "4.0", MPFR_RNDN, "4.949360872472608925", 1); check4 ("62.0", "61.0", MPFR_RNDN, "61.498983718845075902", -1); check4 ("0.5", "1.0", MPFR_RNDN, "0.72839551552345343459", -1); check4 ("1.0", "2.0", MPFR_RNDN, "1.456791031046906869", -1); check4 ("234375765.0", "234375000.0", MPFR_RNDN, "234375382.49984394025", 1); check4 ("8.0", "1.0", MPFR_RNDU, "3.61575617759736274873", 1); check4 ("1.0", "44.0", MPFR_RNDU, "13.3658354512981243907", 1); check4 ("1.0", "3.7252902984619140625e-9", MPFR_RNDU, "0.07553933569711989657765", 1); test_generic (2, 300, 17); tests_end_mpfr (); return 0; }
int main (int argc, char* argv[]) { tests_start_mpfr (); check_nans (); check_large (); check4 ("2.0", "1.0", MPFR_RNDN, "1.45679103104690677029"); check4 ("6.0", "4.0", MPFR_RNDN, "4.94936087247260925182"); check4 ("62.0", "61.0", MPFR_RNDN, "6.14989837188450749750e+01"); check4 ("0.5", "1.0", MPFR_RNDN, "7.28395515523453385143e-01"); check4 ("1.0", "2.0", MPFR_RNDN, "1.45679103104690677029"); check4 ("234375765.0", "234375000.0", MPFR_RNDN, "2.3437538249984395504e8"); check4 ("8.0", "1.0", MPFR_RNDU, "3.615756177597362786"); check4 ("1.0", "44.0", MPFR_RNDU, "1.33658354512981247808e1"); check4 ("1.0", "3.7252902984619140625e-9", MPFR_RNDU, "7.55393356971199025907e-02"); test_generic (2, 300, 17); tests_end_mpfr (); return 0; }
int main (int argc, char *argv[]) { mpfr_t x; int p; mpfr_rnd_t rnd; tests_start_mpfr (); p = (argc>1) ? atoi(argv[1]) : 53; rnd = (argc>2) ? (mpfr_rnd_t) atoi(argv[2]) : MPFR_RNDZ; mpfr_init (x); check (2, 1000); /* check precision of 2 bits */ mpfr_set_prec (x, 2); mpfr_const_log2 (x, MPFR_RNDN); if (mpfr_cmp_ui_2exp(x, 3, -2)) /* 3*2^-2 */ { printf ("mpfr_const_log2 failed for prec=2, rnd=MPFR_RNDN\n" "expected 0.75, got "); mpfr_out_str(stdout, 10, 0, x, MPFR_RNDN); putchar('\n'); exit (1); } if (argc>=2) { mpfr_set_prec (x, p); mpfr_const_log2 (x, rnd); printf ("log(2)="); mpfr_out_str (stdout, 10, 0, x, rnd); puts (""); } mpfr_set_prec (x, 53); mpfr_const_log2 (x, MPFR_RNDZ); if (mpfr_cmp_str1 (x, "6.9314718055994530941e-1") ) { printf ("mpfr_const_log2 failed for prec=53\n"); exit (1); } mpfr_set_prec (x, 32); mpfr_const_log2 (x, MPFR_RNDN); if (mpfr_cmp_str1 (x, "0.69314718060195446")) { printf ("mpfr_const_log2 failed for prec=32\n"); exit (1); } mpfr_clear(x); check_large(); check_cache (); test_generic (2, 200, 1); tests_end_mpfr (); return 0; }
int main (int argc, char *argv[]) { tests_start_mpfr (); if (argc > 1) check_large (); check_inexact (); check_special (); test_generic (2, 100, 100); compare_exp2_exp3 (20, 1000); check_worst_cases(); check3("0.0", MPFR_RNDU, "1.0"); check3("-1e-170", MPFR_RNDU, "1.0"); check3("-1e-170", MPFR_RNDN, "1.0"); check3("-8.88024741073346941839e-17", MPFR_RNDU, "1.0"); check3("8.70772839244701057915e-01", MPFR_RNDN, "2.38875626491680437269"); check3("1.0", MPFR_RNDN, "2.71828182845904509080"); check3("-3.42135637628104173534e-07", MPFR_RNDZ, "0.999999657864420798958"); /* worst case for argument reduction, very near from 5*log(2), thanks to Jean-Michel Muller */ check3("3.4657359027997265421", MPFR_RNDN, "32.0"); check3("3.4657359027997265421", MPFR_RNDU, "32.0"); check3("3.4657359027997265421", MPFR_RNDD, "31.999999999999996447"); check3("2.26523754332090625496e+01", MPFR_RNDD, "6.8833785261699581146e9"); check3("1.31478962104089092122e+01", MPFR_RNDZ, "5.12930793917860137299e+05"); check3("4.25637507920002378103e-01", MPFR_RNDU, "1.53056585656161181497e+00"); check3("6.26551618962329307459e-16", MPFR_RNDU, "1.00000000000000066613e+00"); check3("-3.35589513871216568383e-03",MPFR_RNDD, "9.96649729583626853291e-01"); check3("1.95151388850007272424e+01", MPFR_RNDU, "2.98756340674767792225e+08"); check3("2.45045953503350730784e+01", MPFR_RNDN, "4.38743344916128387451e+10"); check3("2.58165606081678085104e+01", MPFR_RNDD, "1.62925781879432281494e+11"); check3("-2.36539020084338638128e+01",MPFR_RNDZ, "5.33630792749924762447e-11"); check3("2.39211946135858077866e+01", MPFR_RNDU, "2.44817704330214385986e+10"); check3("-2.78190533055889162029e+01",MPFR_RNDZ, "8.2858803483596879512e-13"); check3("2.64028186174889789584e+01", MPFR_RNDD, "2.9281844652878973388e11"); check3("2.92086338843268329413e+01", MPFR_RNDZ, "4.8433797301907177734e12"); check3("-2.46355324071459982349e+01",MPFR_RNDZ, "1.9995129297760994791e-11"); check3("-2.23509444608605427618e+01",MPFR_RNDZ, "1.9638492867489702307e-10"); check3("-2.41175390197331687148e+01",MPFR_RNDD, "3.3564940885530624592e-11"); check3("2.46363885231578088053e+01", MPFR_RNDU, "5.0055014282693267822e10"); check3("111.1263531080090984914932050742208957672119140625", MPFR_RNDN, "1.8262572323517295459e48"); check3("-3.56196340354684821250e+02",MPFR_RNDN, "2.0225297096141478156e-155"); check3("6.59678273772710895173e+02", MPFR_RNDU, "3.1234469273830195529e286"); check3("5.13772529701934331570e+02", MPFR_RNDD, "1.3445427121297197752e223"); check3("3.57430211008718345056e+02", MPFR_RNDD, "1.6981197246857298443e155"); check3("3.82001814471465536371e+02", MPFR_RNDU, "7.9667300591087367805e165"); check3("5.92396038219384422518e+02", MPFR_RNDD, "1.880747529554661989e257"); check3("-5.02678550462488090034e+02",MPFR_RNDU, "4.8919201895446217839e-219"); check3("5.30015757134837031117e+02", MPFR_RNDD, "1.5237672861171573939e230"); check3("5.16239362447650933063e+02", MPFR_RNDZ, "1.5845518406744492105e224"); check3("6.00812634798592370977e-01", MPFR_RNDN, "1.823600119339019443"); check_exp10 (); bug20080731 (); overflowed_exp0 (); underflow (); data_check ("data/exp", mpfr_exp, "mpfr_exp"); bad_cases (mpfr_exp, mpfr_log, "mpfr_exp", 0, -256, 255, 4, 128, 800, 50); tests_end_mpfr (); return 0; }
int main (int argc, char *argv[]) { int b; mpfr_t x; mpfr_rnd_t r; char s[MAX_DIGITS + 2]; mpfr_exp_t e, f; size_t m; mpfr_prec_t p; int i; tests_start_mpfr (); check_small (); check_special (2, 2); for (i = 0; i < ITER; i++) { p = 2 + (randlimb () % (MAX_DIGITS - 1)); b = 2 + (randlimb () % 35); check_special (b, p); } mpfr_init2 (x, MAX_DIGITS); for (i = 0; i < ITER; i++) { m = 2 + (randlimb () % (MAX_DIGITS - 1)); mpfr_urandomb (x, RANDS); e = (mpfr_exp_t) (randlimb () % 21) - 10; if (!MPFR_IS_ZERO(x)) mpfr_set_exp (x, (e == -10) ? mpfr_get_emin () : ((e == 10) ? mpfr_get_emax () : e)); b = 2 + (randlimb () % 35); r = RND_RAND (); mpfr_get_str (s, &f, b, m, x, r); } mpfr_clear (x); check_large (); check3 ("4.059650008e-83", MPFR_RNDN, "40597"); check3 ("-6.606499965302424244461355e233", MPFR_RNDN, "-66065"); check3 ("-7.4", MPFR_RNDN, "-74000"); check3 ("0.997", MPFR_RNDN, "99700"); check3 ("-4.53063926135729747564e-308", MPFR_RNDN, "-45306"); check3 ("2.14478198760196000000e+16", MPFR_RNDN, "21448"); check3 ("7.02293374921793516813e-84", MPFR_RNDN, "70229"); check3 ("-6.7274500420134077e-87", MPFR_RNDN, "-67275"); check3 ("-6.7274500420134077e-87", MPFR_RNDZ, "-67274"); check3 ("-6.7274500420134077e-87", MPFR_RNDU, "-67274"); check3 ("-6.7274500420134077e-87", MPFR_RNDD, "-67275"); check3 ("-6.7274500420134077e-87", MPFR_RNDA, "-67275"); check3 ("6.7274500420134077e-87", MPFR_RNDN, "67275"); check3 ("6.7274500420134077e-87", MPFR_RNDZ, "67274"); check3 ("6.7274500420134077e-87", MPFR_RNDU, "67275"); check3 ("6.7274500420134077e-87", MPFR_RNDD, "67274"); check3 ("6.7274500420134077e-87", MPFR_RNDA, "67275"); check_bug_base2k (); check_reduced_exprange (); tests_end_mpfr (); return 0; }