E.V.E
v2022.09.01

◆ cyl_bessel_in

eve::cyl_bessel_in = {}
inlineconstexpr

Computes the modified Bessel functions of the first kind, \( I_{n}(x)=\left(\frac12z\right)^n\sum_{k=0}^{\infty}{\frac{(x^2/4)^k} {k!\,\Gamma (k+n +1)}}\).

It is the solution of \( x^{2}y''+xy'+(x^2-n^2)y=0\) for which \( y(0) = 0\).

Defined in header

#include <eve/module/bessel.hpp>

Callable Signatures

namespace eve
{
template< eve::real_value N, eve::floating_real_value T >
T cyl_bessel_in(N n, T x) noexcept;
}
constexpr callable_cyl_bessel_in_ cyl_bessel_in
Computes the modified Bessel functions of the first kind, .
Definition: cyl_bessel_in.hpp:56
Definition: all_of.hpp:22

Parameters

Return value

The value of \(\displaystyle I_{n}(x)=\left(\frac12z\right)^n\sum_{k=0}^{\infty} {\frac{(x^2/4)^k}{k!\,\Gamma (k+n +1)}}\) is returned.

Example

#include <eve/module/bessel.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
wide_ft x = {0.5, 1.5, 0.1, 1.0, 19.0, 25.0, 21.5, 10000.0};
wide_ft n = {0.5, -1.0, 1.5, -2.0, 2.5, -2.6, 3.2, -12};
std::cout << "---- simd" << '\n'
<< "<- n = " << n << '\n'
<< "<- x = " << x << '\n'
<< "-> cyl_bessel_in(n, x) = " << eve::cyl_bessel_in(n, x) << '\n'
;
double xd = 1.0;
std::cout << "---- scalar" << '\n'
<< "<- xd = " << xd << '\n'
<< "-> cyl_bessel_in(3, xd) = " << eve::cyl_bessel_in(3, xd) << '\n';
return 0;
}
Wrapper for SIMD registers.
Definition: wide.hpp:65