From f9363660316905ca5e02622275918c62a69096f2 Mon Sep 17 00:00:00 2001 From: Luca Pizzagalli Date: Sat, 15 Nov 2025 20:25:11 +0700 Subject: [PATCH] Improve _q function with safe division Refactor _q function to handle division by zero safely. --- skyfield/almanac.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/skyfield/almanac.py b/skyfield/almanac.py index f7fe5959..cac8ffb7 100644 --- a/skyfield/almanac.py +++ b/skyfield/almanac.py @@ -336,7 +336,9 @@ def _transit_ha(latitude, declination, altitude_radians): def _q(a, b, c, sign): discriminant = np.maximum(b*b - 4*a*c, 0.0) # avoid tiny negative results - return - 2*c / (b + sign * sqrt(discriminant)) + denominator = b + sign * sqrt(discriminant) + q = np.zeros_like(denominator) + return np.divide(-2 * c, denominator, out=q, where=(denominator != 0)) def _intersection(y0, y1, v0, v1): # Return x at which a curve reaches y=0, given its position and