check ("log (2) == M_LN2", FUNC(log) (2), M_LN2l);
check_eps ("log (2) == M_LN2", FUNC(log) (2), M_LN2l, CHOOSE (6e-20L, 0, 0));
log_test (void){  check_isinfn_exc ("log (+0) == -inf plus divide-by-zero exception",		    FUNC(log) (0), DIVIDE_BY_ZERO_EXCEPTION);  check_isinfn_exc ("log (-0) == -inf plus divide-by-zero exception",		    FUNC(log) (minus_zero), DIVIDE_BY_ZERO_EXCEPTION);  check ("log (1) == 0", FUNC(log) (1), 0);  check_isnan_exc ("log (x) == NaN plus invalid 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_El), 1, CHOOSE (1e-18L, 0, 9e-8L));  check_eps ("log (1/e) == -1", FUNC(log) (1.0 / M_El), -1,	     CHOOSE (2e-18L, 0, 0));  check ("log (2) == M_LN2", FUNC(log) (2), M_LN2l);  check_eps ("log (10) == M_LN10", FUNC(log) (10), M_LN10l,	     CHOOSE (1e-18L, 0, 0));  check_eps ("log (0.7) == -0.3566749439...", FUNC(log) (0.7),	     -0.35667494393873237891L, CHOOSE(7e-17L, 6e-17, 3e-8));}