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

◆ cyl_bessel_ikn

kyosu::cyl_bessel_ikn = {}
inlineconstexpr

Computes the Bessel functions of the second kind \(I\) and \(K \)of integral order,.

#include <kyosu/functions.hpp>

Callable Signatures

namespace kyosu
{
template<eve::integral_scalar_value N, eve::floating_ordered_value T, complexRange R>
constexpr auto cyl_bessel_ikn(N n, T z, R& js, R& ys) noexcept;
template<eve::integral_scalar_value N, conceots::kyosu::complex Z, complexRange R>
constexpr T cyl_bessel_ikn(N n, Z z, R& js, R& ys) noexcept;
}
constexpr tags::callable_cyl_bessel_ikn cyl_bessel_ikn
Computes the Bessel functions of the second kind and of integral order,.
Definition: cyl_bessel_ikn.hpp:87
Main KYOSU namespace.
Definition: types.hpp:14

Parameters

  • n: scalar integral order of the function.
  • z: Value to process.
  • is: range able to contain int(nu)+1 complex values (of type complex_t<T> or Z respectively) *ks: range able to contain int(nu)+1 complex values (of type complex_t<T> or Z respectively)

Return value

  • returns the kumi pair \(\{I_\nu(z), K_\nu(z)\}\).

*Ouput values

  • on output is contains the values of \(((I_{0+i})_{i = 0\cdot n}\)
  • on output ks contains the values of \(((K_{0+i})_{i = 0\cdot n}\)

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));
std::cout << "z " << z << std::endl;
std::vector<decltype(z)> is(4), ks(4);
kyosu::cyl_bessel_ikn(3, z, is, ks);
for(int n=0; n <= 3; ++n)
{
std::cout << "is[" << n << "] = " << is[n] << std::endl;
std::cout << "ks[" << n << "] = " << ks[n] << std::endl;
}
return 0;
}
constexpr tags::callable_complex complex
Constructs a kyosu::complex.
Definition: to_complex.hpp:70