LinearOperator representing the inverse of another operator.

Inherits From: LinearOperator

This operator represents the inverse of another operator.

# Create a 2 x 2 linear operator.
operator = LinearOperatorFullMatrix([[1., 0.], [0., 2.]])
operator_inv = LinearOperatorInversion(operator)

==> [[1., 0.]
     [0., 0.5]]

==> [2, 2]

==> - log(2)

x = ... Shape [2, 4] Tensor
==> Shape [2, 4] Tensor, equal to operator.solve(x)


The performance of LinearOperatorInversion depends on the underlying operators performance: solve and matmul are swapped, and determinant is inverted.

Matrix property hints

This LinearOperator is initialized with boolean flags of the form is_X, for X = non_singular, self_adjoint, positive_definite, square. These have the following meaning:

  • If is_X == True, callers should expect the operator to have the property X. This is a promise that should be fulfilled, but is not a runtime assert. For example, finite floating point precision may result in these promises being violated.
  • If is_X == False, callers should expect the operator to not have X.
  • If is_X == None (the default), callers should have no expectation either way.

operator LinearOperator object. If operator.is_non_singula