diff options
author | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2015-12-01 12:27:44 +0100 |
---|---|---|
committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2015-12-01 12:27:44 +0100 |
commit | fff0e6dba508744f540bcf5efff76f676fe7af48 (patch) | |
tree | 5f33544e7d79b59501a5dd63a4922722eed8a98b /python/astra/optomo.py | |
parent | 0d5947a0e8e7d6f86c7591a96d877dfe14b187e4 (diff) | |
parent | dcfd15335549fa8e3e56260791cc4510331f7be6 (diff) | |
download | astra-fff0e6dba508744f540bcf5efff76f676fe7af48.tar.gz astra-fff0e6dba508744f540bcf5efff76f676fe7af48.tar.bz2 astra-fff0e6dba508744f540bcf5efff76f676fe7af48.tar.xz astra-fff0e6dba508744f540bcf5efff76f676fe7af48.zip |
Merge branch 'master' into python-plugins
Conflicts:
python/astra/utils.pyx
Diffstat (limited to 'python/astra/optomo.py')
-rw-r--r-- | python/astra/optomo.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/python/astra/optomo.py b/python/astra/optomo.py index 0108674..4a64150 100644 --- a/python/astra/optomo.py +++ b/python/astra/optomo.py @@ -86,7 +86,15 @@ class OpTomo(scipy.sparse.linalg.LinearOperator): self.proj_id = proj_id - self.T = OpTomoTranspose(self) + self.transposeOpTomo = OpTomoTranspose(self) + try: + self.T = self.transposeOpTomo + except AttributeError: + # Scipy >= 0.16 defines self.T using self._transpose() + pass + + def _transpose(self): + return self.transposeOpTomo def __checkArray(self, arr, shp): if len(arr.shape)==1: @@ -189,6 +197,11 @@ class OpTomoTranspose(scipy.sparse.linalg.LinearOperator): self.parent = parent self.dtype = np.float32 self.shape = (parent.shape[1], parent.shape[0]) + try: + self.T = self.parent + except AttributeError: + # Scipy >= 0.16 defines self.T using self._transpose() + pass def _matvec(self, s): return self.parent.rmatvec(s) @@ -196,6 +209,9 @@ class OpTomoTranspose(scipy.sparse.linalg.LinearOperator): def rmatvec(self, v): return self.parent.matvec(v) + def _transpose(self): + return self.parent + def __mul__(self,s): # Catch the case of a backprojection of 2D/3D data if isinstance(s, np.ndarray) and s.shape==self.parent.sshape: |