Computation of complex order Bessel functions

Introduction

Source files

bessel.h, bessel.cpp, dgamma.f, machcon.f, zbsubs.f

Define

Functions

void bessel_error(char *s)

extern complex<double> BesselJ( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)
extern complex<double> BesselY( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)
extern complex<double> HankelH1( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)
extern complex<double> HankelH2( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)

extern complex<double> DBesselJ( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)
extern complex<double> DBesselY( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)
extern complex<double> DHankelH1( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)
extern complex<double> DHankelH2( complex<double> order, complex<double> argument, int KODE, int *NZ, int *IERR)

double lambda(int s)
double mu(int s)
complex<double> u(int k, complex<double> t)
complex<double> v(int k, complex<double> t)
complex<double> a(int k, complex<double> zeta)
complex<double> b(int k, complex<double> zeta)
complex<double> c(int k, complex<double> zeta, complex<double> z)
complex<double> d(int k, complex<double> zeta, complex<double> z)

extern "C"
{
extern void zairy_( double *zr, double *zi, int *ID, int *KODE, double *air, double *aii, int *NZ, int *IERR);
extern void zbiry_( double *zr, double *zi, int *ID, int *KODE, double *air, double *aii, int *IERR);
extern double dgamma_(double *x);
}
Note:
Helper functions lambda(), mu(), u(), v(), a(), b(), c(), d() are declared in bessel.cpp.
zairy_(), zbiry_() are defined in zbsubs.f.
dgamma_() is defined in dgamma.f.

Description of variables and functions

References

  1. K. R. Hiremath, M. Hammer, S. Stoffer, L. Prkna, and J. Ctyroký.
    Analytic approach to dielectric optical bent slab waveguides.
    Optical and Quantum Electronics, 37(1-3):37-61, January 2005. PDF
  2. M. Abramowitz and I. A. Stegun.
    Handbook of Mathematical Functions (Applied Mathematics Series 55).
    National Bureau of Standards, Washington, D.C., 1964.
  3. N. M. Temme.
    Numerical algorithms for uniform Airy-type asymptotic expansions.
    Technical Report MAS-R9706, Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands, 1997.
  4. D. E. Amos.
    A portable package for Bessel functions of a complex argument and nonnegative order, 1983.
    http://www.netlib.org/amos/.