{add(add(sinh(one), add(cosh(one), add(tanh(one), coth(one)))), sech(r3)), 5.773239267559}, {sub(add(add(asinh(r4), add(acosh(r4), add(atanh(r3), acoth(r4)))), sech(r4)), acsch(r4)), 4.825120290814}, {SymEngine::abs(log(div(pi, mul(E, integer(2))))), 0.548417294710}, {SymEngine::atan2(r1, neg(r2)), 2.08867384922582}, {mul(pi, mul(E, EulerGamma)), 4.92926836742289}, {pow(mul(EulerGamma, r4), integer(8)), 4813.54354505117582}, {mul(EulerGamma, integer(10)), 5.7721566490153286}, {max({r2, r1}), 0.841470984808}, {min({add(r1, r4), r2}), 0.479425538604}, {gamma(div(integer(4), integer(3))), 0.892979511569249211}, {loggamma(div(integer(7), integer(2))), 1.200973602347074224}, {loggamma(pi), 0.82769459232343710152}, {add(asech(div(one, integer(2))), real_double(0.1)), 1.41695789692482}, {r5, 0.841470984807897}, }; for (unsigned i = 0; i < vec.size(); i++) { double val = eval_double(*vec[i].first); std::cout.precision(12); std::cout << vec[i].first->__str__() << " ~ " << val << std::endl; REQUIRE(::fabs(val - vec[i].second) < 1e-12); } for (unsigned i = 0; i < vec.size(); i++) { double val = eval_double_single_dispatch(*vec[i].first); REQUIRE(::fabs(val - vec[i].second) < 1e-12);
REQUIRE(mpfr_cmp_d(a, 0.00000000182845) == 1); REQUIRE(mpfr_cmp_d(a, 0.00000000182846) == -1); r = max({integer(3), integer(2)}); eval_mpfr(a, *r, MPFR_RNDN); REQUIRE(mpfr_cmp_d(a, 3.00000000000001) == -1); REQUIRE(mpfr_cmp_d(a, 2.99999999999999) == 1); r = min({sqrt(integer(3)), sqrt(integer(2))}); eval_mpfr(a, *r, MPFR_RNDN); REQUIRE(mpfr_cmp_d(a, 1.41421356238) == -1); REQUIRE(mpfr_cmp_d(a, 1.41421356236) == 1); r = loggamma(E); eval_mpfr(a, *r, MPFR_RNDN); REQUIRE(mpfr_cmp_d(a, 0.44946174183) == -1); REQUIRE(mpfr_cmp_d(a, 0.44946174181) == 1); r = loggamma(integer(5)); eval_mpfr(a, *r, MPFR_RNDN); REQUIRE(mpfr_cmp_d(a, 3.17805383035) == -1); REQUIRE(mpfr_cmp_d(a, 3.17805383033) == 1); r = erf(integer(2)); eval_mpfr(a, *r, MPFR_RNDN); REQUIRE(mpfr_cmp_d(a, 0.995322265019) == -1); REQUIRE(mpfr_cmp_d(a, 0.995322265017) == 1);