code: def igamma(
      a: np.ndarray,
      /,
      *,
      x: np.ndarray,
      out: Optional[np.ndarray] = None,
  ) -> np.ndarray:
      def igamma_cal(a, x):
          t = np.linspace(0, x, 10000, dtype=np.float64)
          y = np.exp(-t) * (t ** (a - 1))
          integral = np.trapz(y, t)
          return integral / math.gamma(a)
  
      igamma_vec = np.vectorize(igamma_cal)
      return igamma_vec(a, x).astype(a.dtype)
  
imports: from typing import Optional, Union, Tuple, Sequence
  import numpy
  import math
  import ivy
  from ivy.func_wrapper import with_unsupported_dtypes
  from .None import backend_version
  from ..statistical import _infer_dtype
  from copy import deepcopy
label_desc: Use image node_id 20 for calling a global function with example usage: igamma() and returns: igamma_vec, unknown