code: def multivariate_normal(
      key, mean, cov, shape=None, dtype="float64", method="cholesky"
  ):
      if shape is None:
          shape = ivy.broadcast_shapes(mean.shape[:-1], cov.shape[:-2])
      if method == "cholesky":
          cov_factor = ivy.cholesky(cov)
      elif method == "eigh":
          (w, v) = ivy.eigh(cov)
          cov_factor = v * ivy.sqrt(w[..., None, :])
      elif method == "svd":
          (u, s, _) = ivy.svd(cov)
          cov_factor = u * ivy.sqrt(s[..., None, :])
  
      rand_normal = normal(
          key=key, shape=shape + mean.shape[-1:], dtype=dtype
      )
      result = mean + ivy.einsum(
          "...ij,...j->...i", cov_factor, rand_normal.ivy_array
      )
  
      return result
  
imports: import operator
  import ivy
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from ivy.functional.frontends.jax.func_wrapper import to_ivy_arrays_and_back, handle_jax_dtype
label_desc: Use image node_id 19 for calling a global function with example usage: multivariate_normal(key, mean, cov, shape, dtype, method) and returns: result