crbond_bessel.h
Go to the documentation of this file.
1 #ifndef BESSEL_HEADER
2 #define BESSEL_HEADER
3 
4 #include<complex>
5 
6 using namespace std;
7 
8 //#ifndef bessH
9 //#define bessH
10 //#include <complex.h>
11 
12 
13 
14 //====================================================================
15 // Collection of Bessel functions and the like, implemented
16 // in C++ by C. Bond (http://www.crbond.com/), using the
17 // algorithms in Zhang and Jin's book "Computation of Special Functions".
18 // John Wiley and Sons, 1996.
19 // This is based on the version dated 06/04 which appears to have
20 // corrected errors in complex Bessel functions.
21 //====================================================================
22 namespace CRBond_Bessel
23 {
24 
25 
26  // These used to be defined via #defines! Very bad!
27  extern double eps; // 1e-15
28  extern double el; // 0.5772156649015329
29 
30 extern int msta1(double x,int mp);
31 extern int msta2(double x,int n,int mp);
32 extern int bessjy01a(double x,double &j0,double &j1,double &y0,double &y1,
33  double &j0p,double &j1p,double &y0p,double &y1p);
34 extern int bessjy01b(double x,double &j0,double &j1,double &y0,double &y1,
35  double &j0p,double &j1p,double &y0p,double &y1p);
36 extern int bessjyna(int n,double x,int &nm,double *jn,double *yn,
37  double *jnp,double *ynp);
38 extern int bessjynb(int n,double x,int &nm,double *jn,double *yn,
39  double *jnp,double *ynp);
40 extern int bessjyv(double v,double x,double &vm,double *jv,double *yv,
41  double *jvp,double *yvp);
42 extern int bessik01a(double x,double &i0,double &i1,double &k0,double &k1,
43  double &i0p,double &i1p,double &k0p,double &k1p);
44 extern int bessik01b(double x,double &i0,double &i1,double &k0,double &k1,
45  double &i0p,double &i1p,double &k0p,double &k1p);
46 extern int bessikna(int n,double x,int &nm,double *in,double *kn,
47  double *inp,double *knp);
48 extern int bessiknb(int n,double x,int &nm,double *in,double *kn,
49  double *inp,double *knp);
50 extern int bessikv(double v,double x,double &vm,double *iv,double *kv,
51  double *ivp,double *kvp);
52 extern int cbessjy01(complex<double> z,complex<double> &cj0,complex<double> &cj1,
53  complex<double> &cy0,complex<double> &cy1,complex<double> &cj0p,
54  complex<double> &cj1p,complex<double> &cy0p,complex<double> &cy1p);
55 extern int cbessjyna(int n,complex<double> z,int &nm,complex<double> *cj,
56  complex<double> *cy,complex<double> *cjp,complex<double> *cyp);
57 extern int cbessjynb(int n,complex<double> z,int &nm,complex<double> *cj,
58  complex<double> *cy,complex<double> *cjp,complex<double> *cyp);
59 extern int cbessik01(complex<double>z,complex<double>&ci0,complex<double>&ci1,
60  complex<double>&ck0,complex<double>&ck1,complex<double>&ci0p,
61  complex<double>&ci1p,complex<double>&ck0p,complex<double>&ck1p);
62 extern int cbessikna(int n,complex<double> z,int &nm,complex<double> *ci,
63  complex<double> *ck,complex<double> *cip,complex<double> *ckp);
64 extern int cbessiknb(int n,complex<double> z,int &nm,complex<double> *ci,
65  complex<double> *ck,complex<double> *cip,complex<double> *ckp);
66 extern int cbessjyva(double v,complex<double> z,double &vm,complex<double>*cjv,
67  complex<double>*cyv,complex<double>*cjvp,complex<double>*cyvp);
68 extern int cbessikv(double v,complex<double>z,double &vm,complex<double> *civ,
69  complex<double> *ckv,complex<double> *civp,complex<double> *ckvp);
70 
71 
72 }
73 #endif
74 
75 
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Definition: crbond_bessel.cc:21
int bessjyv(double v, double x, double &vm, double *jv, double *yv, double *djv, double *dyv)
Definition: crbond_bessel.cc:1050
int bessiknb(int n, double x, int &nm, double *in, double *kn, double *inp, double *knp)
Definition: crbond_bessel.cc:288
int msta1(double x, int mp)
Definition: crbond_bessel.cc:779
int cbessjy01(complex< double > z, complex< double > &cj0, complex< double > &cj1, complex< double > &cy0, complex< double > &cy1, complex< double > &cj0p, complex< double > &cj1p, complex< double > &cy0p, complex< double > &cy1p)
Definition: crbond_bessel.cc:1689
int bessik01a(double x, double &i0, double &i1, double &k0, double &k1, double &i0p, double &i1p, double &k0p, double &k1p)
Definition: crbond_bessel.cc:41
int msta2(double x, int n, int mp)
Definition: crbond_bessel.cc:802
double eps
Definition: crbond_bessel.cc:24
int cbessiknb(int n, complex< double > z, int &nm, complex< double > *ci, complex< double > *ck, complex< double > *cip, complex< double > *ckp)
Definition: crbond_bessel.cc:1427
int cbessikna(int n, complex< double > z, int &nm, complex< double > *ci, complex< double > *ck, complex< double > *cip, complex< double > *ckp)
Definition: crbond_bessel.cc:1372
int bessikv(double v, double x, double &vm, double *iv, double *kv, double *ivp, double *kvp)
Definition: crbond_bessel.cc:374
int cbessikv(double v, complex< double >z, double &vm, complex< double > *civ, complex< double > *ckv, complex< double > *civp, complex< double > *ckvp)
Definition: crbond_bessel.cc:1520
int bessjynb(int n, double x, int &nm, double *jn, double *yn, double *jnp, double *ynp)
Definition: crbond_bessel.cc:920
int bessjy01a(double x, double &j0, double &j1, double &y0, double &y1, double &j0p, double &j1p, double &y0p, double &y1p)
Definition: crbond_bessel.cc:551
int bessik01b(double x, double &i0, double &i1, double &k0, double &k1, double &i0p, double &i1p, double &k0p, double &k1p)
Definition: crbond_bessel.cc:161
int cbessjyna(int n, complex< double > z, int &nm, complex< double > *cj, complex< double > *cy, complex< double > *cjp, complex< double > *cyp)
Definition: crbond_bessel.cc:1858
int bessjyna(int n, double x, int &nm, double *jn, double *yn, double *jnp, double *ynp)
Definition: crbond_bessel.cc:852
int bessjy01b(double x, double &j0, double &j1, double &y0, double &y1, double &j0p, double &j1p, double &y0p, double &y1p)
Definition: crbond_bessel.cc:720
int cbessjyva(double v, complex< double > z, double &vm, complex< double > *cjv, complex< double > *cyv, complex< double > *cjvp, complex< double > *cyvp)
Definition: crbond_bessel.cc:2127
int cbessjynb(int n, complex< double > z, int &nm, complex< double > *cj, complex< double > *cy, complex< double > *cjp, complex< double > *cyp)
Definition: crbond_bessel.cc:1991
int cbessik01(complex< double >z, complex< double > &ci0, complex< double > &ci1, complex< double > &ck0, complex< double > &ck1, complex< double > &ci0p, complex< double > &ci1p, complex< double > &ck0p, complex< double > &ck1p)
Definition: crbond_bessel.cc:1237
double el
Definition: crbond_bessel.cc:27
int bessikna(int n, double x, int &nm, double *in, double *kn, double *inp, double *knp)
Definition: crbond_bessel.cc:222
list x
Definition: plotDoE.py:28