diff --git a/src/c/numbers/log.d b/src/c/numbers/log.d index 7745a6472225bedbbee4fcd6fe58b67705e88ecc..6ff5007526f532487d74a01b5bcddb6d890c0ee3 100644 --- a/src/c/numbers/log.d +++ b/src/c/numbers/log.d @@ -384,6 +384,9 @@ MATH_DEF_DISPATCH1(log1_long_precision, @[log], @[number], cl_object ecl_log2(cl_object x, cl_object y) { + /* The spec says "If base is zero, log returns zero" */ + if (ecl_zerop(x)) return ecl_make_fixnum(0); + cl_type tx = ecl_t_of(x); cl_type ty = ecl_t_of(y); /* Prevent loss of precision from intermediate single float results */