Skip to main content
`Ctrl`+`K`

# scipy.special.gammainccinv

scipy.special.gammainccinv(a, y, out=None) = <ufunc 'gammainccinv'>

  Inverse of the regularized upper incomplete gamma function.

  Given an input \(y\) between 0 and 1, returns \(x\) such that \(y = Q(a, x)\). Here \(Q\) is the regularized upper incomplete gamma function; see `gammaincc`. This is well-defined because the upper incomplete gamma function is monotonic as can be seen from its definition in [dlmf].

  Parameters:
    a array_like

      Positive parameter

    y array_like

      Argument between 0 and 1, inclusive

    out ndarray, optional

      Optional output array for the function values

  Returns:
    scalar or ndarray

      Values of the inverse of the upper incomplete gamma function

  See also

  `gammaincc`

    regularized upper incomplete gamma function

  `gammainc`

    regularized lower incomplete gamma function

  `gammaincinv`

    inverse of the regularized lower incomplete gamma function

  Notes

  Array API Standard Support

  `gammainccinv` has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable `SCIPY_ARRAY_API=1` and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

  Library | CPU | GPU
  --- | --- | ---
  NumPy | ✅ | n/a
  CuPy | n/a | ✅
  PyTorch | ✅ | ⛔
  JAX | ✅ | ⛔
  Dask | ✅ | n/a

  See Support for the array API standard for more information.

  References

  [dlmf]

  NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/8.2#E4

  Examples

      >>> import scipy.special as sc

  It starts at infinity and monotonically decreases to 0.

      >>> sc.gammainccinv(0.5, [0, 0.1, 0.5, 1])
      array([       inf, 1.35277173, 0.22746821, 0.        ])

  It inverts the upper incomplete gamma function.

      >>> a, x = 0.5, [0, 0.1, 0.5, 1]
      >>> sc.gammaincc(a, sc.gammainccinv(a, x))
      array([0. , 0.1, 0.5, 1. ])

      >>> a, x = 0.5, [0, 10, 50]
      >>> sc.gammainccinv(a, sc.gammaincc(a, x))
      array([ 0., 10., 50.])