# jax.scipy.linalg.svd#

jax.scipy.linalg.svd(a, full_matrices=True, compute_uv=True, overwrite_a=False, check_finite=True, lapack_driver='gesdd')[source]#

Singular Value Decomposition.

LAX-backend implementation of scipy.linalg._decomp_svd.svd().

Does not support the Scipy argument check_finite=True, because compiled JAX code cannot perform checks of array values at runtime.

Does not support the Scipy argument overwrite_*=True.

Original docstring below.

Factorizes the matrix a into two unitary matrices U and Vh, and a 1-D array s of singular values (real, non-negative) such that a == U @ S @ Vh, where S is a suitably shaped matrix of zeros with main diagonal s.

Parameters:
• a ((M, N) array_like) β Matrix to decompose.

• full_matrices (bool, optional) β If True (default), U and Vh are of shape (M, M), (N, N). If False, the shapes are (M, K) and (K, N), where K = min(M, N).

• compute_uv (bool, optional) β Whether to compute also U and Vh in addition to s. Default is True.

• overwrite_a (bool) β

• check_finite (bool) β

• lapack_driver (str) β

Return type:

Array | tuple[Array, Array, Array]

Returns:

• U (ndarray) β Unitary matrix having left singular vectors as columns. Of shape (M, M) or (M, K), depending on full_matrices.

• s (ndarray) β The singular values, sorted in non-increasing order. Of shape (K,), with K = min(M, N).

• Vh (ndarray) β Unitary matrix having right singular vectors as rows. Of shape (N, N) or (K, N) depending on full_matrices.

• For compute_uv=False, only s is returned.