From a1ce0eade5284777b4bf44e717286276bedd82d2 Mon Sep 17 00:00:00 2001 From: Hu Zhao <zhao@mbd.rwth-aachen.de> Date: Tue, 1 Nov 2022 17:12:44 +0100 Subject: [PATCH] feat: add overflow check for np.exp --- src/psimpy/inference/bayes_inference.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/psimpy/inference/bayes_inference.py b/src/psimpy/inference/bayes_inference.py index 9980154..68095dd 100644 --- a/src/psimpy/inference/bayes_inference.py +++ b/src/psimpy/inference/bayes_inference.py @@ -9,7 +9,8 @@ from beartype.typing import Callable from beartype import beartype _min_float = 10**(sys.float_info.min_10_exp) - +_max_float = 10**(sys.float_info.max_10_exp) +_max_e = np.log(np.array(_max_float, dtype=np.float128)) class BayesInferenceBase(ABC): @@ -192,6 +193,8 @@ class GridEstimation(BayesInferenceBase): self.ln_pxl(point_i, *self.args_ln_pxl, **self.kwgs_ln_pxl) ln_unnorm_posterior = ln_unnorm_posterior.reshape(xx_matrices[0].shape) + ln_unnorm_posterior = np.where( + ln_unnorm_posterior >= _max_e, _max_e, ln_unnorm_posterior) unnorm_posterior = np.exp(ln_unnorm_posterior) posterior = unnorm_posterior / np.sum(unnorm_posterior) / np.prod(steps) -- GitLab