diff --git a/src/operators/diagonal_operator.py b/src/operators/diagonal_operator.py index 2896ca4be461b36cb737cf5d15e31cf929b244b9..213d7a0662ae578bf4eb5e687fa13aeec2f4f347 100644 --- a/src/operators/diagonal_operator.py +++ b/src/operators/diagonal_operator.py @@ -116,7 +116,15 @@ class DiagonalOperator(EndomorphicOperator): self._complex = utilities.iscomplextype(self._ldiag.dtype) self._capability = self._all_ops if not self._complex: - self._diagmin = self._ldiag.min() + self._diagmin_cache = None + + @property + def _diagmin(self): + if self._complex: + raise RuntimeError("complex DiagonalOperator does not have _diagmin") + if self._diagmin_cache is None: + self._diagmin_cache = self._ldiag.min() + return self._diagmin_cache def _from_ldiag(self, spc, ldiag, sampling_dtype, trafo): res = DiagonalOperator.__new__(DiagonalOperator)