From 67a52713b76eaae5064d473ba74016b6a244bff7 Mon Sep 17 00:00:00 2001 From: Bas Nijholt <basnijholt@gmail.com> Date: Mon, 15 Oct 2018 13:39:55 +0200 Subject: [PATCH] fix the math domain error that occured when all numbers are equal This closes #62. --- adaptive/learner/average_learner.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/adaptive/learner/average_learner.py b/adaptive/learner/average_learner.py index f381d55f..a62d9b2a 100644 --- a/adaptive/learner/average_learner.py +++ b/adaptive/learner/average_learner.py @@ -89,7 +89,11 @@ class AverageLearner(BaseLearner): n = self.npoints if n < 2: return np.inf - return sqrt((self.sum_f_sq - n * self.mean**2) / (n - 1)) + numerator = self.sum_f_sq - n * self.mean**2 + if numerator < 0: + # in this case the numerator ~ -1e-15 + return 0 + return sqrt(numerator / (n - 1)) @cache_latest def loss(self, real=True, *, n=None): -- GitLab