ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Static Protected Attributes | List of all members
ROOT::Math::KelvinFunctions Class Reference

Definition at line 38 of file KelvinFunctions.h.

Public Member Functions

virtual ~KelvinFunctions ()
 

Static Public Member Functions

static double Ber (double x)
 Begin_Latex Ber(x) = Ber_{0}(x) = Re::left[J_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex J_{0}(z) End_Latex is the zeroth-order Bessel function of the first kind. More...
 
static double Bei (double x)
 Begin_Latex Bei(x) = Bei_{0}(x) = Im::left[J_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex J_{0}(z) End_Latex is the zeroth-order Bessel function of the first kind. More...
 
static double Ker (double x)
 Begin_Latex Ker(x) = Ker_{0}(x) = Re::left[K_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex K_{0}(z) End_Latex is the zeroth-order modified Bessel function of the second kind. More...
 
static double Kei (double x)
 Begin_Latex Kei(x) = Kei_{0}(x) = Im::left[K_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex K_{0}(z) End_Latex is the zeroth-order modified Bessel function of the second kind. More...
 
static double DBer (double x)
 Calculates the first derivative of Ber(x). More...
 
static double DBei (double x)
 Calculates the first derivative of Bei(x). More...
 
static double DKer (double x)
 Calculates the first derivative of Ker(x). More...
 
static double DKei (double x)
 Calculates the first derivative of Kei(x). More...
 
static double F1 (double x)
 Utility function appearing in the calculations of the Kelvin functions Bei(x) and Ber(x) (and their derivatives). More...
 
static double F2 (double x)
 Utility function appearing in the calculations of the Kelvin functions Kei(x) and Ker(x) (and their derivatives). More...
 
static double G1 (double x)
 Utility function appearing in the calculations of the Kelvin functions Bei(x) and Ber(x) (and their derivatives). More...
 
static double G2 (double x)
 Utility function appearing in the calculations of the Kelvin functions Kei(x) and Ker(x) (and their derivatives). More...
 
static double M (double x)
 Utility function appearing in the asymptotic expansions of DBer(x) and DBei(x). More...
 
static double Theta (double x)
 Utility function appearing in the asymptotic expansions of DBer(x) and DBei(x). More...
 
static double N (double x)
 Utility function appearing in the asymptotic expansions of DKer(x) and DKei(x). More...
 
static double Phi (double x)
 Utility function appearing in the asymptotic expansions of DKer(x) and DKei(x). More...
 

Static Protected Attributes

static double fgMin = 20
 
static double fgEpsilon = 1.e-20
 

#include <Math/KelvinFunctions.h>

Constructor & Destructor Documentation

virtual ROOT::Math::KelvinFunctions::~KelvinFunctions ( )
inlinevirtual

Definition at line 63 of file KelvinFunctions.h.

Member Function Documentation

double ROOT::Math::KelvinFunctions::Bei ( double  x)
static

Begin_Latex Bei(x) = Bei_{0}(x) = Im::left[J_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex J_{0}(z) End_Latex is the zeroth-order Bessel function of the first kind.

If x < fgMin (=20), Bei(x) is computed according to its polynomial approximation Begin_Latex Bei(x) = #sum_{n #geq 0}#frac{(-1)^{n}(x/2)^{4n+2}}{[(2n+1)!]^{2}} End_Latex For x > fgMin, Bei(x) is computed according to its asymptotic expansion: Begin_Latex Bei(x) = #frac{e^{x/sqrt{2}}}{sqrt{2#pix}} [F1(x) sin::alpha + G1(x) cos::alpha] - #frac{1}{pi}Ker(x) End_Latex where Begin_Latex #alpha = #frac{x}{sqrt{2}} - #frac{pi}{8} End_Latex See also F1(x) and G1(x).{

Definition at line 133 of file KelvinFunctions.cxx.

Referenced by DKei(), Kei(), and Ker().

double ROOT::Math::KelvinFunctions::Ber ( double  x)
static

Begin_Latex Ber(x) = Ber_{0}(x) = Re::left[J_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex J_{0}(z) End_Latex is the zeroth-order Bessel function of the first kind.

If x < fgMin (=20), Ber(x) is computed according to its polynomial approximation Begin_Latex Ber(x) = 1 + #sum_{n #geq 1}#frac{(-1)^{n}(x/2)^{4n}}{[(2n)!]^{2}} End_Latex For x > fgMin, Ber(x) is computed according to its asymptotic expansion: Begin_Latex Ber(x) = #frac{e^{x/sqrt{2}}}{sqrt{2#pix}} [F1(x) cos::alpha + G1(x) sin::alpha] - #frac{1}{pi}Kei(x) End_Latex where Begin_Latex #alpha = #frac{x}{sqrt{2}} - #frac{pi}{8} End_Latex. See also F1(x) and G1(x).{

Definition at line 76 of file KelvinFunctions.cxx.

Referenced by DKer(), Kei(), and Ker().

double ROOT::Math::KelvinFunctions::DBei ( double  x)
static

Calculates the first derivative of Bei(x).

If x < fgMin (=20), DBei(x) is computed according to the derivative of the polynomial approximation of Bei(x). Otherwise it is computed according to its asymptotic expansion Begin_Latex #frac{d}{dx} Bei(x) = M sin::left(theta - #frac{pi}{4}#right) End_Latex See also M(x) and Theta(x).{

Definition at line 360 of file KelvinFunctions.cxx.

Referenced by DKei(), and DKer().

double ROOT::Math::KelvinFunctions::DBer ( double  x)
static

Calculates the first derivative of Ber(x).

If x < fgMin (=20), DBer(x) is computed according to the derivative of the polynomial approximation of Ber(x). Otherwise it is computed according to its asymptotic expansion Begin_Latex #frac{d}{dx} Ber(x) = M cos::left(theta - #frac{pi}{4}#right) End_Latex See also M(x) and Theta(x).{

Definition at line 315 of file KelvinFunctions.cxx.

Referenced by DKei(), and DKer().

double ROOT::Math::KelvinFunctions::DKei ( double  x)
static

Calculates the first derivative of Kei(x).

If x < fgMin (=20), DKei(x) is computed according to the derivative of the polynomial approximation of Kei(x). Otherwise it is computed according to its asymptotic expansion Begin_Latex #frac{d}{dx} Kei(x) = N sin::left(phi - #frac{pi}{4}#right) End_Latex See also N(x) and Phi(x).{

Definition at line 453 of file KelvinFunctions.cxx.

double ROOT::Math::KelvinFunctions::DKer ( double  x)
static

Calculates the first derivative of Ker(x).

If x < fgMin (=20), DKer(x) is computed according to the derivative of the polynomial approximation of Ker(x). Otherwise it is computed according to its asymptotic expansion Begin_Latex #frac{d}{dx} Ker(x) = N cos::left(phi - #frac{pi}{4}#right) End_Latex See also N(x) and Phi(x).{

Definition at line 405 of file KelvinFunctions.cxx.

double ROOT::Math::KelvinFunctions::F1 ( double  x)
static

Utility function appearing in the calculations of the Kelvin functions Bei(x) and Ber(x) (and their derivatives).

F1(x) is given by Begin_Latex F1(x) = 1 + #sum_{n #geq 1} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} cos::left(#frac{n::pi}{4}#right) End_Latex

Definition at line 488 of file KelvinFunctions.cxx.

Referenced by Bei(), and Ber().

double ROOT::Math::KelvinFunctions::F2 ( double  x)
static

Utility function appearing in the calculations of the Kelvin functions Kei(x) and Ker(x) (and their derivatives).

F2(x) is given by Begin_Latex F2(x) = 1 + #sum_{n #geq 1} (-1)^{n} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} cos::left(#frac{n::pi}{4}#right) End_Latex

Definition at line 517 of file KelvinFunctions.cxx.

Referenced by Kei(), and Ker().

double ROOT::Math::KelvinFunctions::G1 ( double  x)
static

Utility function appearing in the calculations of the Kelvin functions Bei(x) and Ber(x) (and their derivatives).

G1(x) is given by Begin_Latex G1(x) = #sum_{n #geq 1} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} sin::left(#frac{n::pi}{4}#right) End_Latex

Definition at line 548 of file KelvinFunctions.cxx.

Referenced by Bei(), and Ber().

double ROOT::Math::KelvinFunctions::G2 ( double  x)
static

Utility function appearing in the calculations of the Kelvin functions Kei(x) and Ker(x) (and their derivatives).

G2(x) is given by Begin_Latex G2(x) = #sum_{n #geq 1} (-1)^{n} #frac{#prod_{m=1}^{n}(2m - 1)^{2}}{n! (8x)^{n}} sin::left(#frac{n::pi}{4}#right) End_Latex

Definition at line 575 of file KelvinFunctions.cxx.

Referenced by Kei(), and Ker().

double ROOT::Math::KelvinFunctions::Kei ( double  x)
static

Begin_Latex Kei(x) = Kei_{0}(x) = Im::left[K_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex K_{0}(z) End_Latex is the zeroth-order modified Bessel function of the second kind.

If x < fgMin (=20), Kei(x) is computed according to its polynomial approximation Begin_Latex Kei(x) = -#left(ln #frac{x}{2} + #gamma#right) Bei(x) - #left(#frac{pi}{4} - #delta#right) Ber(x) + #sum_{n #geq 0} #frac{(-1)^{n}}{[(2n)!]^{2}} H_{2n} #left(#frac{x}{2}#right)^{4n+2} End_Latex where Begin_Latex #gamma = 0.577215664... End_Latex is the Euler-Mascheroni constant, Begin_Latex #delta = pi End_Latex for x < 0 and is otherwise zero, and Begin_Latex H_{n} = #sum_{k = 1}^{n} #frac{1}{k} End_Latex For x > fgMin, Kei(x) is computed according to its asymptotic expansion: Begin_Latex Kei(x) = - sqrt{#frac{pi}{2x}} e^{-x/sqrt{2}} [F2(x) sin::beta + G2(x) cos::beta] End_Latex where Begin_Latex beta = #frac{x}{sqrt{2}} + #frac{pi}{8} End_Latex See also F2(x) and G2(x).{

Definition at line 263 of file KelvinFunctions.cxx.

Referenced by Ber().

double ROOT::Math::KelvinFunctions::Ker ( double  x)
static

Begin_Latex Ker(x) = Ker_{0}(x) = Re::left[K_{0}#left(x e^{3#pii/4}#right)#right] End_Latex where x is real, and Begin_Latex K_{0}(z) End_Latex is the zeroth-order modified Bessel function of the second kind.

If x < fgMin (=20), Ker(x) is computed according to its polynomial approximation Begin_Latex Ker(x) = -#left(ln #frac{|x|}{2} + #gamma#right) Ber(x) + #left(#frac{pi}{4} - #delta#right) Bei(x) + #sum_{n #geq 0} #frac{(-1)^{n}}{[(2n)!]^{2}} H_{2n} #left(#frac{x}{2}#right)^{4n} End_Latex where Begin_Latex #gamma = 0.577215664... End_Latex is the Euler-Mascheroni constant, Begin_Latex #delta = pi End_Latex for x < 0 and is otherwise zero, and Begin_Latex H_{n} = #sum_{k = 1}^{n} #frac{1}{k} End_Latex For x > fgMin, Ker(x) is computed according to its asymptotic expansion: Begin_Latex Ker(x) = sqrt{#frac{pi}{2x}} e^{-x/sqrt{2}} [F2(x) cos::beta + G2(x) sin::beta] End_Latex where Begin_Latex beta = #frac{x}{sqrt{2}} + #frac{pi}{8} End_Latex See also F2(x) and G2(x).{

Definition at line 197 of file KelvinFunctions.cxx.

Referenced by Bei().

double ROOT::Math::KelvinFunctions::M ( double  x)
static

Utility function appearing in the asymptotic expansions of DBer(x) and DBei(x).

M(x) is given by Begin_Latex M(x) = #frac{e^{x/sqrt{2}}}{sqrt{2#pix}}#left(1 + #frac{1}{8sqrt{2} x} + #frac{1}{256 x^{2}} - #frac{399}{6144sqrt{2} x^{3}} + O::left(#frac{1}{x^{4}}#right)#right) End_Latex

Definition at line 604 of file KelvinFunctions.cxx.

Referenced by DBei(), and DBer().

double ROOT::Math::KelvinFunctions::N ( double  x)
static

Utility function appearing in the asymptotic expansions of DKer(x) and DKei(x).

(x) is given by Begin_Latex N(x) = sqrt{#frac{pi}{2x}} e^{-x/sqrt{2}} #left(1 - #frac{1}{8sqrt{2} x} + #frac{1}{256 x^{2}} + #frac{399}{6144sqrt{2} x^{3}} + O::left(#frac{1}{x^{4}}#right)#right) End_Latex

Definition at line 636 of file KelvinFunctions.cxx.

Referenced by DKei(), and DKer().

double ROOT::Math::KelvinFunctions::Phi ( double  x)
static

Utility function appearing in the asymptotic expansions of DKer(x) and DKei(x).

Begin_Latex #phi(x) #End_Latex is given by Begin_Latex #phi(x) = - #frac{x}{sqrt{2}} - #frac{pi}{8} + #frac{1}{8sqrt{2} x} - #frac{1}{16 x^{2}} + #frac{25}{384sqrt{2} x^{3}} + O::left(#frac{1}{x^{5}}#right) End_Latex

Definition at line 652 of file KelvinFunctions.cxx.

Referenced by DKei(), and DKer().

double ROOT::Math::KelvinFunctions::Theta ( double  x)
static

Utility function appearing in the asymptotic expansions of DBer(x) and DBei(x).

Begin_Latex #theta(x) #End_Latex is given by Begin_Latex #theta(x) = #frac{x}{sqrt{2}} - #frac{pi}{8} - #frac{1}{8sqrt{2} x} - #frac{1}{16 x^{2}} - #frac{25}{384sqrt{2} x^{3}} + O::left(#frac{1}{x^{5}}#right) End_Latex

Definition at line 620 of file KelvinFunctions.cxx.

Referenced by DBei(), and DBer().

Member Data Documentation

double ROOT::Math::KelvinFunctions::fgEpsilon = 1.e-20
staticprotected

Definition at line 68 of file KelvinFunctions.h.

Referenced by Bei(), Ber(), DBei(), DBer(), DKei(), DKer(), F1(), F2(), G1(), G2(), Kei(), and Ker().

double ROOT::Math::KelvinFunctions::fgMin = 20
staticprotected

Definition at line 67 of file KelvinFunctions.h.

Referenced by Bei(), Ber(), DBei(), DBer(), DKei(), DKer(), Kei(), and Ker().


The documentation for this class was generated from the following files: