E.V.E
v2023.02.15

◆ cyl_bessel_jn

eve::cyl_bessel_jn = {}
inlineconstexpr

Computes the Bessel functions of the first kind, \( J_{n}(x)=\sum_{p=0}^{\infty}{\frac{(-1)^p}{p!\,\Gamma (p+n +1)}} {\left({x \over 2}\right)}^{2p+n }\).

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

Defined in header

#include <eve/module/bessel.hpp>

Callable Signatures

namespace eve
{
template< eve::ordered_value N, eve::floating_ordered_value T >
T cyl_bessel_jn(T x) noexcept;
}
constexpr callable_cyl_bessel_jn_ cyl_bessel_jn
Computes the Bessel functions of the first kind, .
Definition: cyl_bessel_jn.hpp:57
Definition: abi.hpp:18

Parameters

Return value

The value of \(\displaystyle J_{n}(x)=\sum_{p=0}^{\infty}{\frac{(-1)^p}{p!\,\Gamma (p+n +1)}} {\left({x \over 2}\right)}^{2p+n }\) 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_jn(pf) = " << eve::cyl_bessel_jn(n, x) << '\n'
;
double xd = 1.0;
std::cout << "---- scalar" << '\n'
<< "<- xd = " << xd << '\n'
<< "-> cyl_bessel_jn(3, xd) = " << eve::cyl_bessel_jn(3, xd) << '\n';
return 0;
}
Wrapper for SIMD registers.
Definition: wide.hpp:65