3 #include "gsl/gsl_sf_bessel.h" 9 #define GF_DBL_EPSILON 2.2204460492503131e-16 13 namespace IntegralOrder {
15 FUNCTION_OBJECT_IMP(Bessel)
18 Bessel::Bessel(Type type,
unsigned int order):
19 _type(type),_order(order)
28 Bessel::Bessel(
const Bessel & right):
35 double Bessel::operator() (
double x)
const {
38 int status = gsl_sf_bessel_Jn_e(_order, x, &result);
40 std::cerr <<
"Warning, GSL function gsl_sf_bessel_Jn_impl" 41 <<
" return code" << status << std::endl;
47 int status = gsl_sf_bessel_Yn_e(_order, x, &result);
49 std::cerr <<
"Warning, GSL function gsl_sf_bessel_Yn_impl" 50 <<
" return code" << status << std::endl;
62 namespace FractionalOrder {
64 FUNCTION_OBJECT_IMP(Bessel)
67 Bessel::Bessel(Type type):
69 _order(
"Order", 0.0,-10,10)
78 Bessel::Bessel(
const Bessel & right):
86 Parameter & Bessel::order() {
91 const Parameter & Bessel::order()
const {
97 double Bessel::operator() (
double x)
const {
100 int status = gsl_sf_bessel_Jnu_e(_order.getValue(), x, &result);
102 std::cerr <<
"Warning, GSL function gsl_sf_bessel_Jnu_impl" 103 <<
" return code" << status << std::endl;
109 int status = gsl_sf_bessel_Ynu_e(_order.getValue(), x, &result);
111 std::cerr <<
"Warning, GSL function gsl_sf_bessel_Ynu_impl" 112 <<
" return code" << status << std::endl;