maxframe.tensor.i0#
- maxframe.tensor.i0(x, **kwargs)[source]#
Modified Bessel function of the first kind, order 0.
Usually denoted \(I_0\). This function does broadcast, but will not “up-cast” int dtype arguments unless accompanied by at least one float or complex dtype argument (see Raises below).
- Parameters:
x (array_like, dtype float or complex) – Argument of the Bessel function.
- Returns:
out – The modified Bessel function evaluated at each of the elements of x.
- Return type:
Tensor, shape = x.shape, dtype = x.dtype
- Raises:
TypeError – array cannot be safely cast to required type: If argument consists exclusively of int dtypes.
See also
Notes
We use the algorithm published by Clenshaw [1] and referenced by Abramowitz and Stegun [2], for which the function domain is partitioned into the two intervals [0,8] and (8,inf), and Chebyshev polynomial expansions are employed in each interval. Relative error on the domain [0,30] using IEEE arithmetic is documented [3] as having a peak of 5.8e-16 with an rms of 1.4e-16 (n = 30000).
References
Examples
>>> import maxframe.tensor as mt
>>> mt.i0([0.]).execute() array([1.]) >>> mt.i0([0., 1. + 2j]).execute() array([ 1.00000000+0.j , 0.18785373+0.64616944j])