From 0644ecf9aaeba0581605d6ecce038c54b135ef79 Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Fri, 12 Nov 2021 09:39:18 +0000 Subject: [PATCH] bugs in derived_array and gamma_method fixed which caused odd behaviour in connection with irregular monte carlo chains --- pyerrors/linalg.py | 2 +- pyerrors/obs.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyerrors/linalg.py b/pyerrors/linalg.py index 18a6a98c..c1a042fb 100644 --- a/pyerrors/linalg.py +++ b/pyerrors/linalg.py @@ -86,7 +86,7 @@ def derived_array(func, data, **kwargs): for name in new_names: d_extracted[name] = [] for i_dat, dat in enumerate(data): - ens_length = new_idl_d[name][-1] - new_idl_d[name][0] + 1 + ens_length = len(new_idl_d[name]) d_extracted[name].append(np.array([_expand_deltas_for_merge(o.deltas[name], o.idl[name], o.shape[name], new_idl_d[name]) for o in dat.reshape(np.prod(dat.shape))]).reshape(dat.shape + (ens_length, ))) for i_val, new_val in np.ndenumerate(new_values): diff --git a/pyerrors/obs.py b/pyerrors/obs.py index 6a2b414a..085c9a95 100644 --- a/pyerrors/obs.py +++ b/pyerrors/obs.py @@ -248,7 +248,7 @@ class Obs: r_length = [] for r_name in e_content[e_name]: - if self.idl[r_name] is range: + if isinstance(self.idl[r_name], range): r_length.append(len(self.idl[r_name])) else: r_length.append((self.idl[r_name][-1] - self.idl[r_name][0] + 1)) @@ -339,7 +339,7 @@ class Obs: idx -- List or range of configs on which the deltas are defined. shape -- Number of configs in idx. """ - if type(idx) is range: + if isinstance(idx, range): return deltas else: ret = np.zeros(idx[-1] - idx[0] + 1)