Commit 574443a8 authored by Theo Steininger's avatar Theo Steininger
Browse files

Merge branch 'tweak_inverse_adjoint' into 'master'

be more concise about adjoint_inverse and inverse_adjoint

See merge request !90
parents 9b85909a f8bc7d00
Pipeline #12228 passed with stage
in 6 minutes and 2 seconds
......@@ -86,29 +86,25 @@ class LinearOperator(Loggable, object):
raise
return y
# If the operator supports inverse() then the inverse adjoint is identical
# to the adjoint inverse. We provide both names for convenience.
def adjoint_inverse_times(self, x, spaces=None, **kwargs):
spaces = self._check_input_compatibility(x, spaces)
try:
y = self._adjoint_inverse_times(x, spaces, **kwargs)
except(NotImplementedError):
if self.unitary:
y = self._times(x, spaces, **kwargs)
else:
raise
try:
y = self._inverse_adjoint_times(x, spaces, **kwargs)
except(NotImplementedError):
if self.unitary:
y = self._times(x, spaces, **kwargs)
else:
raise
return y
def inverse_adjoint_times(self, x, spaces=None, **kwargs):
spaces = self._check_input_compatibility(x, spaces)
try:
y = self._inverse_adjoint_times(x, spaces, **kwargs)
except(NotImplementedError):
if self.unitary:
y = self._times(x, spaces, **kwargs)
else:
raise
return y
return adjoint_inverse_times(x, spaces, **kwargs)
def _times(self, x, spaces):
raise NotImplementedError(
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment