Dean Rasheed <dean.a.rash...@gmail.com> writes: > The issue is in this line from power_var_int(): > sig_digits += (int) log(Abs(exp)) + 8; > because "exp" is a signed int, so Abs(exp) leaves INT_MIN unchanged. > The most straightforward fix is to use fabs() instead, so that "exp" > is cast to double *before* the absolute value is taken, as in the > attached patch.
Nice catch, and the fix seems appropriate. regards, tom lane