code: def svd(
      x: JaxArray,
      /,
      *,
      compute_uv: bool = True,
      full_matrices: bool = True,
  ) -> Union[JaxArray, Tuple[JaxArray, ...]]:
      if compute_uv:
          results = namedtuple("svd", "U S Vh")
          U, D, VT = jnp.linalg.svd(
              x, full_matrices=full_matrices, compute_uv=compute_uv
          )
          return results(U, D, VT)
      else:
          results = namedtuple("svd", "S")
          D = jnp.linalg.svd(
              x, full_matrices=full_matrices, compute_uv=compute_uv
          )
          return results(D)
  
imports: from collections import namedtuple
  from typing import Union, Optional, Tuple, Literal, Sequence, NamedTuple
  import jax.numpy
  import ivy
  from ivy import inf
  from ivy.func_wrapper import with_unsupported_dtypes
  from ivy.functional.backends.jax import JaxArray
  from .None import backend_version
  from ivy import promote_types_of_inputs
label_desc: Use image node_id 21 for calling a global function with example usage: svd() and returns: results, results