tfmri.linalg.LinearOperatorAdjoint

class LinearOperatorAdjoint(operator, is_non_singular=None, is_self_adjoint=None, is_positive_definite=None, is_square=None, name=None)[source]

Bases: tensorflow_mri.python.util.linalg_imaging.LinalgImagingMixin, tensorflow.python.ops.linalg.linear_operator_adjoint.LinearOperatorAdjoint

Linear operator representing the adjoint of another operator.

LinearOperatorAdjoint is initialized with an operator \(A\) and represents its adjoint \(A^H\).

Parameters
  • operator – A LinearOperator.

  • is_non_singular – Expect that this operator is non-singular.

  • is_self_adjoint – Expect that this operator is equal to its Hermitian transpose.

  • is_positive_definite – Expect that this operator is positive definite, meaning the quadratic form \(x^H A x\) has positive real part for all nonzero \(x\). Note that we do not require the operator to be self-adjoint to be positive-definite.

  • is_square – Expect that this operator acts like square [batch] matrices.

  • name – A name for this LinearOperator. Default is operator.name + "_adjoint".

Initialize a LinearOperatorAdjoint.

LinearOperatorAdjoint is initialized with an operator A. The solve and matmul methods effectively flip the adjoint argument. E.g.

A = MyLinearOperator(…) B = LinearOperatorAdjoint(A) x = [….] # a vector

Parameters
  • operatorLinearOperator object.

  • is_non_singular – Expect that this operator is non-singular.

  • is_self_adjoint – Expect that this operator is equal to its hermitian transpose.

  • is_positive_definite – Expect that this operator is positive definite, meaning the quadratic form x^H A x has positive real part for all nonzero x. Note that we do not require the operator to be self-adjoint to be positive-definite. See: https://en.wikipedia.org/wiki/Positive-definite_matrix#Extension_for_non-symmetric_matrices

  • is_square – Expect that this operator acts like square [batch] matrices.

  • name – A name for this LinearOperator. Default is operator.name + "_adjoint".

Raises

ValueError – If operator.is_non_singular is False.