From b73a4554394c133567a580228189412b0b387921 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Mon, 13 Apr 2026 09:57:24 -0500 Subject: [PATCH] Normalize the input first --- Lib/statistics.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Lib/statistics.py b/Lib/statistics.py index 26cf925529ea60..e635b99f958e44 100644 --- a/Lib/statistics.py +++ b/Lib/statistics.py @@ -145,6 +145,7 @@ from collections import Counter, namedtuple, defaultdict _SQRT2 = sqrt(2.0) +_SQRT2PI = sqrt(tau) _random = random ## Exceptions ############################################################## @@ -1257,11 +1258,11 @@ def samples(self, n, *, seed=None): def pdf(self, x): "Probability density function. P(x <= X < x+dx) / dx" - variance = self._sigma * self._sigma - if not variance: + sigma = self._sigma + if not sigma: raise StatisticsError('pdf() not defined when sigma is zero') - diff = x - self._mu - return exp(diff * diff / (-2.0 * variance)) / sqrt(tau * variance) + z = (x - self._mu) / sigma + return exp(-0.5 * z * z) / (_SQRT2PI * sigma) def cdf(self, x): "Cumulative distribution function. P(X <= x)"