From 82adb215be1405838842ace29def6dd33e8e5b4f Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Sun, 26 Feb 2023 18:49:54 +0000 Subject: [PATCH] fix: _compute_drho now also works for i > w_max / 2. --- pyerrors/obs.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyerrors/obs.py b/pyerrors/obs.py index 0bb09ec3..b3c51e0f 100644 --- a/pyerrors/obs.py +++ b/pyerrors/obs.py @@ -289,7 +289,9 @@ class Obs: self.e_n_dtauint[e_name][0] = 0.0 def _compute_drho(i): - tmp = self.e_rho[e_name][i + 1:w_max] + np.concatenate([self.e_rho[e_name][i - 1::-1], self.e_rho[e_name][1:w_max - 2 * i]]) - 2 * self.e_rho[e_name][i] * self.e_rho[e_name][1:w_max - i] + tmp = (self.e_rho[e_name][i + 1:w_max] + + np.concatenate([self.e_rho[e_name][i - 1:None if i - w_max // 2 < 0 else 2 * (i - w_max // 2):-1], self.e_rho[e_name][1:max(1, w_max - 2 * i)]]) + - 2 * self.e_rho[e_name][i] * self.e_rho[e_name][1:w_max - i]) self.e_drho[e_name][i] = np.sqrt(np.sum(tmp ** 2) / e_N) if self.tau_exp[e_name] > 0: