From 589a45c90f18203a91208996c40e14d9d4f1b7ea Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 26 Jul 2014 12:07:25 +0200 Subject: fix solar_prediction bug MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/solar_python.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/solar_python.py b/src/solar_python.py index 19694d5..76923bf 100644 --- a/src/solar_python.py +++ b/src/solar_python.py @@ -528,6 +528,7 @@ def solar_prediction(delta, requested, fun, epsilon = 0.000001, span = 0.01, t = @return :float? The calculated time point, `None` if none were found within the specified time span ''' + fun = lambda t : fun(t) - requested t = julian_centuries() if t is None else t t1 = t2 = t v1 = v0 = fun(t) @@ -538,9 +539,9 @@ def solar_prediction(delta, requested, fun, epsilon = 0.000001, span = 0.01, t = return None t2 += delta v2 = fun(t2) - if (v1 <= requested <= v2) or ((requested >= v1 >= v2) and (requested <= v0)): + if (v1 <= 0 <= v2) or ((0 >= v1 >= v2) and (0 <= v0)): break - if (v1 >= requested >= v2) or ((requested <= v1 <= v2) and (requested >= v0)): + if (v1 >= 0 >= v2) or ((0 <= v1 <= v2) and (0 >= v0)): break t1 = t2 v2 = v1 @@ -554,12 +555,12 @@ def solar_prediction(delta, requested, fun, epsilon = 0.000001, span = 0.01, t = if abs(v1 - v2) < epsilon: return tm if abs(vm) < epsilon else None if v1 < v2: - if requested < vm: + if 0 < vm: t2 = tm else: t1 = tm elif v1 > v2: - if requested > vm: + if 0 > vm: t2 = tm else: t1 = tm -- cgit v1.2.3-70-g09d2