From b23fe67994bff4e8ae44f0add6bd8cbe0bb50a95 Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Wed, 3 Nov 2021 11:53:26 +0000 Subject: [PATCH] rtruediv for Corr and Obs implemented --- pyerrors/correlators.py | 7 +++++-- pyerrors/pyerrors.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pyerrors/correlators.py b/pyerrors/correlators.py index 65b26525..b6c7706e 100644 --- a/pyerrors/correlators.py +++ b/pyerrors/correlators.py @@ -752,11 +752,14 @@ class Corr: return self._apply_func_to_corr(np.arctanh) # Right hand side operations (require tweak in main module to work) + def __radd__(self, y): + return self + y + def __rsub__(self, y): return -self + y def __rmul__(self, y): return self * y - def __radd__(self, y): - return self + y + def __rtruediv__(self, y): + return (self / y) ** (-1) diff --git a/pyerrors/pyerrors.py b/pyerrors/pyerrors.py index a343979c..481b6593 100644 --- a/pyerrors/pyerrors.py +++ b/pyerrors/pyerrors.py @@ -642,10 +642,8 @@ class Obs: else: if isinstance(y, np.ndarray): return np.array([self / o for o in y]) - elif y.__class__.__name__ == 'Corr': return NotImplemented - else: return derived_observable(lambda x, **kwargs: x[0] / y, [self], man_grad=[1 / y]) @@ -655,6 +653,8 @@ class Obs: else: if isinstance(y, np.ndarray): return np.array([o / self for o in y]) + elif y.__class__.__name__ == 'Corr': + return NotImplemented else: return derived_observable(lambda x, **kwargs: y / x[0], [self], man_grad=[-y / self.value ** 2])