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

◆ cyl_bessel_i

kyosu::cyl_bessel_i = {}
inlineconstexpr

Computes the Modified Bessel functions of the first kind.

#include <kyosu/functions.hpp>

Callable Signatures

namespace kyosu
{
template<eve::floating_ordered_value, kyosu::concepts::cayley_dickson T>
constexpr auto cyl_bessel_i(N nu, T z) noexcept;
template<eve::floating_ordered_value, eve::floating_ordered_value T>
constexpr T cyl_bessel_i(N nu, T z) noexcept;
template<eve::floating_ordered_value, kyosu::concepts::cayley_dickson T, Range R>
constexpr auto cyl_bessel_i(N nu, T z, R & is) noexcept;
template<eve::floating_ordered_value, eve::floating_ordered_value T, Range R>
constexpr T cyl_bessel_i(N nu, T z, R& is) noexcept;
}
constexpr tags::callable_cyl_bessel_i cyl_bessel_i
Computes the Modified Bessel functions of the first kind.
Definition: cyl_bessel_i.hpp:106
Main KYOSU namespace.
Definition: types.hpp:14

Parameters

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

Return value

  • returns \(I_\nu(z)\).

*Ouput values

  • on output (if present) 1s contains the values of \( (I^{(1)}_{\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 = 3.3;
std::cout << "z " << z << std::endl;
std::vector<decltype(z)> is(4);
for(int n=0; n <= 3; ++n)
{
std::cout << "is[" << n << "] = " << is[n] << std::endl;
}
return 0;
}
constexpr tags::callable_complex complex
Constructs a kyosu::complex.
Definition: to_complex.hpp:70