check_eps ("log (e) == 1", FUNC(log) (M_E), 1, CHOOSE (0, 0, 9e-8L)); check ("log (1/e) == -1", FUNC(log) (1.0 / M_E), -1);
check_eps ("log (e) == 1", FUNC(log) (M_E), 1, CHOOSE (1e-18L, 0, 9e-8L)); check_eps ("log (1/e) == -1", FUNC(log) (1.0 / M_E), -1, CHOOSE (2e-18L, 0, 0));
log_test (void){  check_isinfn_exc ("log (+0) == -inf", FUNC(log) (0),		    DIVIDE_BY_ZERO_EXCEPTION);  check_isinfn_exc ("log (-0) == -inf", FUNC(log) (minus_zero),		    DIVIDE_BY_ZERO_EXCEPTION);  check ("log (1) == 0", FUNC(log) (1), 0);  check_isnan_exc ("log (x) == NaN plus divide-by-zero exception if x < 0",		   FUNC(log) (-1), INVALID_EXCEPTION);  check_isinfp ("log (+inf) == +inf", FUNC(log) (plus_infty));  check_eps ("log (e) == 1", FUNC(log) (M_E), 1, CHOOSE (0, 0, 9e-8L));  check ("log (1/e) == -1", FUNC(log) (1.0 / M_E), -1);  check ("log (2) == M_LN2", FUNC(log) (2), M_LN2);  check ("log (10) == M_LN10", FUNC(log) (10), M_LN10);}