From: Jérôme Benoit Date: Sun, 21 Dec 2025 14:13:05 +0000 (+0100) Subject: refactor(qav3): cleanup numerical stability checks X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=bd019638adda6bdbd1041492d8e3476d3f15a21f;p=freqai-strategies.git refactor(qav3): cleanup numerical stability checks Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/strategies/Utils.py b/quickadapter/user_data/strategies/Utils.py index 4b947e5..cb4ab58 100644 --- a/quickadapter/user_data/strategies/Utils.py +++ b/quickadapter/user_data/strategies/Utils.py @@ -2185,11 +2185,11 @@ def soft_extremum(series: pd.Series, alpha: float) -> float: return np.nanmean(values) scaled_values = alpha * values max_scaled_values = np.nanmax(scaled_values) - if np.isinf(max_scaled_values) or np.isnan(max_scaled_values): + if not np.isfinite(max_scaled_values): return values[np.nanargmax(scaled_values)] shifted_exponentials = np.exp(scaled_values - max_scaled_values) sum_exponentials = np.nansum(shifted_exponentials) - if sum_exponentials <= 0 or not np.isfinite(sum_exponentials): + if not np.isfinite(sum_exponentials) or sum_exponentials <= 0.0: return values[np.nanargmax(scaled_values)] return nan_average(values, weights=shifted_exponentials)