From 3ce1c63f9cdee385040c5f1146a78b7acbcce71e Mon Sep 17 00:00:00 2001 From: Philipp Arras <c@philipp-arras.de> Date: Thu, 30 Jan 2025 12:33:17 +0100 Subject: [PATCH] DiagonalOperator: cache diagmin --- src/operators/diagonal_operator.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/operators/diagonal_operator.py b/src/operators/diagonal_operator.py index 2896ca4be..213d7a066 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) -- GitLab