# tf.linalg.lu

<br />

Computes the LU decomposition of one or more square matrices.

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.linalg.lu`](https://www.tensorflow.org/api_docs/python/tf/linalg/lu)

<br />

    tf.linalg.lu(
        input: _atypes.TensorFuzzingAnnotation[TV_Lu_T],
        output_idx_type: TV_Lu_output_idx_type = https://www.tensorflow.org/versions/r2.14/api_docs/python/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.

<br />

<br />

<br />

| ## 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`](https://www.tensorflow.org/versions/r2.14/api_docs/python/tf/dtypes/DType) from: `tf.int32, tf.int64`. Defaults to [`tf.int32`](https://www.tensorflow.org/versions/r2.14/api_docs/python/tf#int32). |
| `name` | A name for the operation (optional). |

<br />

<br />

| ## 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`. |

<br />