20#ifndef CCGSL_SF_BESSEL_HPP
21#define CCGSL_SF_BESSEL_HPP
23#include<gsl/gsl_sf_bessel.h>
45 inline double J0(
double const x ){
return gsl_sf_bessel_J0( x ); }
58 inline double J1(
double const x ){
return gsl_sf_bessel_J1( x ); }
73 inline double Jn(
int const n,
double const x ){
return gsl_sf_bessel_Jn(
n, x ); }
83 inline int Jn_array(
int nmin,
int nmax,
double x,
double* result_array ){
84 return gsl_sf_bessel_Jn_array( nmin, nmax, x, result_array ); }
94 template<typename DATA>
95 inline int Jn_array(
int nmin,
int nmax,
double x, DATA& result_array ){
96 if(result_array.size() <
static_cast<size_t>(nmax - nmin + 1)){
99 return gsl_sf_bessel_Jn_array( nmin, nmax, x, result_array.data() ); }
112 inline double Y0(
double const x ){
return gsl_sf_bessel_Y0( x ); }
125 inline double Y1(
double const x ){
return gsl_sf_bessel_Y1( x ); }
140 inline double Yn(
int const n,
double const x ){
return gsl_sf_bessel_Yn(
n, x ); }
150 inline int Yn_array(
int const nmin,
int const nmax,
double const x,
151 double* result_array ){
152 return gsl_sf_bessel_Yn_array( nmin, nmax, x, result_array ); }
162 template<typename DATA>
163 inline int Yn_array(
int const nmin,
int const nmax,
double const x,
164 DATA& result_array ){
165 if(result_array.size() <
static_cast<size_t>(nmax - nmin + 1)){
168 return gsl_sf_bessel_Yn_array( nmin, nmax, x, result_array.data() ); }
181 inline double I0(
double const x ){
return gsl_sf_bessel_I0( x ); }
194 inline double I1(
double const x ){
return gsl_sf_bessel_I1( x ); }
209 inline double In(
int const n,
double const x ){
return gsl_sf_bessel_In(
n, x ); }
220 inline int In_array(
int const nmin,
int const nmax,
double const x,
221 double* result_array ){
222 return gsl_sf_bessel_In_array( nmin, nmax, x, result_array ); }
233 template<typename DATA>
234 inline int In_array(
int const nmin,
int const nmax,
double const x,
235 DATA& result_array ){
236 if(result_array.size() <
static_cast<size_t>(nmax - nmin + 1)){
239 return gsl_sf_bessel_In_array( nmin, nmax, x, result_array.data() ); }
253 inline double I0_scaled(
double const x ){
return gsl_sf_bessel_I0_scaled( x ); }
268 inline double I1_scaled(
double const x ){
return gsl_sf_bessel_I1_scaled( x ); }
278 return gsl_sf_bessel_In_scaled_e(
n, x, &
result ); }
286 inline double In_scaled(
int const n,
double const x ){
return gsl_sf_bessel_In_scaled(
n, x ); }
296 inline int In_scaled_array(
int const nmin,
int const nmax,
double const x,
297 double* result_array ){
298 return gsl_sf_bessel_In_scaled_array( nmin, nmax, x, result_array ); }
308 template<typename DATA>
310 DATA& result_array ){
311 if(result_array.size() <
static_cast<size_t>(nmax - nmin + 1)){
314 return gsl_sf_bessel_In_scaled_array( nmin, nmax, x, result_array.data() ); }
329 inline double K0(
double const x ){
return gsl_sf_bessel_K0( x ); }
344 inline double K1(
double const x ){
return gsl_sf_bessel_K1( x ); }
354 return gsl_sf_bessel_Kn_e(
n, x, &
result ); }
362 inline double Kn(
int const n,
double const x ){
return gsl_sf_bessel_Kn(
n, x ); }
373 inline int Kn_array(
int const nmin,
int const nmax,
double const x,
374 double* result_array ){
375 return gsl_sf_bessel_Kn_array( nmin, nmax, x, result_array ); }
386 template<typename DATA>
387 inline int Kn_array(
int const nmin,
int const nmax,
double const x,
388 DATA& result_array ){
389 if(result_array.size() <
static_cast<size_t>(nmax - nmin + 1)){
392 return gsl_sf_bessel_Kn_array( nmin, nmax, x, result_array.data() ); }
403 return gsl_sf_bessel_K0_scaled_e( x, &
result ); }
412 inline double K0_scaled(
double const x ){
return gsl_sf_bessel_K0_scaled( x ); }
423 return gsl_sf_bessel_K1_scaled_e( x, &
result ); }
432 inline double K1_scaled(
double const x ){
return gsl_sf_bessel_K1_scaled( x ); }
444 return gsl_sf_bessel_Kn_scaled_e(
n, x, &
result ); }
454 inline double Kn_scaled(
int const n,
double const x ){
return gsl_sf_bessel_Kn_scaled(
n, x ); }
466 template<
typename DATA>
468 DATA& result_array ){
469 if(result_array.size() <
static_cast<size_t>(nmax - nmin + 1)){
472 return gsl_sf_bessel_Kn_scaled_array( nmin, nmax, x, result_array.data() ); }
487 inline double j0(
double const x ){
return gsl_sf_bessel_j0( x ); }
502 inline double j1(
double const x ){
return gsl_sf_bessel_j1( x ); }
517 inline double j2(
double const x ){
return gsl_sf_bessel_j2( x ); }
529 return gsl_sf_bessel_jl_e( l, x, &
result ); }
539 inline double jl(
int const l,
double const x ){
return gsl_sf_bessel_jl( l, x ); }
551 inline int jl_array(
int const lmax,
double const x,
double* result_array ){
552 return gsl_sf_bessel_jl_array( lmax, x, result_array ); }
564 template<typename DATA>
565 inline int jl_array(
int const lmax,
double const x, DATA& result_array ){
566 if(result_array.size() <
static_cast<size_t>(lmax + 1)){
569 return gsl_sf_bessel_jl_array( lmax, x, result_array.data() ); }
580 inline int jl_steed_array(
int const lmax,
double const x,
double* jl_x_array ){
581 return gsl_sf_bessel_jl_steed_array( lmax, x, jl_x_array ); }
592 template<typename DATA>
594 if(jl_x_array.size() <
static_cast<size_t>(lmax + 1)){
597 return gsl_sf_bessel_jl_steed_array( lmax, x, jl_x_array.data() ); }
605 return gsl_sf_bessel_y0_e( x, &
result ); }
611 inline double y0(
double const x ){
return gsl_sf_bessel_y0( x ); }
624 inline double y1(
double const x ){
return gsl_sf_bessel_y1( x ); }
637 inline double y2(
double const x ){
return gsl_sf_bessel_y2( x ); }
652 inline double yl(
int const l,
double const x ){
return gsl_sf_bessel_yl( l, x ); }
661 inline int yl_array(
int const lmax,
double const x,
double* result_array ){
662 return gsl_sf_bessel_yl_array( lmax, x, result_array ); }
671 template<typename DATA>
672 inline int yl_array(
int const lmax,
double const x, DATA& result_array ){
673 if(result_array.size() <
static_cast<size_t>(lmax + 1)){
676 return gsl_sf_bessel_yl_array( lmax, x, result_array.data() ); }
687 return gsl_sf_bessel_i0_scaled_e( x, &
result ); }
696 inline double i0_scaled(
double const x ){
return gsl_sf_bessel_i0_scaled( x ); }
715 inline double i1_scaled(
double const x ){
return gsl_sf_bessel_i1_scaled( x ); }
734 inline double i2_scaled(
double const x ){
return gsl_sf_bessel_i2_scaled( x ); }
750 return gsl_sf_bessel_il_scaled_e( l, x, &
result ); }
764 inline double il_scaled(
int const l,
double const x ){
return gsl_sf_bessel_il_scaled( l, x ); }
777 inline int il_scaled_array(
int const lmax,
double const x,
double* result_array ){
778 return gsl_sf_bessel_il_scaled_array( lmax, x, result_array ); }
791 template<typename DATA>
793 if( result_array.size() <
static_cast<size_t>(lmax + 1)) {
796 return gsl_sf_bessel_il_scaled_array( lmax, x, result_array.data() ); }
808 return gsl_sf_bessel_k0_scaled_e( x, &
result ); }
818 inline double k0_scaled(
double const x ){
return gsl_sf_bessel_k0_scaled( x ); }
830 return gsl_sf_bessel_k1_scaled_e( x, &
result ); }
840 inline double k1_scaled(
double const x ){
return gsl_sf_bessel_k1_scaled( x ); }
852 return gsl_sf_bessel_k2_scaled_e( x, &
result ); }
862 inline double k2_scaled(
double const x ){
return gsl_sf_bessel_k2_scaled( x ); }
875 return gsl_sf_bessel_kl_scaled_e( l, x, &
result ); }
886 inline double kl_scaled(
int const l,
double const x ){
return gsl_sf_bessel_kl_scaled( l, x ); }
899 inline int kl_scaled_array(
int const lmax,
double const x,
double* result_array ){
900 return gsl_sf_bessel_kl_scaled_array( lmax, x, result_array ); }
913 template<typename DATA>
915 if(result_array.size() <
static_cast<size_t>(lmax + 1)){
918 return gsl_sf_bessel_kl_scaled_array( lmax, x, result_array.data() ); }
928 return gsl_sf_bessel_Jnu_e( nu, x, &
result ); }
936 inline double Jnu(
double const nu,
double const x ){
return gsl_sf_bessel_Jnu( nu, x ); }
946 return gsl_sf_bessel_Ynu_e( nu, x, &
result ); }
954 inline double Ynu(
double const nu,
double const x ){
return gsl_sf_bessel_Ynu( nu, x ); }
970 return gsl_sf_bessel_sequence_Jnu_e( nu, mode,
size, v ); }
984 template<typename DATA>
986 return gsl_sf_bessel_sequence_Jnu_e( nu, mode, v.size(), v.data() ); }
999 return gsl_sf_bessel_Inu_scaled_e( nu, x, &
result ); }
1010 inline double Inu_scaled(
double nu,
double x ){
return gsl_sf_bessel_Inu_scaled( nu, x ); }
1023 return gsl_sf_bessel_Inu_e( nu, x, &
result ); }
1034 inline double Inu(
double nu,
double x ){
return gsl_sf_bessel_Inu( nu, x ); }
1047 return gsl_sf_bessel_Knu_scaled_e( nu, x, &
result ); }
1059 return gsl_sf_bessel_Knu_scaled( nu, x ); }
1072 return gsl_sf_bessel_Knu_e( nu, x, &
result ); }
1083 inline double Knu(
double const nu,
double const x ){
return gsl_sf_bessel_Knu( nu, x ); }
1096 return gsl_sf_bessel_lnKnu_e( nu, x, &
result ); }
1107 inline double lnKnu(
double const nu,
double const x ){
1108 return gsl_sf_bessel_lnKnu( nu, x ); }
1117 return gsl_sf_bessel_zero_J0_e( s, &
result ); }
1124 inline double zero_J0(
unsigned int s ){
return gsl_sf_bessel_zero_J0( s ); }
1133 return gsl_sf_bessel_zero_J1_e( s, &
result ); }
1140 inline double zero_J1(
unsigned int s ){
return gsl_sf_bessel_zero_J1( s ); }
1150 return gsl_sf_bessel_zero_Jnu_e( nu, s, &
result ); }
1159 return gsl_sf_bessel_zero_Jnu( nu, s ); }
size_t size(series const &cs)
C++ version of gsl_cheb_size().
size_t n(workspace const &w)
C++ version of gsl_rstat_n().
double k0_scaled(double const x)
C++ version of gsl_sf_bessel_k0_scaled().
double i1_scaled(double const x)
Regular scaled modified spherical Bessel function.
double I0_scaled(double const x)
C++ version of gsl_sf_bessel_I0_scaled().
double I1(double const x)
C++ version of gsl_sf_bessel_I1().
int k2_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_k2_scaled_e().
int Knu_e(double const nu, double const x, result &result)
C++ version of gsl_sf_bessel_Knu_e().
int Kn_scaled_e(int n, double const x, result &result)
C++ version of gsl_sf_bessel_Kn_scaled_e().
int jl_array(int const lmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_jl_array().
int j1_e(double const x, result &result)
C++ version of gsl_sf_bessel_j1_e().
int y2_e(double const x, result &result)
C++ version of gsl_sf_bessel_y2_e().
double lnKnu(double const nu, double const x)
C++ version of gsl_sf_bessel_lnKnu().
int In_e(int const n, double const x, result &result)
C++ version of gsl_sf_bessel_In_e().
double j1(double const x)
C++ version of gsl_sf_bessel_j1().
double Knu_scaled(double const nu, double const x)
C++ version of gsl_sf_bessel_Knu_scaled().
double Ynu(double const nu, double const x)
C++ version of gsl_sf_bessel_Ynu().
int y1_e(double const x, result &result)
C++ version of gsl_sf_bessel_y1_e().
double Jn(int const n, double const x)
C++ version of gsl_sf_bessel_Jn().
int zero_J0_e(unsigned int s, result &result)
C++ version of gsl_sf_bessel_zero_J0_e().
int Yn_array(int const nmin, int const nmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_Yn_array().
int Knu_scaled_e(double const nu, double const x, result &result)
C++ version of gsl_sf_bessel_Knu_scaled_e().
int Kn_scaled_array(int const nmin, int const nmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_Kn_scaled_array().
int I1_e(double const x, result &result)
C++ version of gsl_sf_bessel_I1_e().
double i0_scaled(double const x)
C++ version of gsl_sf_bessel_i0_scaled().
double kl_scaled(int const l, double const x)
C++ version of gsl_sf_bessel_kl_scaled().
double Inu(double nu, double x)
C++ version of gsl_sf_bessel_Inu().
double il_scaled(int const l, double const x)
C++ version of gsl_sf_bessel_il_scaled().
double yl(int const l, double const x)
C++ version of gsl_sf_bessel_yl().
double Yn(int const n, double const x)
C++ version of gsl_sf_bessel_Yn().
int i1_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_i1_scaled_e().
double k2_scaled(double const x)
C++ version of gsl_sf_bessel_k2_scaled().
int i0_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_i0_scaled_e().
int In_scaled_array(int const nmin, int const nmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_In_scaled_array().
double zero_J0(unsigned int s)
C++ version of gsl_sf_bessel_zero_J0().
double J1(double const x)
C++ version of gsl_sf_bessel_J1().
double jl(int const l, double const x)
C++ version of gsl_sf_bessel_jl().
int jl_e(int const l, double const x, result &result)
C++ version of gsl_sf_bessel_jl_e().
int J0_e(double const x, result &result)
C++ version of gsl_sf_bessel_J0().
double K0_scaled(double const x)
C++ version of gsl_sf_bessel_K0_scaled().
int Jn_array(int nmin, int nmax, double x, DATA &result_array)
C++ version of gsl_sf_bessel_Jn_array().
int Kn_e(int const n, double const x, result &result)
C++ version of gsl_sf_bessel_Kn_e().
int Y0_e(double const x, result &result)
C++ version of gsl_sf_bessel_Y0_e().
int yl_e(int l, double const x, result &result)
C++ version of gsl_sf_bessel_yl_e().
double zero_Jnu(double nu, unsigned int s)
C++ version of gsl_sf_bessel_zero_Jnu().
double Y0(double const x)
C++ version of gsl_sf_bessel_Y0().
int lnKnu_e(double const nu, double const x, result &result)
C++ version of gsl_sf_bessel_lnKnu_e().
int il_scaled_array(int const lmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_il_scaled_array().
double i2_scaled(double const x)
C++ version of gsl_sf_bessel_i2_scaled().
int K0_e(double const x, result &result)
C++ version of gsl_sf_bessel_K0_e().
int J1_e(double const x, result &result)
C++ version of gsl_sf_bessel_J1_e().
int j2_e(double const x, result &result)
C++ version of gsl_sf_bessel_j2_e().
int jl_steed_array(int const lmax, double const x, DATA &jl_x_array)
C++ version of gsl_sf_bessel_jl_steed_array().
int i2_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_i2_scaled_e().
int Jnu_e(double const nu, double const x, result &result)
C++ version of gsl_sf_bessel_Jnu_e().
int y0_e(double const x, result &result)
C++ version of gsl_sf_bessel_y0_e().
double Inu_scaled(double nu, double x)
C++ version of gsl_sf_bessel_Inu_scaled().
int k1_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_k1_scaled_e().
double In(int const n, double const x)
C++ version of gsl_sf_bessel_In().
int Inu_e(double nu, double x, result &result)
C++ version of gsl_sf_bessel_Inu_e().
int Inu_scaled_e(double nu, double x, result &result)
C++ version of gsl_sf_bessel_Inu_scaled_e().
int Ynu_e(double nu, double x, result &result)
C++ version of gsl_sf_bessel_Ynu_e().
int K1_e(double const x, result &result)
C++ version of gsl_sf_bessel_K1_e().
int kl_scaled_e(int l, double const x, result &result)
C++ version of gsl_sf_bessel_kl_scaled_e().
int il_scaled_e(int const l, double x, result &result)
C++ version of gsl_sf_bessel_il_scaled_e().
double I1_scaled(double const x)
C++ version of gsl_sf_bessel_I1_scaled().
double Y1(double const x)
C++ version of gsl_sf_bessel_Y1().
int I0_e(double const x, result &result)
C++ version of gsl_sf_bessel_I0_e().
int zero_J1_e(unsigned int s, result &result)
C++ version of gsl_sf_bessel_zero_J1_e().
double j2(double const x)
C++ version of gsl_sf_bessel_j2().
int kl_scaled_array(int const lmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_kl_scaled_array().
int Kn_array(int const nmin, int const nmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_Kn_array().
int I0_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_I0_scaled_e().
int In_array(int const nmin, int const nmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_In_array().
double I0(double const x)
C++ version of gsl_sf_bessel_I0().
double Kn_scaled(int const n, double const x)
C++ version of gsl_sf_bessel_Kn_scaled().
int zero_Jnu_e(double nu, unsigned int s, result &result)
C++ version of gsl_sf_bessel_zero_Jnu_e().
int K0_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_K0_scaled_e().
double In_scaled(int const n, double const x)
C++ version of gsl_sf_bessel_In_scaled().
int j0_e(double const x, result &result)
C++ version of gsl_sf_bessel_j0_e().
double y0(double const x)
C++ version of gsl_sf_bessel_y0().
int I1_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_I1_scaled_e().
double K1_scaled(double const x)
C++ version of gsl_sf_bessel_K1_scaled().
double J0(double const x)
C++ version of gsl_sf_bessel_J0().
int Yn_e(int n, double const x, result &result)
C++ version of gsl_sf_bessel_Yn_e().
int k0_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_k0_scaled_e().
int In_scaled_e(int n, double const x, result &result)
C++ version of gsl_sf_bessel_In_scaled_e().
double j0(double const x)
C++ version of gsl_sf_bessel_j0().
int Jn_e(int n, double x, result &result)
C++ version of gsl_sf_bessel_Jn_e().
double zero_J1(unsigned int s)
C++ version of gsl_sf_bessel_zero_J1().
double k1_scaled(double const x)
C++ version of gsl_sf_bessel_k1_scaled().
double K1(double const x)
C++ version of gsl_sf_bessel_K1().
int K1_scaled_e(double const x, result &result)
C++ version of gsl_sf_bessel_K1_scaled_e().
int yl_array(int const lmax, double const x, DATA &result_array)
C++ version of gsl_sf_bessel_yl_array().
double K0(double const x)
C++ version of gsl_sf_bessel_K0().
double y1(double const x)
C++ version of gsl_sf_bessel_y1().
double Jnu(double const nu, double const x)
C++ version of gsl_sf_bessel_Jnu().
int Y1_e(double const x, result &result)
C++ version of gsl_sf_bessel_Y1_e().
double y2(double const x)
C++ version of gsl_sf_bessel_y2().
double Kn(int const n, double const x)
C++ version of gsl_sf_bessel_Kn().
double Knu(double const nu, double const x)
C++ version of gsl_sf_bessel_Knu().
int sequence_Jnu_e(double nu, mode_t mode, DATA &v)
C++ version of gsl_sf_bessel_sequence_Jnu_e().
gsl_sf_result result
Typedef for gsl_sf_result.
The gsl package creates an interface to the GNU Scientific Library for C++.
gsl_mode_t mode_t
A typedef for gsl_mode_t.