From 5ced94e08635c5e991853d577ced10f2b66b10ee Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Wed, 8 Dec 2021 15:00:44 +0000 Subject: [PATCH] feat: check for non Obs objects in derived observable optimized and only performed in array mode --- pyerrors/obs.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pyerrors/obs.py b/pyerrors/obs.py index 6188dc4f..7b13d8dd 100644 --- a/pyerrors/obs.py +++ b/pyerrors/obs.py @@ -1053,9 +1053,11 @@ def derived_observable(func, data, array_mode=False, **kwargs): raveled_data = data.ravel() # Workaround for matrix operations containing non Obs data - for i in range(len(raveled_data)): - if isinstance(raveled_data[i], (int, float)): - raveled_data[i] = cov_Obs(raveled_data[i], 0.0, "~#dummy_data#~") + if array_mode is True: + if not all(isinstance(x, Obs) for x in raveled_data): + for i in range(len(raveled_data)): + if isinstance(raveled_data[i], (int, float)): + raveled_data[i] = cov_Obs(raveled_data[i], 0.0, "###dummy_entry###") allcov = {} for o in raveled_data: