You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At one point in the calculation of BesselK[-1000, 700], the value of exp(-700) is computed, which is approximately $9.86{\times}10^{-305}$. An exponent of $-305$ is out-of-range for cpp_double_fp< eight-byte-double >, hence eval_exp() returns $0$ which cascades to the final output being $0$ as well.
The result of the modified Bessel function is not an extreme edge-case, but getting to this result relies on edge-case (or near edge-case) multiplication.
What's the strategy on such calculations?
Take the result of $0$ which is actually correct for the intermediate steps?
Modify the scaling of the calculation? This seems like an overly-curated approach to handling the special functions calculations in Math.
Eliminate the test point from the test suite for this particular backend type?
This curiously named issue relates to some of the discussions raised in #140.
In that issue we identified a test case:
At one point in the calculation of$9.86{\times}10^{-305}$ . An exponent of $-305$ is out-of-range for $0$ which cascades to the final output being $0$ as well.
BesselK[-1000, 700]
, the value ofexp(-700)
is computed, which is approximatelycpp_double_fp< eight-byte-double >
, henceeval_exp()
returnsThe result of the modified Bessel function is not an extreme edge-case, but getting to this result relies on edge-case (or near edge-case) multiplication.
What's the strategy on such calculations?
I'm curious what John (@jzmaddock) might think.
Cc: @sinandredemption and @cosurgi
The text was updated successfully, but these errors were encountered: