tf.linalg.lu

TensorFlow 1 version

Computes the LU decomposition of one or more square matrices.

tf.linalg.lu(
    input,
    output_idx_type=tf.dtypes.int32,
    name=None
)

The input is a tensor of shape [..., M, M] whose inner-most 2 dimensions form square matrices.

The input has to be invertible.

The output consists of two tensors LU and P containing the LU decomposition of all input submatrices [..., :, :]. LU encodes the lower triangular and upper triangular factors.

For each input submatrix of shape [M, M], L is a lower triangular matrix of shape [M, M] with unit diagonal whose entries correspond to the strictly lower triangular part of LU. U is a upper triangular matrix of shape [M, M] whose entries correspond to the upper triangular part, including the diagonal, of LU.

P represents a permutation matrix encoded as a list of indices each between 0 and M-1, inclusive. If P_mat denotes the permutation matrix corresponding to P, then the L, U and P satisfies P_mat * input = L * U.

Args:

  • input: A Tensor. Must be one of the following types: float64, float32, half, complex64, complex128. A tensor of shape [..., M, M] whose inner-most 2 dimensions form matrices of size [M, M].
  • output_idx_type: An optional tf.DType from: tf.int32, tf.int64. Defaults to tf.int32.
  • name: A name for the operation (optional).

Returns:

A tuple of Tensor objects (lu, p).

  • lu: A Tensor. Has the same type as input.
  • p: A Tensor of type output_idx_type.

Compat aliases