Пример #1
0
int
main (int argc, char *argv[])
{
  tests_start_mpfr ();

  check_inexact ();
  check_special ();

  test_generic (2, 100, 100);

  compare_exp2_exp3(500);
  check_worst_cases();
  check3("0.0", GMP_RNDU, "1.0");
  check3("-1e-170", GMP_RNDU, "1.0");
  check3("-1e-170", GMP_RNDN, "1.0");
  check3("-8.88024741073346941839e-17", GMP_RNDU, "1.0");
  check3("8.70772839244701057915e-01", GMP_RNDN, "2.38875626491680437269");
  check3("1.0", GMP_RNDN, "2.71828182845904509080");
  check3("-3.42135637628104173534e-07", GMP_RNDZ, "0.999999657864420798958");
  /* worst case for argument reduction, very near from 5*log(2),
     thanks to Jean-Michel Muller  */
  check3("3.4657359027997265421", GMP_RNDN, "32.0");
  check3("3.4657359027997265421", GMP_RNDU, "32.0");
  check3("3.4657359027997265421", GMP_RNDD, "31.999999999999996447");
  check3("2.26523754332090625496e+01", GMP_RNDD, "6.8833785261699581146e9");
  check3("1.31478962104089092122e+01", GMP_RNDZ, "5.12930793917860137299e+05");
  check3("4.25637507920002378103e-01", GMP_RNDU, "1.53056585656161181497e+00");
  check3("6.26551618962329307459e-16", GMP_RNDU, "1.00000000000000066613e+00");
  check3("-3.35589513871216568383e-03",GMP_RNDD, "9.96649729583626853291e-01");
  check3("1.95151388850007272424e+01", GMP_RNDU, "2.98756340674767792225e+08");
  check3("2.45045953503350730784e+01", GMP_RNDN, "4.38743344916128387451e+10");
  check3("2.58165606081678085104e+01", GMP_RNDD, "1.62925781879432281494e+11");
  check3("-2.36539020084338638128e+01",GMP_RNDZ, "5.33630792749924762447e-11");
  check3("2.39211946135858077866e+01", GMP_RNDU, "2.44817704330214385986e+10");
  check3("-2.78190533055889162029e+01",GMP_RNDZ, "8.2858803483596879512e-13");
  check3("2.64028186174889789584e+01", GMP_RNDD, "2.9281844652878973388e11");
  check3("2.92086338843268329413e+01", GMP_RNDZ, "4.8433797301907177734e12");
  check3("-2.46355324071459982349e+01",GMP_RNDZ, "1.9995129297760994791e-11");
  check3("-2.23509444608605427618e+01",GMP_RNDZ, "1.9638492867489702307e-10");
  check3("-2.41175390197331687148e+01",GMP_RNDD, "3.3564940885530624592e-11");
  check3("2.46363885231578088053e+01", GMP_RNDU, "5.0055014282693267822e10");
  check3("111.1263531080090984914932050742208957672119140625", GMP_RNDN, "1.8262572323517295459e48");
  check3("-3.56196340354684821250e+02",GMP_RNDN, "2.0225297096141478156e-155");
  check3("6.59678273772710895173e+02", GMP_RNDU, "3.1234469273830195529e286");
  check3("5.13772529701934331570e+02", GMP_RNDD, "1.3445427121297197752e223");
  check3("3.57430211008718345056e+02", GMP_RNDD, "1.6981197246857298443e155");
  check3("3.82001814471465536371e+02", GMP_RNDU, "7.9667300591087367805e165");
  check3("5.92396038219384422518e+02", GMP_RNDD, "1.880747529554661989e257");
  check3("-5.02678550462488090034e+02",GMP_RNDU, "4.8919201895446217839e-219");
  check3("5.30015757134837031117e+02", GMP_RNDD, "1.5237672861171573939e230");
  check3("5.16239362447650933063e+02", GMP_RNDZ, "1.5845518406744492105e224");
  check3("6.00812634798592370977e-01", GMP_RNDN, "1.823600119339019443");
  check_exp10 ();

  tests_end_mpfr ();
  return 0;
}
Пример #2
0
int
main (int argc, char *argv[])
{
  tests_start_mpfr ();

  if (argc==4)
    {   /* tlog x prec rnd */
      check3 (atof(argv[1]), atoi(argv[2]), (mp_rnd_t) atoi(argv[3]));
      goto done;
    }

  special ();
  check_worst_cases();

  check2("1.01979300812244555452", GMP_RNDN, "1.95996734891603664741e-02");
  check2("10.0",GMP_RNDU,"2.30258509299404590110e+00");
  check2("6.0",GMP_RNDU,"1.79175946922805517936");
  check2("1.0",GMP_RNDZ,"0.0");
  check2("62.0",GMP_RNDU,"4.12713438504509166905");
  check2("0.5",GMP_RNDZ,"-6.93147180559945286226e-01");
  check2("3.0",GMP_RNDZ,"1.09861228866810956006e+00");
  check2("234375765.0",GMP_RNDU,"1.92724362186836231104e+01");
  check2("8.0",GMP_RNDZ,"2.07944154167983574765e+00");
  check2("44.0",GMP_RNDU,"3.78418963391826146392e+00");
  check2("1.01979300812244555452", GMP_RNDN, "1.95996734891603664741e-02");

  /* bugs found by Vincent Lefe`vre */
  check2("0.99999599881598921769", GMP_RNDN, "-0.0000040011920155404072924737977900999652547398000024259090423583984375");
  check2("9.99995576063808955247e-01",GMP_RNDZ,"-4.42394597667932383816e-06");
  check2("9.99993687357856209097e-01",GMP_RNDN,"-6.31266206860017342601e-06");
  check2("9.99995223520736886691e-01",GMP_RNDN,"-4.77649067052670982220e-06");
  check2("9.99993025794720935551e-01",GMP_RNDN,"-6.97422959894716163837e-06");
  check2("9.99987549017837484833e-01",GMP_RNDN,"-1.24510596766369924330e-05");
  check2("9.99985901426543311032e-01",GMP_RNDN,"-1.40986728425098585229e-05");
  check2("9.99986053947420794330e-01",GMP_RNDN, "-0.000013946149826301084938555592540598837558718514628708362579345703125");
  check2("9.99971938247442126979e-01",GMP_RNDN,"-2.80621462962173414790e-05");

  /* other bugs found by Vincent Lefe`vre */
  check2("1.18615436389927785905e+77",GMP_RNDN,"1.77469768607706015473e+02");
  check2("9.48868723578399476187e+77",GMP_RNDZ,"1.79549152432275803903e+02");
  check2("2.31822210096938820854e+89",GMP_RNDN,"2.05770873832573869322e+02");

  /* further bugs found by Vincent Lefe`vre */
  check2("9.99999989485669482647e-01",GMP_RNDZ,"-1.05143305726283042331e-08");
  check2("9.99999989237970177136e-01",GMP_RNDZ,"-1.07620298807745377934e-08");
  check2("9.99999989239339082125e-01",GMP_RNDN,"-1.07606609757704445430e-08");

  check2("7.3890560989306504",GMP_RNDU,"2.0000000000000004"); /* exp(2.0) */
  check2("7.3890560989306495",GMP_RNDU,"2.0"); /* exp(2.0) */
  check2("7.53428236571286402512e+34",GMP_RNDZ,"8.03073567492226345621e+01");
  check2("6.18784121531737948160e+19",GMP_RNDZ,"4.55717030391710693493e+01");
  check2("1.02560267603047283735e+00",GMP_RNDD,"2.52804164149448735987e-02");
  check2("7.53428236571286402512e+34",GMP_RNDZ,"8.03073567492226345621e+01");
  check2("1.42470900831881198052e+49",GMP_RNDZ,"113.180637144887668910087086260318756103515625");

  check2("1.08013816255293777466e+11",GMP_RNDN,"2.54055249841782604392e+01");
  check2("6.72783635300509015581e-37",GMP_RNDU,"-8.32893948416799503320e+01");
  check2("2.25904918906057891180e-52",GMP_RNDU,"-1.18919480823735682406e+02");
  check2("1.48901209246462951085e+00",GMP_RNDD,"3.98112874867437460668e-01");
  check2("1.70322470467612341327e-01",GMP_RNDN,"-1.77006175364294615626");
  check2("1.94572026316065240791e+01",GMP_RNDD,"2.96821731676437838842");
  check2("4.01419512207026418764e+04",GMP_RNDD,"1.06001772315501128218e+01");
  check2("9.47077365236487591672e-04",GMP_RNDZ,"-6.96212977303956748187e+00");
  check2("3.95906157687589643802e-109",GMP_RNDD,"-2.49605768114704119399e+02");
  check2("2.73874914516503004113e-02",GMP_RNDD,"-3.59766888618655977794e+00");
  check2("9.18989072589566467669e-17",GMP_RNDZ,"-3.69258425351464083519e+01");
  check2("7706036453608191045959753324430048151991964994788917248.0",GMP_RNDZ,"126.3815989984199177342816255986690521240234375");
  check2("1.74827399630587801934e-23",GMP_RNDZ,"-5.24008281254547156891e+01");
  check2("4.35302958401482307665e+22",GMP_RNDD,"5.21277441046519527390e+01");
  check2("9.70791868689332915209e+00",GMP_RNDD,"2.27294191194272210410e+00");
  check2("2.22183639799464011100e-01",GMP_RNDN,"-1.50425103275253957413e+00");
  check2("2.27313466156682375540e+00",GMP_RNDD,"8.21159787095675608448e-01");
  check2("6.58057413965851156767e-01",GMP_RNDZ,"-4.18463096196088235600e-01");
  check2 ("7.34302197248998461006e+43",GMP_RNDZ,"101.0049094695131799426235374994575977325439453125");
  check2("6.09969788341579732815e+00",GMP_RNDD,"1.80823924264386204363e+00");

  x_near_one ();

  test_generic (2, 100, 40);

  data_check ("data/log", mpfr_log, "mpfr_log");

 done:
  tests_end_mpfr ();
  return 0;
}