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