tfmri.linalg.LinearOperatorComposition

class LinearOperatorComposition(operators, 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_composition.LinearOperatorComposition

Composes one or more linear operators.

LinearOperatorComposition is initialized with a list of operators \(A_1, A_2, ..., A_J\) and represents their composition \(A_1 A_2 ... A_J\).

Parameters
  • operators – A list of LinearOperator objects, each with the same dtype and composable shape.

  • 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 the individual operators names joined with _o_.

Initialize a LinearOperatorComposition.

LinearOperatorComposition is initialized with a list of operators [op_1,...,op_J]. For the matmul method to be well defined, the composition op_i.matmul(op_{i+1}(x)) must be defined. Other methods have similar constraints.

Parameters
  • operators – Iterable of LinearOperator objects, each with the same dtype and composable shape.

  • 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 the individual operators names joined with _o_.

Raises
  • TypeError – If all operators do not have the same dtype.

  • ValueError – If operators is empty.