jax.lax.linalg.tridiagonal#

jax.lax.linalg.tridiagonal(a, *, lower=True)[source]#

Reduces a symmetric/Hermitian matrix to tridiagonal form.

Currently implemented on CPU and GPU only.

Parameters
  • a (Union[Array, ndarray, bool_, number, bool, int, float, complex]) – A floating point or complex matrix or batch of matrices.

  • lower – Describes which triangle of the input matrices to use. The other triangle is ignored and not accessed.

Returns: A (a, d, e, taus) pair. If lower=True, the diagonal and first subdiagonal of matrix (or batch of matrices) a contain the tridiagonal representation, and elements below the first subdiagonal contain the elementary Householder reflectors, where additionally d contains the diagonal of the matrix and e contains the first subdiagonal.If lower=False the diagonal and first superdiagonal of the matrix contains the tridiagonal representation, and elements above the first superdiagonal contain the elementary Householder reflectors, where additionally d contains the diagonal of the matrix and e contains the first superdiagonal. taus contains the scalar factors of the elementary Householder reflectors.

Return type

Tuple[Array, Array, Array, Array]