parameters: (matrix, compute_uv=True, full_matrices=False, name=None)
docstring: Computes the singular value decomposition of a matrix.
  
    Computes the SVD of `matrix` such that `matrix = u * diag(s) *
    transpose(v)`
  
    ```prettyprint
    # a is a matrix.
    # s is a vector of singular values.
    # u is the matrix of left singular vectors.
    # v is a matrix of right singular vectors.
    s, u, v = svd(a)
    s = svd(a, compute_uv=False)
    ```
  
    Args:
      matrix: `Tensor` of shape `[M, N]`. Let `P` be the minimum of `M` and `N`.
      compute_uv: If `True` then left and right singular vectors will be
        computed and returned in `u` and `v`, respectively. Otherwise, only the
        singular values will be computed, which can be significantly faster.
      full_matrices: If true, compute full-sized `u` and `v`. If false
        (the default), compute only the leading `P` singular vectors.
        Ignored if `compute_uv` is `False`.
      name: string, optional name of the operation.
  
    Returns:
      s: Singular values. Shape is `[P]`.
      u: Right singular vectors. If `full_matrices` is `False` (default) then
        shape is `[M, P]`; if `full_matrices` is `True` then shape is
        `[M, M]`. Not returned if `compute_uv` is `False`.
      v: Left singular vectors. If `full_matrices` is `False` (default) then
        shape is `[N, P]`. If `full_matrices` is `True` then shape is
        `[N, N]`. Not returned if `compute_uv` is `False`.
docstring_summary: Computes the singular value decomposition of a matrix.
docstring_tokens: Computes the singular value decomposition of a matrix .
function: def svd(matrix, compute_uv=True, full_matrices=False, name=None):
    """Computes the singular value decomposition of a matrix.
  
    Computes the SVD of `matrix` such that `matrix = u * diag(s) *
    transpose(v)`
  
    ```prettyprint
    # a is a matrix.
    # s is a vector of singular values.
    # u is the matrix of left singular vectors.
    # v is a matrix of right singular vectors.
    s, u, v = svd(a)
    s = svd(a, compute_uv=False)
    ```
  
    Args:
      matrix: `Tensor` of shape `[M, N]`. Let `P` be the minimum of `M` and `N`.
      compute_uv: If `True` then left and right singular vectors will be
        computed and returned in `u` and `v`, respectively. Otherwise, only the
        singular values will be computed, which can be significantly faster.
      full_matrices: If true, compute full-sized `u` and `v`. If false
        (the default), compute only the leading `P` singular vectors.
        Ignored if `compute_uv` is `False`.
      name: string, optional name of the operation.
  
    Returns:
      s: Singular values. Shape is `[P]`.
      u: Right singular vectors. If `full_matrices` is `False` (default) then
        shape is `[M, P]`; if `full_matrices` is `True` then shape is
        `[M, M]`. Not returned if `compute_uv` is `False`.
      v: Left singular vectors. If `full_matrices` is `False` (default) then
        shape is `[N, P]`. If `full_matrices` is `True` then shape is
        `[N, N]`. Not returned if `compute_uv` is `False`.
    """
    s, u, v = gen_linalg_ops.svd(matrix,
                                 compute_uv=compute_uv,
                                 full_matrices=full_matrices)
    if compute_uv:
      return s, u, v
    else:
      return s
function_tokens: def svd ( matrix , compute_uv = True , full_matrices = False , name = None ) : s , u , v = gen_linalg_ops . svd ( matrix , compute_uv = compute_uv , full_matrices = full_matrices ) if compute_uv : return s , u , v else : return s