binom(x, y, out=None)
openfermion.transforms.repconversions.weyl_ordering.binom(
x1,
x2,
/,
out=None,
*,
where=True,
casting='same_kind',
order='K',
dtype=None,
subok=True,
signature=None
)
Binomial coefficient considered as a function of two real variables.
For real arguments, the binomial coefficient is defined as
.. math::
\binom{x}{y} = \frac{\Gamma(x + 1)}{\Gamma(y + 1)\Gamma(x - y + 1)} =
\frac{1}{(x + 1)\mathrm{B}(x - y + 1, y + 1)}
Where :math:\Gamma is the Gamma function (gamma) and :math:\mathrm{B}
is the Beta function (beta) [1]_.
Parameters
x, y: array_like
Real arguments to :math:\binom{x}{y}.
out : ndarray, optional
Optional output array for the function values
Returns
scalar or ndarray Value of binomial coefficient.
See Also
:func:comb
The number of combinations of N things taken k at a time.
Notes
The Gamma function has poles at non-positive integers and tends to either
positive or negative infinity depending on the direction on the real line
from which a pole is approached. When considered as a function of two real
variables, :math:\binom{x}{y} is thus undefined when x is a negative
integer. binom returns nan when x is a negative integer. This
is the case even when x is a negative integer and y an integer,
contrary to the usual convention for defining :math:\binom{n}{k} when it
is considered as a function of two integer variables.
Array API Standard Support
binom 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 ⚠️ no JIT ⛔
Dask ✅ n/a
==================== ==================== ====================
See :ref:`dev-arrayapi` for more information.
References
.. [1] https://en.wikipedia.org/wiki/Binomial_coefficient
Examples
The following examples illustrate the ways in which binom differs from
the function comb.
from scipy.special import binom, combWhen exact=False and x and y are both positive, comb calls
binom internally.
x, y = 3, 2(binom(x, y), comb(x, y), comb(x, y, exact=True))(3.0, 3.0, 3)
For larger values, comb with exact=True no longer agrees
with binom.
x, y = 43, 23(binom(x, y), comb(x, y), comb(x, y, exact=True))(960566918219.9999, 960566918219.9999, 960566918220)
binom returns nan when x is a negative integer, but is otherwise
defined for negative arguments. comb returns 0 whenever one of x or
y is negative or x is less than y.
x, y = -3, 2(binom(x, y), comb(x, y))(nan, 0.0)
x, y = -3.1, 2.2(binom(x, y), comb(x, y))(18.714147876804432, 0.0)
x, y = 2.2, 3.1(binom(x, y), comb(x, y))(0.037399983365134115, 0.0)