kyosu v0.1.0
Complex Without Complexes
 
Loading...
Searching...
No Matches

◆ cyl_bessel_h2

kyosu::cyl_bessel_h2 = {}
inlineconstexpr

Computes the Bessel functions of the third kind \( H^{(2)}_\nu \),.

#include <kyosu/functions.hpp>

Callable Signatures

namespace kyosu
{
template<eve::floating_scalar_value N, eve::floating_ordered_value T,>
constexpr auto cyl_bessel_h2(N nu, T z) noexcept;
template<eve::floating_scalar_value N, concepts::kyosu::complex Z>
constexpr T cyl_bessel_h2(N nu, Z z) noexcept;
template<eve::floating_scalar_value N, eve::floating_ordered_value T, complexRange R>
constexpr auto cyl_bessel_h2(N nu, T z, R& h2s) noexcept;
template<eve::floating_scalar_value N, concepts::kyosu::complex Z, complexRange R>
constexpr T cyl_bessel_h2(N nu, Z z, R& h2s) noexcept;
}
constexpr tags::callable_cyl_bessel_h2 cyl_bessel_h2
Computes the Bessel functions of the third kind ,.
Definition: cyl_bessel_h2.hpp:106
Main KYOSU namespace.
Definition: types.hpp:14

Parameters

  • nu: scalar floating order of the function.
  • z: Value to process.
  • h2s: range able to containn = int(abs(nu))+1` complex values (of type complex_t<T> or Z respectively)

Return value

  • returns \(H^{(2)}_\nu(z)\).

*Ouput values

  • on output (if present) h2s contains the values of \( (H^{(2)}_{\nu_0+\epsilon i})_{i = 0 \cdots n} \), where \( \nu_0 \) is the fractional part of \(\nu\) and \(\epsilon\) is the sign of \( \nu\).

Example

#include <kyosu/kyosu.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
std::cout.precision(16);
using w_t = eve::wide<double, eve::fixed<2>>;
auto z = kyosu::complex(w_t(20.0, 1.5), w_t(0.0, 1.5));
auto v = 0.0;
std::cout << "z " << z << std::endl;
for(int n=0; n <= 3; ++n)
{
auto h2 = kyosu::cyl_bessel_h2(v, z);
std::cout << "v " << v << std::endl;
std::cout << "yl_bessel_h2(v, z) " << h2 << std::endl;
v = v+0.25;
}
return 0;
}
constexpr tags::callable_complex complex
Constructs a kyosu::complex.
Definition: to_complex.hpp:70