14#ifndef PLASK__SOLVER__SLAB_BESSELJ_H
15#define PLASK__SOLVER__SLAB_BESSELJ_H
18#include "plask/optical/modal/config.hpp"
22# include <gsl/gsl_sf_bessel.h>
24 inline double cyl_bessel_j(
int m,
double x) {
25 return gsl_sf_bessel_Jn(m, x);
28 template <
typename It>
29 inline void cyl_bessel_j_zero(
int m,
size_t i,
size_t n, It dst) {
31 for (
n =
n+i;
i <
n; ++
i, ++dst) *dst = gsl_sf_bessel_zero_J0(i);
33 for (
n =
n+i;
i <
n; ++
i, ++dst) *dst = gsl_sf_bessel_zero_J1(i);
36 for (
n =
n+i;
i <
n; ++
i, ++dst) *dst = gsl_sf_bessel_zero_Jnu(nu, i);
41# include <boost/math/special_functions/bessel.hpp>
42 using boost::math::cyl_bessel_j;
43 using boost::math::cyl_bessel_j_zero;