9#ifndef besselFormula_hh
10#define besselFormula_hh
15#ifdef HAS_COMPLEX_BESSEL
16#include "basics/warnings/push.h"
17#include "basics/warnings/ignore_warning_unused_variable.h"
18#include "complex_bessel.h"
19#include "basics/warnings/pop.h"
92#ifdef HAS_COMPLEX_BESSEL
128 : m_(m), r0_(
r0, 0.0, 0.0) {}
144 virtual std::ostream&
info(std::ostream&
os)
const;
154 return besselJn(m_*std::abs(p - r0_[0]),n);
164 return besselJn(m_*(p - r0_).l2(),n);
169 Real x = m_*std::abs(p - r0_[0]);
181 Real x = m_*(p - r0_).l2();
188 if (m_ != 1)
os << m_ <<
"*";
190 os <<
"(r - " << r0_ <<
")";
212 : m_(m), r0_(
r0, 0.0, 0.0) {}
228 virtual std::ostream&
info(std::ostream&
os)
const;
238 return besselYn(m_*std::abs(p - r0_[0]),n);
248 return besselYn(m_*(p - r0_).l2(),n);
253 Real x = m_*std::abs(p - r0_[0]);
265 Real x = m_*(p - r0_).l2();
272 if (m_ != 1)
os << m_ <<
"*";
274 os <<
"(r - " << r0_ <<
")";
virtual Real operator()(const Real p, const Real t=0.0) const
Bessel function.
Real derivative(const Real p)
Derivative of Bessel function.
virtual BesselJ< n > * clone() const
Virtual copy constructor.
BesselJ(const Real m=1.0, const Real r0=0.0)
Constructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Real operator()(const Real p, const Real t=0.0) const
Bessel function.
BesselY(const Real m=1.0, const Real r0=0.0)
Constructor.
Real derivative(const Real p)
Derivative of Bessel function.
virtual BesselY< n > * clone() const
Virtual copy constructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
std::string typeOf(const T &t)
Cmplx hankel_2_n(const Real x, const int n)
Cmplx hankel_1_deriv_n(const Real x, const int n)
Cmplx hankel_2_deriv_n(const Real x, const int n)
Real besselJn(const Real x, const int n)
Evaluates the Bessel function .
Cmplx hankel_1_n(const Real x, const int n)
Real besselYn(const Real x, const int n)
Evaluates the Bessel function .
Set< F > makeSet(uint n, const F &first,...)
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.