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