15#ifndef dealii_cxx17_cmath_h
16#define dealii_cxx17_cmath_h
20#if defined(DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS) || \
21 defined(DEAL_II_HAVE_CXX17_LEGENDRE_FUNCTIONS)
25#ifndef DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
26# include <boost/math/special_functions/bessel.hpp>
29#ifndef DEAL_II_HAVE_CXX17_LEGENDRE_FUNCTIONS
32# include <boost/math/special_functions/legendre.hpp>
42#ifndef DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
45 cyl_bessel_j(
double nu,
double x)
47 return boost::math::cyl_bessel_j(nu, x);
53 cyl_bessel_jf(
float nu,
float x)
55 return boost::math::cyl_bessel_j(nu, x);
61 cyl_bessel_jl(
long double nu,
long double x)
63 return boost::math::cyl_bessel_j(nu, x);
67 using std::cyl_bessel_j;
68 using std::cyl_bessel_jf;
69 using std::cyl_bessel_jl;
72#ifndef DEAL_II_HAVE_CXX17_LEGENDRE_FUNCTIONS
77 Assert(
static_cast<int>(
l) >= 0,
79 return boost::math::legendre_p(
static_cast<int>(
l), x);
87 Assert(
static_cast<int>(
l) >= 0,
89 return boost::math::legendre_p(
static_cast<int>(
l), x);
97 Assert(
static_cast<int>(
l) >= 0,
99 return boost::math::legendre_p(
static_cast<int>(
l), x);
107 Assert(
static_cast<int>(
l) >= 0,
109 return boost::math::legendre_p(
static_cast<int>(
l), x);
117 Assert(
static_cast<int>(
l) >= 0,
119 return boost::math::legendre_p(
static_cast<int>(
l), x);
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
#define Assert(cond, exc)
Tensor< 2, dim, Number > l(const Tensor< 2, dim, Number > &F, const Tensor< 2, dim, Number > &dF_dt)
float legendref(unsigned int l, float x)
long double legendre(unsigned int l, long double x)
long double legendrel(unsigned int l, long double x)
double legendre(unsigned int l, double x)