diff --git a/nifty_tools.py b/nifty_tools.py index 41a8edada17a0549f9ad107a32e7784bdaf167e7..341cc6c66fc49791833df673e0e055b8eaeb0103 100644 --- a/nifty_tools.py +++ b/nifty_tools.py @@ -189,6 +189,8 @@ class invertible_operator(operator): ## apply operator if(self.imp): A = self._inverse_multiply + elif(id(self.inverse_times)==id(invertible_operator.inverse_times)): ## avoid infinite recursion + A = super(invertible_operator,self).inverse_times else: A = self.inverse_times x_,convergence = conjugate_gradient(A,x_,W=W,spam=spam,reset=reset,note=note)(x0=x0,tol=tol,clevel=clevel,limii=limii) @@ -255,6 +257,8 @@ class invertible_operator(operator): ## apply operator if(self.imp): A = self._multiply + elif(id(self.times)==id(invertible_operator.times)): ## avoid infinite recursion + A = super(invertible_operator,self).times else: A = self.times x_,convergence = conjugate_gradient(A,x_,W=W,spam=spam,reset=reset,note=note)(x0=x0,tol=tol,clevel=clevel,limii=limii)