scipy.special.gammasgn#
- scipy.special.gammasgn(x, out=None) = <ufunc 'gammasgn'>#
Sign of the gamma function.
It is defined as
\[\begin{split}\text{gammasgn}(x) = \begin{cases} +1 & \Gamma(x) > 0 \\ -1 & \Gamma(x) < 0 \end{cases}\end{split}\]where \(\Gamma\) is the gamma function; see
gamma
. This definition is complete since the gamma function is never zero; see the discussion after [dlmf].- Parameters:
- xarray_like
Real argument
- outndarray, optional
Optional output array for the function values
- Returns:
- scalar or ndarray
Sign of the gamma function
See also
Notes
The gamma function can be computed as
gammasgn(x) * np.exp(gammaln(x))
.gammasgn
has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_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/5.2#E1
Examples
>>> import numpy as np >>> import scipy.special as sc
It is 1 for
x > 0
.>>> sc.gammasgn([1, 2, 3, 4]) array([1., 1., 1., 1.])
It alternates between -1 and 1 for negative integers.
>>> sc.gammasgn([-0.5, -1.5, -2.5, -3.5]) array([-1., 1., -1., 1.])
It can be used to compute the gamma function.
>>> x = [1.5, 0.5, -0.5, -1.5] >>> sc.gammasgn(x) * np.exp(sc.gammaln(x)) array([ 0.88622693, 1.77245385, -3.5449077 , 2.3632718 ]) >>> sc.gamma(x) array([ 0.88622693, 1.77245385, -3.5449077 , 2.3632718 ])